  JAAppletContext = interface external 'java.applet' name 'AppletContext' 
    function getAudioClip(para1: JNURL): JAAudioClip; overload;
    function getImage(para1: JNURL): JAImage; overload;
    function getApplet(para1: JLString): JAApplet; overload;
    function getApplets(): JUEnumeration; overload;
    procedure showDocument(para1: JNURL); overload;
    procedure showDocument(para1: JNURL; para2: JLString); overload;
    procedure showStatus(para1: JLString); overload;
    procedure setStream(para1: JLString; para2: JIInputStream); overload;  // throws java.io.IOException
    function getStream(para1: JLString): JIInputStream; overload;
    function getStreamKeys(): JUIterator; overload;
  end;

  JAAppletStub = interface external 'java.applet' name 'AppletStub' 
    function isActive(): jboolean; overload;
    function getDocumentBase(): JNURL; overload;
    function getCodeBase(): JNURL; overload;
    function getParameter(para1: JLString): JLString; overload;
    function getAppletContext(): JAAppletContext; overload;
    procedure appletResize(para1: jint; para2: jint); overload;
  end;

  JAAudioClip = interface external 'java.applet' name 'AudioClip' 
    procedure play(); overload;
    procedure loop(); overload;
    procedure stop(); overload;
  end;

  JAActiveEvent = interface external 'java.awt' name 'ActiveEvent' 
    procedure dispatch(); overload;
  end;

  JAAdjustable = interface external 'java.awt' name 'Adjustable' 
    const
      HORIZONTAL = 0;
      VERTICAL = 1;
      NO_ORIENTATION = 2;
    function getOrientation(): jint; overload;
    procedure setMinimum(para1: jint); overload;
    function getMinimum(): jint; overload;
    procedure setMaximum(para1: jint); overload;
    function getMaximum(): jint; overload;
    procedure setUnitIncrement(para1: jint); overload;
    function getUnitIncrement(): jint; overload;
    procedure setBlockIncrement(para1: jint); overload;
    function getBlockIncrement(): jint; overload;
    procedure setVisibleAmount(para1: jint); overload;
    function getVisibleAmount(): jint; overload;
    procedure setValue(para1: jint); overload;
    function getValue(): jint; overload;
    procedure addAdjustmentListener(para1: JAEAdjustmentListener); overload;
    procedure removeAdjustmentListener(para1: JAEAdjustmentListener); overload;
  end;

  JAAttributeValue = class abstract external 'java.awt' name 'AttributeValue' (JLObject)
  strict protected
    constructor create(para1: jint; para2: Arr1JLString); overload;
    constructor create(para1: jint; const para2: array of JLString); overload;
  public
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JAComposite = interface external 'java.awt' name 'Composite' 
    function createContext(para1: JAIColorModel; para2: JAIColorModel; para3: JARenderingHints): JACompositeContext; overload;
  end;

  JACompositeContext = interface external 'java.awt' name 'CompositeContext' 
    procedure dispose(); overload;
    procedure compose(para1: JAIRaster; para2: JAIRaster; para3: JAIWritableRaster); overload;
  end;

  JAConditional = interface external 'java.awt' name 'Conditional' 
    function evaluate(): jboolean; overload;
  end;

  JADisplayMode = class sealed external 'java.awt' name 'DisplayMode' (JLObject)
  public
    const
      BIT_DEPTH_MULTI = -1;
      REFRESH_RATE_UNKNOWN = 0;
  public
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint); overload;
    function getHeight(): jint; overload; virtual;
    function getWidth(): jint; overload; virtual;
    function getBitDepth(): jint; overload; virtual;
    function getRefreshRate(): jint; overload; virtual;
    function equals(para1: JADisplayMode): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JAEventQueue = class external 'java.awt' name 'EventQueue' (JLObject)
  public
    constructor create(); overload;
    procedure postEvent(para1: JAAWTEvent); overload; virtual;
    function getNextEvent(): JAAWTEvent; overload; virtual;  // throws java.lang.InterruptedException
    function peekEvent(): JAAWTEvent; overload; virtual;
    function peekEvent(para1: jint): JAAWTEvent; overload; virtual;
  strict protected
    procedure dispatchEvent(para1: JAAWTEvent); overload; virtual;
  public
    class function getMostRecentEventTime(): jlong; static; overload;
    class function getCurrentEvent(): JAAWTEvent; static; overload;
    procedure push(para1: JAEventQueue); overload; virtual;
  strict protected
    procedure pop(); overload; virtual;  // throws java.util.EmptyStackException
  public
    class function isDispatchThread(): jboolean; static; overload;
    class procedure invokeLater(para1: JLRunnable); static; overload;
    class procedure invokeAndWait(para1: JLRunnable); static; overload;  // throws java.lang.InterruptedException, java.lang.reflect.InvocationTargetException
  end;

  JAEventQueueItem = class external 'java.awt' name 'EventQueueItem' (JLObject)
  end;

  JAFocusTraversalPolicy = class abstract external 'java.awt' name 'FocusTraversalPolicy' (JLObject)
  public
    constructor create(); overload;
    function getComponentAfter(para1: JAContainer; para2: JAComponent): JAComponent; overload; virtual; abstract;
    function getComponentBefore(para1: JAContainer; para2: JAComponent): JAComponent; overload; virtual; abstract;
    function getFirstComponent(para1: JAContainer): JAComponent; overload; virtual; abstract;
    function getLastComponent(para1: JAContainer): JAComponent; overload; virtual; abstract;
    function getDefaultComponent(para1: JAContainer): JAComponent; overload; virtual; abstract;
    function getInitialComponent(para1: JAWindow): JAComponent; overload; virtual;
  end;

  JAGraphics = class abstract external 'java.awt' name 'Graphics' (JLObject)
  strict protected
    constructor create(); overload;
  public
    function create_(): JAGraphics; external name 'create'; overload; virtual; abstract;
    function create_(para1: jint; para2: jint; para3: jint; para4: jint): JAGraphics; external name 'create'; overload; virtual;
    procedure translate(para1: jint; para2: jint); overload; virtual; abstract;
    function getColor(): JAColor; overload; virtual; abstract;
    procedure setColor(para1: JAColor); overload; virtual; abstract;
    procedure setPaintMode(); overload; virtual; abstract;
    procedure setXORMode(para1: JAColor); overload; virtual; abstract;
    function getFont(): JAFont; overload; virtual; abstract;
    procedure setFont(para1: JAFont); overload; virtual; abstract;
    function getFontMetrics(): JAFontMetrics; overload; virtual;
    function getFontMetrics(para1: JAFont): JAFontMetrics; overload; virtual; abstract;
    function getClipBounds(): JARectangle; overload; virtual; abstract;
    procedure clipRect(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual; abstract;
    procedure setClip(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual; abstract;
    function getClip(): JAShape; overload; virtual; abstract;
    procedure setClip(para1: JAShape); overload; virtual; abstract;
    procedure copyArea(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual; abstract;
    procedure drawLine(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual; abstract;
    procedure fillRect(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual; abstract;
    procedure drawRect(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure clearRect(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual; abstract;
    procedure drawRoundRect(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual; abstract;
    procedure fillRoundRect(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual; abstract;
    procedure draw3DRect(para1: jint; para2: jint; para3: jint; para4: jint; para5: jboolean); overload; virtual;
    procedure fill3DRect(para1: jint; para2: jint; para3: jint; para4: jint; para5: jboolean); overload; virtual;
    procedure drawOval(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual; abstract;
    procedure fillOval(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual; abstract;
    procedure drawArc(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual; abstract;
    procedure fillArc(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual; abstract;
    procedure drawPolyline(para1: Arr1jint; para2: Arr1jint; para3: jint); overload; virtual; abstract;
    procedure drawPolyline(var para1: array of jint; var para2: array of jint; para3: jint); overload; virtual; abstract;
    procedure drawPolygon(para1: Arr1jint; para2: Arr1jint; para3: jint); overload; virtual; abstract;
    procedure drawPolygon(var para1: array of jint; var para2: array of jint; para3: jint); overload; virtual; abstract;
    procedure drawPolygon(para1: JAPolygon); overload; virtual;
    procedure fillPolygon(para1: Arr1jint; para2: Arr1jint; para3: jint); overload; virtual; abstract;
    procedure fillPolygon(var para1: array of jint; var para2: array of jint; para3: jint); overload; virtual; abstract;
    procedure fillPolygon(para1: JAPolygon); overload; virtual;
    procedure drawString(para1: JLString; para2: jint; para3: jint); overload; virtual; abstract;
    procedure drawString(para1: JTAttributedCharacterIterator; para2: jint; para3: jint); overload; virtual; abstract;
    procedure drawChars(para1: Arr1jchar; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    procedure drawChars(var para1: array of jchar; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    procedure drawBytes(para1: Arr1jbyte; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    procedure drawBytes(var para1: array of jbyte; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    function drawImage(para1: JAImage; para2: jint; para3: jint; para4: JAIImageObserver): jboolean; overload; virtual; abstract;
    function drawImage(para1: JAImage; para2: jint; para3: jint; para4: jint; para5: jint; para6: JAIImageObserver): jboolean; overload; virtual; abstract;
    function drawImage(para1: JAImage; para2: jint; para3: jint; para4: JAColor; para5: JAIImageObserver): jboolean; overload; virtual; abstract;
    function drawImage(para1: JAImage; para2: jint; para3: jint; para4: jint; para5: jint; para6: JAColor; para7: JAIImageObserver): jboolean; overload; virtual; abstract;
    function drawImage(para1: JAImage; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: jint; para10: JAIImageObserver): jboolean; overload; virtual; abstract;
    function drawImage(para1: JAImage; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: jint; para10: JAColor; para11: JAIImageObserver): jboolean; overload; virtual; abstract;
    procedure dispose(); overload; virtual; abstract;
    procedure finalize(); overload; virtual;
    function toString(): JLString; overload; virtual;
    function getClipRect(): JARectangle; overload; virtual;
    function hitClip(para1: jint; para2: jint; para3: jint; para4: jint): jboolean; overload; virtual;
    function getClipBounds(para1: JARectangle): JARectangle; overload; virtual;
  end;

  JAGraphicsConfiguration = class abstract external 'java.awt' name 'GraphicsConfiguration' (JLObject)
  public
    type
      InnerDefaultBufferCapabilities = class;
      Arr1InnerDefaultBufferCapabilities = array of InnerDefaultBufferCapabilities;
      Arr2InnerDefaultBufferCapabilities = array of Arr1InnerDefaultBufferCapabilities;
      Arr3InnerDefaultBufferCapabilities = array of Arr2InnerDefaultBufferCapabilities;
      InnerDefaultBufferCapabilities = class external 'java.awt' name 'DefaultBufferCapabilities' 
      end;

  strict protected
    constructor create(); overload;
  public
    function getDevice(): JAGraphicsDevice; overload; virtual; abstract;
    function createCompatibleImage(para1: jint; para2: jint): JAIBufferedImage; overload; virtual; abstract;
    function createCompatibleImage(para1: jint; para2: jint; para3: jint): JAIBufferedImage; overload; virtual;
    function createCompatibleVolatileImage(para1: jint; para2: jint): JAIVolatileImage; overload; virtual;
    function createCompatibleVolatileImage(para1: jint; para2: jint; para3: jint): JAIVolatileImage; overload; virtual;
    function createCompatibleVolatileImage(para1: jint; para2: jint; para3: JAImageCapabilities): JAIVolatileImage; overload; virtual;  // throws java.awt.AWTException
    function createCompatibleVolatileImage(para1: jint; para2: jint; para3: JAImageCapabilities; para4: jint): JAIVolatileImage; overload; virtual;  // throws java.awt.AWTException
    function getColorModel(): JAIColorModel; overload; virtual; abstract;
    function getColorModel(para1: jint): JAIColorModel; overload; virtual; abstract;
    function getDefaultTransform(): JAGAffineTransform; overload; virtual; abstract;
    function getNormalizingTransform(): JAGAffineTransform; overload; virtual; abstract;
    function getBounds(): JARectangle; overload; virtual; abstract;
    function getBufferCapabilities(): JABufferCapabilities; overload; virtual;
    function getImageCapabilities(): JAImageCapabilities; overload; virtual;
  end;

  JAGraphicsDevice = class abstract external 'java.awt' name 'GraphicsDevice' (JLObject)
  public
    const
      TYPE_RASTER_SCREEN = 0;
      TYPE_PRINTER = 1;
      TYPE_IMAGE_BUFFER = 2;
  strict protected
    constructor create(); overload;
  public
    function getType(): jint; overload; virtual; abstract;
    function getIDstring(): JLString; overload; virtual; abstract;
    function getConfigurations(): Arr1JAGraphicsConfiguration; overload; virtual; abstract;
    function getDefaultConfiguration(): JAGraphicsConfiguration; overload; virtual; abstract;
    function getBestConfiguration(para1: JAGraphicsConfigTemplate): JAGraphicsConfiguration; overload; virtual;
    function isFullScreenSupported(): jboolean; overload; virtual;
    procedure setFullScreenWindow(para1: JAWindow); overload; virtual;
    function getFullScreenWindow(): JAWindow; overload; virtual;
    function isDisplayChangeSupported(): jboolean; overload; virtual;
    procedure setDisplayMode(para1: JADisplayMode); overload; virtual;
    function getDisplayMode(): JADisplayMode; overload; virtual;
    function getDisplayModes(): Arr1JADisplayMode; overload; virtual;
    function getAvailableAcceleratedMemory(): jint; overload; virtual;
  end;

  JAGraphicsEnvironment = class abstract external 'java.awt' name 'GraphicsEnvironment' (JLObject)
  strict protected
    constructor create(); overload;
  public
    class function getLocalGraphicsEnvironment(): JAGraphicsEnvironment; static; overload;
    class function isHeadless(): jboolean; static; overload;
    function isHeadlessInstance(): jboolean; overload; virtual;
    function getScreenDevices(): Arr1JAGraphicsDevice; overload; virtual; abstract;  // throws java.awt.HeadlessException
    function getDefaultScreenDevice(): JAGraphicsDevice; overload; virtual; abstract;  // throws java.awt.HeadlessException
    function createGraphics(para1: JAIBufferedImage): JAGraphics2D; overload; virtual; abstract;
    function getAllFonts(): Arr1JAFont; overload; virtual; abstract;
    function getAvailableFontFamilyNames(): Arr1JLString; overload; virtual; abstract;
    function getAvailableFontFamilyNames(para1: JULocale): Arr1JLString; overload; virtual; abstract;
    function registerFont(para1: JAFont): jboolean; overload; virtual;
    procedure preferLocaleFonts(); overload; virtual;
    procedure preferProportionalFonts(); overload; virtual;
    function getCenterPoint(): JAPoint; overload; virtual;  // throws java.awt.HeadlessException
    function getMaximumWindowBounds(): JARectangle; overload; virtual;  // throws java.awt.HeadlessException
  end;

  JAImage = class abstract external 'java.awt' name 'Image' (JLObject)
  strict protected
    var
      faccelerationPriority: jfloat; external name 'accelerationPriority';
  public
    final class var
      fUndefinedProperty: JLObject; external name 'UndefinedProperty';
  public
    const
      SCALE_DEFAULT = 1;
      SCALE_FAST = 2;
      SCALE_SMOOTH = 4;
      SCALE_REPLICATE = 8;
      SCALE_AREA_AVERAGING = 16;
  public
    constructor create(); overload;
    function getWidth(para1: JAIImageObserver): jint; overload; virtual; abstract;
    function getHeight(para1: JAIImageObserver): jint; overload; virtual; abstract;
    function getSource(): JAIImageProducer; overload; virtual; abstract;
    function getGraphics(): JAGraphics; overload; virtual; abstract;
    function getProperty(para1: JLString; para2: JAIImageObserver): JLObject; overload; virtual; abstract;
    function getScaledInstance(para1: jint; para2: jint; para3: jint): JAImage; overload; virtual;
    procedure flush(); overload; virtual;
    function getCapabilities(para1: JAGraphicsConfiguration): JAImageCapabilities; overload; virtual;
    procedure setAccelerationPriority(para1: jfloat); overload; virtual;
    function getAccelerationPriority(): jfloat; overload; virtual;
  end;

  JAItemSelectable = interface external 'java.awt' name 'ItemSelectable' 
    function getSelectedObjects(): Arr1JLObject; overload;
    procedure addItemListener(para1: JAEItemListener); overload;
    procedure removeItemListener(para1: JAEItemListener); overload;
  end;

  JAKeyEventDispatcher = interface external 'java.awt' name 'KeyEventDispatcher' 
    function dispatchKeyEvent(para1: JAEKeyEvent): jboolean; overload;
  end;

  JAKeyEventPostProcessor = interface external 'java.awt' name 'KeyEventPostProcessor' 
    function postProcessKeyEvent(para1: JAEKeyEvent): jboolean; overload;
  end;

  JALayoutManager = interface external 'java.awt' name 'LayoutManager' 
    procedure addLayoutComponent(para1: JLString; para2: JAComponent); overload;
    procedure removeLayoutComponent(para1: JAComponent); overload;
    function preferredLayoutSize(para1: JAContainer): JADimension; overload;
    function minimumLayoutSize(para1: JAContainer): JADimension; overload;
    procedure layoutContainer(para1: JAContainer); overload;
  end;

  JAMediaEntry = class abstract external 'java.awt' name 'MediaEntry' (JLObject)
  end;

  JAMenuContainer = interface external 'java.awt' name 'MenuContainer' 
    function getFont(): JAFont; overload;
    procedure remove(para1: JAMenuComponent); overload;
    function postEvent(para1: JAEvent): jboolean; overload;
  end;

  JAMouseInfo = class external 'java.awt' name 'MouseInfo' (JLObject)
  public
    class function getPointerInfo(): JAPointerInfo; static; overload;  // throws java.awt.HeadlessException
    class function getNumberOfButtons(): jint; static; overload;  // throws java.awt.HeadlessException
  end;

  JAMutableBoolean = class external 'java.awt' name 'MutableBoolean' (JLObject)
  end;

  JAPaintContext = interface external 'java.awt' name 'PaintContext' 
    procedure dispose(); overload;
    function getColorModel(): JAIColorModel; overload;
    function getRaster(para1: jint; para2: jint; para3: jint; para4: jint): JAIRaster; overload;
  end;

  JAPointerInfo = class external 'java.awt' name 'PointerInfo' (JLObject)
  public
    function getDevice(): JAGraphicsDevice; overload; virtual;
    function getLocation(): JAPoint; overload; virtual;
  end;

  JAPrintGraphics = interface external 'java.awt' name 'PrintGraphics' 
    function getPrintJob(): JAPrintJob; overload;
  end;

  JAPrintJob = class abstract external 'java.awt' name 'PrintJob' (JLObject)
  public
    constructor create(); overload;
    function getGraphics(): JAGraphics; overload; virtual; abstract;
    function getPageDimension(): JADimension; overload; virtual; abstract;
    function getPageResolution(): jint; overload; virtual; abstract;
    function lastPageFirst(): jboolean; overload; virtual; abstract;
    procedure &end(); overload; virtual; abstract;
    procedure finalize(); overload; virtual;
  end;

  JAQueue = class external 'java.awt' name 'Queue' (JLObject)
  end;

  JARobot = class external 'java.awt' name 'Robot' (JLObject)
  public
    type
      InnerRobotDisposer = class;
      Arr1InnerRobotDisposer = array of InnerRobotDisposer;
      Arr2InnerRobotDisposer = array of Arr1InnerRobotDisposer;
      Arr3InnerRobotDisposer = array of Arr2InnerRobotDisposer;
      InnerRobotDisposer = class external 'java.awt' name 'RobotDisposer' 
      end;

  public
    constructor create(); overload;  // throws java.awt.AWTException
    constructor create(para1: JAGraphicsDevice); overload;  // throws java.awt.AWTException
    procedure mouseMove(para1: jint; para2: jint); overload; virtual;
    procedure mousePress(para1: jint); overload; virtual;
    procedure mouseRelease(para1: jint); overload; virtual;
    procedure mouseWheel(para1: jint); overload; virtual;
    procedure keyPress(para1: jint); overload; virtual;
    procedure keyRelease(para1: jint); overload; virtual;
    function getPixelColor(para1: jint; para2: jint): JAColor; overload; virtual;
    function createScreenCapture(para1: JARectangle): JAIBufferedImage; overload; virtual;
    function isAutoWaitForIdle(): jboolean; overload; virtual;
    procedure setAutoWaitForIdle(para1: jboolean); overload; virtual;
    function getAutoDelay(): jint; overload; virtual;
    procedure setAutoDelay(para1: jint); overload; virtual;
    procedure delay(para1: jint); overload; virtual;
    procedure waitForIdle(); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JAShape = interface external 'java.awt' name 'Shape' 
    function getBounds(): JARectangle; overload;
    function getBounds2D(): JAGRectangle2D; overload;
    function contains(para1: jdouble; para2: jdouble): jboolean; overload;
    function contains(para1: JAGPoint2D): jboolean; overload;
    function intersects(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble): jboolean; overload;
    function intersects(para1: JAGRectangle2D): jboolean; overload;
    function contains(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble): jboolean; overload;
    function contains(para1: JAGRectangle2D): jboolean; overload;
    function getPathIterator(para1: JAGAffineTransform): JAGPathIterator; overload;
    function getPathIterator(para1: JAGAffineTransform; para2: jdouble): JAGPathIterator; overload;
  end;

  JASplashScreen = class sealed external 'java.awt' name 'SplashScreen' (JLObject)
  public
    class function getSplashScreen(): JASplashScreen; static; overload;
    procedure setImageURL(para1: JNURL); overload; virtual;  // throws java.lang.NullPointerException, java.io.IOException, java.lang.IllegalStateException
    function getImageURL(): JNURL; overload; virtual;  // throws java.lang.IllegalStateException
    function getBounds(): JARectangle; overload; virtual;  // throws java.lang.IllegalStateException
    function getSize(): JADimension; overload; virtual;  // throws java.lang.IllegalStateException
    function createGraphics(): JAGraphics2D; overload; virtual;  // throws java.lang.IllegalStateException
    procedure update(); overload; virtual;  // throws java.lang.IllegalStateException
    procedure close(); overload; virtual;  // throws java.lang.IllegalStateException
    function isVisible(): jboolean; overload; virtual;
  end;

  JAStroke = interface external 'java.awt' name 'Stroke' 
    function createStrokedShape(para1: JAShape): JAShape; overload;
  end;

  JASystemTray = class external 'java.awt' name 'SystemTray' (JLObject)
  public
    class function getSystemTray(): JASystemTray; static; overload;
    class function isSupported(): jboolean; static; overload;
    procedure add(para1: JATrayIcon); overload; virtual;  // throws java.awt.AWTException
    procedure remove(para1: JATrayIcon); overload; virtual;
    function getTrayIcons(): Arr1JATrayIcon; overload; virtual;
    function getTrayIconSize(): JADimension; overload; virtual;
    procedure addPropertyChangeListener(para1: JLString; para2: JBPropertyChangeListener); overload; virtual;
    procedure removePropertyChangeListener(para1: JLString; para2: JBPropertyChangeListener); overload; virtual;
    function getPropertyChangeListeners(para1: JLString): Arr1JBPropertyChangeListener; overload; virtual;
  end;

  JATransparency = interface external 'java.awt' name 'Transparency' 
    const
      OPAQUE = 1;
      BITMASK = 2;
      TRANSLUCENT = 3;
    function getTransparency(): jint; overload;
  end;

  JAVKCollection = class external 'java.awt' name 'VKCollection' (JLObject)
  public
    constructor create(); overload;
    procedure put(para1: JLString; para2: JLInteger); overload; virtual;
    function findCode(para1: JLString): JLInteger; overload; virtual;
    function findName(para1: JLInteger): JLString; overload; virtual;
  end;

  JADClipboard = class external 'java.awt.datatransfer' name 'Clipboard' (JLObject)
  strict protected
    var
      fowner: JADClipboardOwner; external name 'owner';
      fcontents: JADTransferable; external name 'contents';
  public
    constructor create(para1: JLString); overload;
    function getName(): JLString; overload; virtual;
    procedure setContents(para1: JADTransferable; para2: JADClipboardOwner); overload; virtual;
    function getContents(para1: JLObject): JADTransferable; overload; virtual;
    function getAvailableDataFlavors(): Arr1JADDataFlavor; overload; virtual;
    function isDataFlavorAvailable(para1: JADDataFlavor): jboolean; overload; virtual;
    function getData(para1: JADDataFlavor): JLObject; overload; virtual;  // throws java.awt.datatransfer.UnsupportedFlavorException, java.io.IOException
    procedure addFlavorListener(para1: JADFlavorListener); overload; virtual;
    procedure removeFlavorListener(para1: JADFlavorListener); overload; virtual;
    function getFlavorListeners(): Arr1JADFlavorListener; overload; virtual;
  end;

  JADClipboardOwner = interface external 'java.awt.datatransfer' name 'ClipboardOwner' 
    procedure lostOwnership(para1: JADClipboard; para2: JADTransferable); overload;
  end;

  JADFlavorMap = interface external 'java.awt.datatransfer' name 'FlavorMap' 
    function getNativesForFlavors(para1: Arr1JADDataFlavor): JUMap; overload;
    function getNativesForFlavors(var para1: array of JADDataFlavor): JUMap; overload;
    function getFlavorsForNatives(para1: Arr1JLString): JUMap; overload;
    function getFlavorsForNatives(var para1: array of JLString): JUMap; overload;
  end;

  JADTransferable = interface external 'java.awt.datatransfer' name 'Transferable' 
    function getTransferDataFlavors(): Arr1JADDataFlavor; overload;
    function isDataFlavorSupported(para1: JADDataFlavor): jboolean; overload;
    function getTransferData(para1: JADDataFlavor): JLObject; overload;  // throws java.awt.datatransfer.UnsupportedFlavorException, java.io.IOException
  end;

  JADAutoscroll = interface external 'java.awt.dnd' name 'Autoscroll' 
    function getAutoscrollInsets(): JAInsets; overload;
    procedure autoscroll(para1: JAPoint); overload;
  end;

  JADDnDConstants = class sealed external 'java.awt.dnd' name 'DnDConstants' (JLObject)
  public
    const
      ACTION_NONE = 0;
      ACTION_COPY = 1;
      ACTION_MOVE = 2;
      ACTION_COPY_OR_MOVE = 3;
      ACTION_LINK = 1073741824;
      ACTION_REFERENCE = 1073741824;
  end;

  JADSerializationTester = class sealed external 'java.awt.dnd' name 'SerializationTester' (JLObject)
  end;

  JADPDragSourceContextPeer = interface external 'java.awt.dnd.peer' name 'DragSourceContextPeer' 
    procedure startDrag(para1: JADDragSourceContext; para2: JACursor; para3: JAImage; para4: JAPoint); overload;  // throws java.awt.dnd.InvalidDnDOperationException
    function getCursor(): JACursor; overload;
    procedure setCursor(para1: JACursor); overload;  // throws java.awt.dnd.InvalidDnDOperationException
    procedure transferablesFlavorsChanged(); overload;
  end;

  JADPDropTargetContextPeer = interface external 'java.awt.dnd.peer' name 'DropTargetContextPeer' 
    procedure setTargetActions(para1: jint); overload;
    function getTargetActions(): jint; overload;
    function getDropTarget(): JADDropTarget; overload;
    function getTransferDataFlavors(): Arr1JADDataFlavor; overload;
    function getTransferable(): JADTransferable; overload;  // throws java.awt.dnd.InvalidDnDOperationException
    function isTransferableJVMLocal(): jboolean; overload;
    procedure acceptDrag(para1: jint); overload;
    procedure rejectDrag(); overload;
    procedure acceptDrop(para1: jint); overload;
    procedure rejectDrop(); overload;
    procedure dropComplete(para1: jboolean); overload;
  end;

  JADPDropTargetPeer = interface external 'java.awt.dnd.peer' name 'DropTargetPeer' 
    procedure addDropTarget(para1: JADDropTarget); overload;
    procedure removeDropTarget(para1: JADDropTarget); overload;
  end;

  JAENativeLibLoader = class external 'java.awt.event' name 'NativeLibLoader' (JLObject)
  end;

  JAFFontRenderContext = class external 'java.awt.font' name 'FontRenderContext' (JLObject)
  strict protected
    constructor create(); overload;
  public
    constructor create(para1: JAGAffineTransform; para2: jboolean; para3: jboolean); overload;
    constructor create(para1: JAGAffineTransform; para2: JLObject; para3: JLObject); overload;
    function isTransformed(): jboolean; overload; virtual;
    function getTransformType(): jint; overload; virtual;
    function getTransform(): JAGAffineTransform; overload; virtual;
    function isAntiAliased(): jboolean; overload; virtual;
    function usesFractionalMetrics(): jboolean; overload; virtual;
    function getAntiAliasingHint(): JLObject; overload; virtual;
    function getFractionalMetricsHint(): JLObject; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function equals(para1: JAFFontRenderContext): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JAFGlyphJustificationInfo = class sealed external 'java.awt.font' name 'GlyphJustificationInfo' (JLObject)
  public
    const
      PRIORITY_KASHIDA = 0;
      PRIORITY_WHITESPACE = 1;
      PRIORITY_INTERCHAR = 2;
      PRIORITY_NONE = 3;
  public
    final var
      fweight: jfloat; external name 'weight';
      fgrowPriority: jint; external name 'growPriority';
      fgrowAbsorb: jboolean; external name 'growAbsorb';
      fgrowLeftLimit: jfloat; external name 'growLeftLimit';
      fgrowRightLimit: jfloat; external name 'growRightLimit';
      fshrinkPriority: jint; external name 'shrinkPriority';
      fshrinkAbsorb: jboolean; external name 'shrinkAbsorb';
      fshrinkLeftLimit: jfloat; external name 'shrinkLeftLimit';
      fshrinkRightLimit: jfloat; external name 'shrinkRightLimit';
  public
    constructor create(para1: jfloat; para2: jboolean; para3: jint; para4: jfloat; para5: jfloat; para6: jboolean; para7: jint; para8: jfloat; para9: jfloat); overload;
  end;

  JAFGlyphMetrics = class sealed external 'java.awt.font' name 'GlyphMetrics' (JLObject)
  public
    const
      STANDARD = 0;
      LIGATURE = 1;
      COMBINING = 2;
      COMPONENT = 3;
      WHITESPACE = 4;
  public
    constructor create(para1: jfloat; para2: JAGRectangle2D; para3: jbyte); overload;
    constructor create(para1: jboolean; para2: jfloat; para3: jfloat; para4: JAGRectangle2D; para5: jbyte); overload;
    function getAdvance(): jfloat; overload; virtual;
    function getAdvanceX(): jfloat; overload; virtual;
    function getAdvanceY(): jfloat; overload; virtual;
    function getBounds2D(): JAGRectangle2D; overload; virtual;
    function getLSB(): jfloat; overload; virtual;
    function getRSB(): jfloat; overload; virtual;
    function getType(): jint; overload; virtual;
    function isStandard(): jboolean; overload; virtual;
    function isLigature(): jboolean; overload; virtual;
    function isCombining(): jboolean; overload; virtual;
    function isComponent(): jboolean; overload; virtual;
    function isWhitespace(): jboolean; overload; virtual;
  end;

  JAFGraphicAttribute = class abstract external 'java.awt.font' name 'GraphicAttribute' (JLObject)
  public
    const
      TOP_ALIGNMENT = -1;
      BOTTOM_ALIGNMENT = -2;
      ROMAN_BASELINE = 0;
      CENTER_BASELINE = 1;
      HANGING_BASELINE = 2;
  strict protected
    constructor create(para1: jint); overload;
  public
    function getAscent(): jfloat; overload; virtual; abstract;
    function getDescent(): jfloat; overload; virtual; abstract;
    function getAdvance(): jfloat; overload; virtual; abstract;
    function getBounds(): JAGRectangle2D; overload; virtual;
    function getOutline(para1: JAGAffineTransform): JAShape; overload; virtual;
    procedure draw(para1: JAGraphics2D; para2: jfloat; para3: jfloat); overload; virtual; abstract;
    function getAlignment(): jint; overload; virtual; final;
    function getJustificationInfo(): JAFGlyphJustificationInfo; overload; virtual;
  end;

  JAFLayoutPath = class abstract external 'java.awt.font' name 'LayoutPath' (JLObject)
  public
    constructor create(); overload;
    function pointToPath(para1: JAGPoint2D; para2: JAGPoint2D): jboolean; overload; virtual; abstract;
    procedure pathToPoint(para1: JAGPoint2D; para2: jboolean; para3: JAGPoint2D); overload; virtual; abstract;
  end;

  JAFLineBreakMeasurer = class sealed external 'java.awt.font' name 'LineBreakMeasurer' (JLObject)
  public
    constructor create(para1: JTAttributedCharacterIterator; para2: JAFFontRenderContext); overload;
    constructor create(para1: JTAttributedCharacterIterator; para2: JTBreakIterator; para3: JAFFontRenderContext); overload;
    function nextOffset(para1: jfloat): jint; overload; virtual;
    function nextOffset(para1: jfloat; para2: jint; para3: jboolean): jint; overload; virtual;
    function nextLayout(para1: jfloat): JAFTextLayout; overload; virtual;
    function nextLayout(para1: jfloat; para2: jint; para3: jboolean): JAFTextLayout; overload; virtual;
    function getPosition(): jint; overload; virtual;
    procedure setPosition(para1: jint); overload; virtual;
    procedure insertChar(para1: JTAttributedCharacterIterator; para2: jint); overload; virtual;
    procedure deleteChar(para1: JTAttributedCharacterIterator; para2: jint); overload; virtual;
  end;

  JAFLineMetrics = class abstract external 'java.awt.font' name 'LineMetrics' (JLObject)
  public
    constructor create(); overload;
    function getNumChars(): jint; overload; virtual; abstract;
    function getAscent(): jfloat; overload; virtual; abstract;
    function getDescent(): jfloat; overload; virtual; abstract;
    function getLeading(): jfloat; overload; virtual; abstract;
    function getHeight(): jfloat; overload; virtual; abstract;
    function getBaselineIndex(): jint; overload; virtual; abstract;
    function getBaselineOffsets(): Arr1jfloat; overload; virtual; abstract;
    function getStrikethroughOffset(): jfloat; overload; virtual; abstract;
    function getStrikethroughThickness(): jfloat; overload; virtual; abstract;
    function getUnderlineOffset(): jfloat; overload; virtual; abstract;
    function getUnderlineThickness(): jfloat; overload; virtual; abstract;
  end;

  JAFMultipleMaster = interface external 'java.awt.font' name 'MultipleMaster' 
    function getNumDesignAxes(): jint; overload;
    function getDesignAxisRanges(): Arr1jfloat; overload;
    function getDesignAxisDefaults(): Arr1jfloat; overload;
    function getDesignAxisNames(): Arr1JLString; overload;
    function deriveMMFont(para1: Arr1jfloat): JAFont; overload;
    function deriveMMFont(var para1: array of jfloat): JAFont; overload;
    function deriveMMFont(para1: Arr1jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat): JAFont; overload;
    function deriveMMFont(var para1: array of jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat): JAFont; overload;
  end;

  JAFOpenType = interface external 'java.awt.font' name 'OpenType' 
    const
      TAG_CMAP = 1668112752;
      TAG_HEAD = 1751474532;
      TAG_NAME = 1851878757;
      TAG_GLYF = 1735162214;
      TAG_MAXP = 1835104368;
      TAG_PREP = 1886545264;
      TAG_HMTX = 1752003704;
      TAG_KERN = 1801810542;
      TAG_HDMX = 1751412088;
      TAG_LOCA = 1819239265;
      TAG_POST = 1886352244;
      TAG_OS2 = 1330851634;
      TAG_CVT = 1668707360;
      TAG_GASP = 1734439792;
      TAG_VDMX = 1447316824;
      TAG_VMTX = 1986884728;
      TAG_VHEA = 1986553185;
      TAG_HHEA = 1751672161;
      TAG_TYP1 = 1954115633;
      TAG_BSLN = 1651731566;
      TAG_GSUB = 1196643650;
      TAG_DSIG = 1146308935;
      TAG_FPGM = 1718642541;
      TAG_FVAR = 1719034226;
      TAG_GVAR = 1735811442;
      TAG_CFF = 1128678944;
      TAG_MMSD = 1296913220;
      TAG_MMFX = 1296909912;
      TAG_BASE = 1111577413;
      TAG_GDEF = 1195656518;
      TAG_GPOS = 1196445523;
      TAG_JSTF = 1246975046;
      TAG_EBDT = 1161970772;
      TAG_EBLC = 1161972803;
      TAG_EBSC = 1161974595;
      TAG_LTSH = 1280594760;
      TAG_PCLT = 1346587732;
      TAG_ACNT = 1633906292;
      TAG_AVAR = 1635148146;
      TAG_BDAT = 1650745716;
      TAG_BLOC = 1651273571;
      TAG_CVAR = 1668702578;
      TAG_FEAT = 1717920116;
      TAG_FDSC = 1717859171;
      TAG_FMTX = 1718449272;
      TAG_JUST = 1786082164;
      TAG_LCAR = 1818452338;
      TAG_MORT = 1836020340;
      TAG_OPBD = 1836020340;
      TAG_PROP = 1886547824;
      TAG_TRAK = 1953653099;
    function getVersion(): jint; overload;
    function getFontTable(para1: jint): Arr1jbyte; overload;
    function getFontTable(para1: JLString): Arr1jbyte; overload;
    function getFontTable(para1: jint; para2: jint; para3: jint): Arr1jbyte; overload;
    function getFontTable(para1: JLString; para2: jint; para3: jint): Arr1jbyte; overload;
    function getFontTableSize(para1: jint): jint; overload;
    function getFontTableSize(para1: JLString): jint; overload;
  end;

  JAFStyledParagraph = class sealed external 'java.awt.font' name 'StyledParagraph' (JLObject)
  public
    constructor create(para1: JTAttributedCharacterIterator; para2: Arr1jchar); overload;
    constructor create(para1: JTAttributedCharacterIterator; const para2: array of jchar); overload;
    class function insertChar(para1: JTAttributedCharacterIterator; para2: Arr1jchar; para3: jint; para4: JAFStyledParagraph): JAFStyledParagraph; static; overload;
    class function insertChar(para1: JTAttributedCharacterIterator; var para2: array of jchar; para3: jint; para4: JAFStyledParagraph): JAFStyledParagraph; static; overload;
    class function deleteChar(para1: JTAttributedCharacterIterator; para2: Arr1jchar; para3: jint; para4: JAFStyledParagraph): JAFStyledParagraph; static; overload;
    class function deleteChar(para1: JTAttributedCharacterIterator; var para2: array of jchar; para3: jint; para4: JAFStyledParagraph): JAFStyledParagraph; static; overload;
    function getRunLimit(para1: jint): jint; overload; virtual;
    function getDecorationAt(para1: jint): SFDecoration; overload; virtual;
    function getFontOrGraphicAt(para1: jint): JLObject; overload; virtual;
  end;

  JAFTextHitInfo = class sealed external 'java.awt.font' name 'TextHitInfo' (JLObject)
  public
    function getCharIndex(): jint; overload; virtual;
    function isLeadingEdge(): jboolean; overload; virtual;
    function getInsertionIndex(): jint; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function equals(para1: JAFTextHitInfo): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    class function leading(para1: jint): JAFTextHitInfo; static; overload;
    class function trailing(para1: jint): JAFTextHitInfo; static; overload;
    class function beforeOffset(para1: jint): JAFTextHitInfo; static; overload;
    class function afterOffset(para1: jint): JAFTextHitInfo; static; overload;
    function getOtherHit(): JAFTextHitInfo; overload; virtual;
    function getOffsetHit(para1: jint): JAFTextHitInfo; overload; virtual;
  end;

  JAFTextJustifier = class external 'java.awt.font' name 'TextJustifier' (JLObject)
  public
    const
      MAX_PRIORITY = 3;
  public
    function justify(para1: jfloat): Arr1jfloat; overload; virtual;
  end;

  JAFTextLine = class sealed external 'java.awt.font' name 'TextLine' (JLObject)
  public
    type
      InnerFunction = class;
      Arr1InnerFunction = array of InnerFunction;
      Arr2InnerFunction = array of Arr1InnerFunction;
      Arr3InnerFunction = array of Arr2InnerFunction;
      InnerTextLineMetrics = class;
      Arr1InnerTextLineMetrics = array of InnerTextLineMetrics;
      Arr2InnerTextLineMetrics = array of Arr1InnerTextLineMetrics;
      Arr3InnerTextLineMetrics = array of Arr2InnerTextLineMetrics;
      InnerFunction = class abstract external 'java.awt.font' name 'Function' 
      end;

      InnerTextLineMetrics = class sealed external 'java.awt.font' name 'TextLineMetrics' 
      end;

  public
    constructor create(para1: JAFFontRenderContext; para2: Arr1SFTextLineComponent; para3: Arr1jfloat; para4: Arr1jchar; para5: jint; para6: jint; para7: Arr1jint; para8: Arr1jbyte; para9: jboolean); overload;
    constructor create(para1: JAFFontRenderContext; const para2: array of SFTextLineComponent; const para3: array of jfloat; const para4: array of jchar; para5: jint; para6: jint; const para7: array of jint; const para8: array of jbyte; para9: jboolean); overload;
    function getPixelBounds(para1: JAFFontRenderContext; para2: jfloat; para3: jfloat): JARectangle; overload; virtual;
    function characterCount(): jint; overload; virtual;
    function isDirectionLTR(): jboolean; overload; virtual;
    function getMetrics(): JAFTextLine.InnerTextLineMetrics; overload; virtual;
    function visualToLogical(para1: jint): jint; overload; virtual;
    function logicalToVisual(para1: jint): jint; overload; virtual;
    function getCharLevel(para1: jint): jbyte; overload; virtual;
    function isCharLTR(para1: jint): jboolean; overload; virtual;
    function getCharType(para1: jint): jint; overload; virtual;
    function isCharSpace(para1: jint): jboolean; overload; virtual;
    function isCharWhitespace(para1: jint): jboolean; overload; virtual;
    function getCharAngle(para1: jint): jfloat; overload; virtual;
    function getCoreMetricsAt(para1: jint): SFCoreMetrics; overload; virtual;
    function getCharAscent(para1: jint): jfloat; overload; virtual;
    function getCharDescent(para1: jint): jfloat; overload; virtual;
    function getCharShift(para1: jint): jfloat; overload; virtual;
    function getCharAdvance(para1: jint): jfloat; overload; virtual;
    function getCharXPosition(para1: jint): jfloat; overload; virtual;
    function getCharYPosition(para1: jint): jfloat; overload; virtual;
    function getCharLinePosition(para1: jint): jfloat; overload; virtual;
    function getCharLinePosition(para1: jint; para2: jboolean): jfloat; overload; virtual;
    function caretAtOffsetIsValid(para1: jint): jboolean; overload; virtual;
    function getCharBounds(para1: jint): JAGRectangle2D; overload; virtual;
    procedure draw(para1: JAGraphics2D; para2: jfloat; para3: jfloat); overload; virtual;
    function getVisualBounds(): JAGRectangle2D; overload; virtual;
    function getItalicBounds(): JAGRectangle2D; overload; virtual;
    function getOutline(para1: JAGAffineTransform): JAShape; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    class function fastCreateTextLine(para1: JAFFontRenderContext; para2: Arr1jchar; para3: JAFont; para4: SFCoreMetrics; para5: JUMap): JAFTextLine; static; overload;
    class function fastCreateTextLine(para1: JAFFontRenderContext; var para2: array of jchar; para3: JAFont; para4: SFCoreMetrics; para5: JUMap): JAFTextLine; static; overload;
    class function createComponentsOnRun(para1: jint; para2: jint; para3: Arr1jchar; para4: Arr1jint; para5: Arr1jbyte; para6: SFTextLabelFactory; para7: JAFont; para8: SFCoreMetrics; para9: JAFFontRenderContext; para10: SFDecoration; para11: Arr1SFTextLineComponent; para12: jint): Arr1SFTextLineComponent; static; overload;
    class function createComponentsOnRun(para1: jint; para2: jint; var para3: array of jchar; var para4: array of jint; var para5: array of jbyte; para6: SFTextLabelFactory; para7: JAFont; para8: SFCoreMetrics; para9: JAFFontRenderContext; para10: SFDecoration; var para11: array of SFTextLineComponent; para12: jint): Arr1SFTextLineComponent; static; overload;
    class function getComponents(para1: JAFStyledParagraph; para2: Arr1jchar; para3: jint; para4: jint; para5: Arr1jint; para6: Arr1jbyte; para7: SFTextLabelFactory): Arr1SFTextLineComponent; static; overload;
    class function getComponents(para1: JAFStyledParagraph; var para2: array of jchar; para3: jint; para4: jint; var para5: array of jint; var para6: array of jbyte; para7: SFTextLabelFactory): Arr1SFTextLineComponent; static; overload;
    class function createLineFromText(para1: Arr1jchar; para2: JAFStyledParagraph; para3: SFTextLabelFactory; para4: jboolean; para5: Arr1jfloat): JAFTextLine; static; overload;
    class function createLineFromText(var para1: array of jchar; para2: JAFStyledParagraph; para3: SFTextLabelFactory; para4: jboolean; var para5: array of jfloat): JAFTextLine; static; overload;
    class function standardCreateTextLine(para1: JAFFontRenderContext; para2: JTAttributedCharacterIterator; para3: Arr1jchar; para4: Arr1jfloat): JAFTextLine; static; overload;
    class function standardCreateTextLine(para1: JAFFontRenderContext; para2: JTAttributedCharacterIterator; var para3: array of jchar; var para4: array of jfloat): JAFTextLine; static; overload;
    function getJustifiedLine(para1: jfloat; para2: jfloat; para3: jint; para4: jint): JAFTextLine; overload; virtual;
    class function getAdvanceBetween(para1: Arr1SFTextLineComponent; para2: jint; para3: jint): jfloat; static; overload;
    class function getAdvanceBetween(var para1: array of SFTextLineComponent; para2: jint; para3: jint): jfloat; static; overload;
  end;

  JAGPathIterator = interface external 'java.awt.geom' name 'PathIterator' 
    const
      WIND_EVEN_ODD = 0;
      WIND_NON_ZERO = 1;
      SEG_MOVETO = 0;
      SEG_LINETO = 1;
      SEG_QUADTO = 2;
      SEG_CUBICTO = 3;
      SEG_CLOSE = 4;
    function getWindingRule(): jint; overload;
    function isDone(): jboolean; overload;
    procedure next(); overload;
    function currentSegment(para1: Arr1jfloat): jint; overload;
    function currentSegment(var para1: array of jfloat): jint; overload;
    function currentSegment(para1: Arr1jdouble): jint; overload;
    function currentSegment(var para1: array of jdouble): jint; overload;
  end;

  JAIInputMethodHighlight = class external 'java.awt.im' name 'InputMethodHighlight' (JLObject)
  public
    const
      RAW_TEXT = 0;
      CONVERTED_TEXT = 1;
  public
    final class var
      fUNSELECTED_RAW_TEXT_HIGHLIGHT: JAIInputMethodHighlight; external name 'UNSELECTED_RAW_TEXT_HIGHLIGHT';
      fSELECTED_RAW_TEXT_HIGHLIGHT: JAIInputMethodHighlight; external name 'SELECTED_RAW_TEXT_HIGHLIGHT';
      fUNSELECTED_CONVERTED_TEXT_HIGHLIGHT: JAIInputMethodHighlight; external name 'UNSELECTED_CONVERTED_TEXT_HIGHLIGHT';
      fSELECTED_CONVERTED_TEXT_HIGHLIGHT: JAIInputMethodHighlight; external name 'SELECTED_CONVERTED_TEXT_HIGHLIGHT';
  public
    constructor create(para1: jboolean; para2: jint); overload;
    constructor create(para1: jboolean; para2: jint; para3: jint); overload;
    constructor create(para1: jboolean; para2: jint; para3: jint; para4: JUMap); overload;
    function isSelected(): jboolean; overload; virtual;
    function getState(): jint; overload; virtual;
    function getVariation(): jint; overload; virtual;
    function getStyle(): JUMap; overload; virtual;
  end;

  JAISInputMethodDescriptor = interface external 'java.awt.im.spi' name 'InputMethodDescriptor' 
    function getAvailableLocales(): Arr1JULocale; overload;  // throws java.awt.AWTException
    function hasDynamicLocaleList(): jboolean; overload;
    function getInputMethodDisplayName(para1: JULocale; para2: JULocale): JLString; overload;
    function getInputMethodIcon(para1: JULocale): JAImage; overload;
    function createInputMethod(): JAISInputMethod; overload;  // throws java.lang.Exception
  end;

  JAIBufferStrategy = class abstract external 'java.awt.image' name 'BufferStrategy' (JLObject)
  public
    constructor create(); overload;
    function getCapabilities(): JABufferCapabilities; overload; virtual; abstract;
    function getDrawGraphics(): JAGraphics; overload; virtual; abstract;
    function contentsLost(): jboolean; overload; virtual; abstract;
    function contentsRestored(): jboolean; overload; virtual; abstract;
    procedure show(); overload; virtual; abstract;
    procedure dispose(); overload; virtual;
  end;

  JAIBufferedImageOp = interface external 'java.awt.image' name 'BufferedImageOp' 
    function filter(para1: JAIBufferedImage; para2: JAIBufferedImage): JAIBufferedImage; overload;
    function getBounds2D(para1: JAIBufferedImage): JAGRectangle2D; overload;
    function createCompatibleDestImage(para1: JAIBufferedImage; para2: JAIColorModel): JAIBufferedImage; overload;
    function getPoint2D(para1: JAGPoint2D; para2: JAGPoint2D): JAGPoint2D; overload;
    function getRenderingHints(): JARenderingHints; overload;
  end;

  JAIDataBuffer = class abstract external 'java.awt.image' name 'DataBuffer' (JLObject)
  public
    const
      TYPE_BYTE = 0;
      TYPE_USHORT = 1;
      TYPE_SHORT = 2;
      TYPE_INT = 3;
      TYPE_FLOAT = 4;
      TYPE_DOUBLE = 5;
      TYPE_UNDEFINED = 32;
  strict protected
    var
      fdataType: jint; external name 'dataType';
      fbanks: jint; external name 'banks';
      foffset: jint; external name 'offset';
      fsize: jint; external name 'size';
      foffsets: Arr1jint; external name 'offsets';
  public
    class function getDataTypeSize(para1: jint): jint; static; overload;
  strict protected
    constructor create(para1: jint; para2: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: Arr1jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; const para4: array of jint); overload;
  public
    function getDataType(): jint; overload; virtual;
    function getSize(): jint; overload; virtual;
    function getOffset(): jint; overload; virtual;
    function getOffsets(): Arr1jint; overload; virtual;
    function getNumBanks(): jint; overload; virtual;
    function getElem(para1: jint): jint; overload; virtual;
    function getElem(para1: jint; para2: jint): jint; overload; virtual; abstract;
    procedure setElem(para1: jint; para2: jint); overload; virtual;
    procedure setElem(para1: jint; para2: jint; para3: jint); overload; virtual; abstract;
    function getElemFloat(para1: jint): jfloat; overload; virtual;
    function getElemFloat(para1: jint; para2: jint): jfloat; overload; virtual;
    procedure setElemFloat(para1: jint; para2: jfloat); overload; virtual;
    procedure setElemFloat(para1: jint; para2: jint; para3: jfloat); overload; virtual;
    function getElemDouble(para1: jint): jdouble; overload; virtual;
    function getElemDouble(para1: jint; para2: jint): jdouble; overload; virtual;
    procedure setElemDouble(para1: jint; para2: jdouble); overload; virtual;
    procedure setElemDouble(para1: jint; para2: jint; para3: jdouble); overload; virtual;
  end;

  JAIImageConsumer = interface external 'java.awt.image' name 'ImageConsumer' 
    const
      RANDOMPIXELORDER = 1;
      TOPDOWNLEFTRIGHT = 2;
      COMPLETESCANLINES = 4;
      SINGLEPASS = 8;
      SINGLEFRAME = 16;
      IMAGEERROR = 1;
      SINGLEFRAMEDONE = 2;
      STATICIMAGEDONE = 3;
      IMAGEABORTED = 4;
    procedure setDimensions(para1: jint; para2: jint); overload;
    procedure setProperties(para1: JUHashtable); overload;
    procedure setColorModel(para1: JAIColorModel); overload;
    procedure setHints(para1: jint); overload;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIColorModel; para6: Arr1jbyte; para7: jint; para8: jint); overload;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIColorModel; var para6: array of jbyte; para7: jint; para8: jint); overload;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIColorModel; para6: Arr1jint; para7: jint; para8: jint); overload;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIColorModel; var para6: array of jint; para7: jint; para8: jint); overload;
    procedure imageComplete(para1: jint); overload;
  end;

  JAIImageObserver = interface external 'java.awt.image' name 'ImageObserver' 
    const
      WIDTH = 1;
      HEIGHT = 2;
      PROPERTIES = 4;
      SOMEBITS = 8;
      FRAMEBITS = 16;
      ALLBITS = 32;
      ERROR = 64;
      ABORT = 128;
    function imageUpdate(para1: JAImage; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint): jboolean; overload;
  end;

  JAIImageProducer = interface external 'java.awt.image' name 'ImageProducer' 
    procedure addConsumer(para1: JAIImageConsumer); overload;
    function isConsumer(para1: JAIImageConsumer): jboolean; overload;
    procedure removeConsumer(para1: JAIImageConsumer); overload;
    procedure startProduction(para1: JAIImageConsumer); overload;
    procedure requestTopDownLeftRightResend(para1: JAIImageConsumer); overload;
  end;

  JAILookupTable = class abstract external 'java.awt.image' name 'LookupTable' (JLObject)
  strict protected
    constructor create(para1: jint; para2: jint); overload;
  public
    function getNumComponents(): jint; overload; virtual;
    function getOffset(): jint; overload; virtual;
    function lookupPixel(para1: Arr1jint; para2: Arr1jint): Arr1jint; overload; virtual; abstract;
    function lookupPixel(var para1: array of jint; var para2: array of jint): Arr1jint; overload; virtual; abstract;
  end;

  JAIRaster = class external 'java.awt.image' name 'Raster' (JLObject)
  strict protected
    var
      fsampleModel: JAISampleModel; external name 'sampleModel';
      fdataBuffer: JAIDataBuffer; external name 'dataBuffer';
      fminX: jint; external name 'minX';
      fminY: jint; external name 'minY';
      fwidth: jint; external name 'width';
      fheight: jint; external name 'height';
      fsampleModelTranslateX: jint; external name 'sampleModelTranslateX';
      fsampleModelTranslateY: jint; external name 'sampleModelTranslateY';
      fnumBands: jint; external name 'numBands';
      fnumDataElements: jint; external name 'numDataElements';
      fparent: JAIRaster; external name 'parent';
  public
    class function createInterleavedRaster(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAPoint): JAIWritableRaster; static; overload;
    class function createInterleavedRaster(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: Arr1jint; para7: JAPoint): JAIWritableRaster; static; overload;
    class function createInterleavedRaster(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; var para6: array of jint; para7: JAPoint): JAIWritableRaster; static; overload;
    class function createBandedRaster(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAPoint): JAIWritableRaster; static; overload;
    class function createBandedRaster(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jint; para6: Arr1jint; para7: JAPoint): JAIWritableRaster; static; overload;
    class function createBandedRaster(para1: jint; para2: jint; para3: jint; para4: jint; var para5: array of jint; var para6: array of jint; para7: JAPoint): JAIWritableRaster; static; overload;
    class function createPackedRaster(para1: jint; para2: jint; para3: jint; para4: Arr1jint; para5: JAPoint): JAIWritableRaster; static; overload;
    class function createPackedRaster(para1: jint; para2: jint; para3: jint; var para4: array of jint; para5: JAPoint): JAIWritableRaster; static; overload;
    class function createPackedRaster(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: JAPoint): JAIWritableRaster; static; overload;
    class function createInterleavedRaster(para1: JAIDataBuffer; para2: jint; para3: jint; para4: jint; para5: jint; para6: Arr1jint; para7: JAPoint): JAIWritableRaster; static; overload;
    class function createInterleavedRaster(para1: JAIDataBuffer; para2: jint; para3: jint; para4: jint; para5: jint; var para6: array of jint; para7: JAPoint): JAIWritableRaster; static; overload;
    class function createBandedRaster(para1: JAIDataBuffer; para2: jint; para3: jint; para4: jint; para5: Arr1jint; para6: Arr1jint; para7: JAPoint): JAIWritableRaster; static; overload;
    class function createBandedRaster(para1: JAIDataBuffer; para2: jint; para3: jint; para4: jint; var para5: array of jint; var para6: array of jint; para7: JAPoint): JAIWritableRaster; static; overload;
    class function createPackedRaster(para1: JAIDataBuffer; para2: jint; para3: jint; para4: jint; para5: Arr1jint; para6: JAPoint): JAIWritableRaster; static; overload;
    class function createPackedRaster(para1: JAIDataBuffer; para2: jint; para3: jint; para4: jint; var para5: array of jint; para6: JAPoint): JAIWritableRaster; static; overload;
    class function createPackedRaster(para1: JAIDataBuffer; para2: jint; para3: jint; para4: jint; para5: JAPoint): JAIWritableRaster; static; overload;
    class function createRaster(para1: JAISampleModel; para2: JAIDataBuffer; para3: JAPoint): JAIRaster; static; overload;
    class function createWritableRaster(para1: JAISampleModel; para2: JAPoint): JAIWritableRaster; static; overload;
    class function createWritableRaster(para1: JAISampleModel; para2: JAIDataBuffer; para3: JAPoint): JAIWritableRaster; static; overload;
  strict protected
    constructor create(para1: JAISampleModel; para2: JAPoint); overload;
    constructor create(para1: JAISampleModel; para2: JAIDataBuffer; para3: JAPoint); overload;
    constructor create(para1: JAISampleModel; para2: JAIDataBuffer; para3: JARectangle; para4: JAPoint; para5: JAIRaster); overload;
  public
    function getParent(): JAIRaster; overload; virtual;
    function getSampleModelTranslateX(): jint; overload; virtual; final;
    function getSampleModelTranslateY(): jint; overload; virtual; final;
    function createCompatibleWritableRaster(): JAIWritableRaster; overload; virtual;
    function createCompatibleWritableRaster(para1: jint; para2: jint): JAIWritableRaster; overload; virtual;
    function createCompatibleWritableRaster(para1: JARectangle): JAIWritableRaster; overload; virtual;
    function createCompatibleWritableRaster(para1: jint; para2: jint; para3: jint; para4: jint): JAIWritableRaster; overload; virtual;
    function createTranslatedChild(para1: jint; para2: jint): JAIRaster; overload; virtual;
    function createChild(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: Arr1jint): JAIRaster; overload; virtual;
    function createChild(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; var para7: array of jint): JAIRaster; overload; virtual;
    function getBounds(): JARectangle; overload; virtual;
    function getMinX(): jint; overload; virtual; final;
    function getMinY(): jint; overload; virtual; final;
    function getWidth(): jint; overload; virtual; final;
    function getHeight(): jint; overload; virtual; final;
    function getNumBands(): jint; overload; virtual; final;
    function getNumDataElements(): jint; overload; virtual; final;
    function getTransferType(): jint; overload; virtual; final;
    function getDataBuffer(): JAIDataBuffer; overload; virtual;
    function getSampleModel(): JAISampleModel; overload; virtual;
    function getDataElements(para1: jint; para2: jint; para3: JLObject): JLObject; overload; virtual;
    function getDataElements(para1: jint; para2: jint; para3: jint; para4: jint; para5: JLObject): JLObject; overload; virtual;
    function getPixel(para1: jint; para2: jint; para3: Arr1jint): Arr1jint; overload; virtual;
    function getPixel(para1: jint; para2: jint; var para3: array of jint): Arr1jint; overload; virtual;
    function getPixel(para1: jint; para2: jint; para3: Arr1jfloat): Arr1jfloat; overload; virtual;
    function getPixel(para1: jint; para2: jint; var para3: array of jfloat): Arr1jfloat; overload; virtual;
    function getPixel(para1: jint; para2: jint; para3: Arr1jdouble): Arr1jdouble; overload; virtual;
    function getPixel(para1: jint; para2: jint; var para3: array of jdouble): Arr1jdouble; overload; virtual;
    function getPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jint): Arr1jint; overload; virtual;
    function getPixels(para1: jint; para2: jint; para3: jint; para4: jint; var para5: array of jint): Arr1jint; overload; virtual;
    function getPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jfloat): Arr1jfloat; overload; virtual;
    function getPixels(para1: jint; para2: jint; para3: jint; para4: jint; var para5: array of jfloat): Arr1jfloat; overload; virtual;
    function getPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jdouble): Arr1jdouble; overload; virtual;
    function getPixels(para1: jint; para2: jint; para3: jint; para4: jint; var para5: array of jdouble): Arr1jdouble; overload; virtual;
    function getSample(para1: jint; para2: jint; para3: jint): jint; overload; virtual;
    function getSampleFloat(para1: jint; para2: jint; para3: jint): jfloat; overload; virtual;
    function getSampleDouble(para1: jint; para2: jint; para3: jint): jdouble; overload; virtual;
    function getSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: Arr1jint): Arr1jint; overload; virtual;
    function getSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; var para6: array of jint): Arr1jint; overload; virtual;
    function getSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: Arr1jfloat): Arr1jfloat; overload; virtual;
    function getSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; var para6: array of jfloat): Arr1jfloat; overload; virtual;
    function getSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: Arr1jdouble): Arr1jdouble; overload; virtual;
    function getSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; var para6: array of jdouble): Arr1jdouble; overload; virtual;
  end;

  JAIRasterOp = interface external 'java.awt.image' name 'RasterOp' 
    function filter(para1: JAIRaster; para2: JAIWritableRaster): JAIWritableRaster; overload;
    function getBounds2D(para1: JAIRaster): JAGRectangle2D; overload;
    function createCompatibleDestRaster(para1: JAIRaster): JAIWritableRaster; overload;
    function getPoint2D(para1: JAGPoint2D; para2: JAGPoint2D): JAGPoint2D; overload;
    function getRenderingHints(): JARenderingHints; overload;
  end;

  JAIRenderedImage = interface external 'java.awt.image' name 'RenderedImage' 
    function getSources(): JUVector; overload;
    function getProperty(para1: JLString): JLObject; overload;
    function getPropertyNames(): Arr1JLString; overload;
    function getColorModel(): JAIColorModel; overload;
    function getSampleModel(): JAISampleModel; overload;
    function getWidth(): jint; overload;
    function getHeight(): jint; overload;
    function getMinX(): jint; overload;
    function getMinY(): jint; overload;
    function getNumXTiles(): jint; overload;
    function getNumYTiles(): jint; overload;
    function getMinTileX(): jint; overload;
    function getMinTileY(): jint; overload;
    function getTileWidth(): jint; overload;
    function getTileHeight(): jint; overload;
    function getTileGridXOffset(): jint; overload;
    function getTileGridYOffset(): jint; overload;
    function getTile(para1: jint; para2: jint): JAIRaster; overload;
    function getData(): JAIRaster; overload;
    function getData(para1: JARectangle): JAIRaster; overload;
    function copyData(para1: JAIWritableRaster): JAIWritableRaster; overload;
  end;

  JAISampleModel = class abstract external 'java.awt.image' name 'SampleModel' (JLObject)
  strict protected
    var
      fwidth: jint; external name 'width';
      fheight: jint; external name 'height';
      fnumBands: jint; external name 'numBands';
      fdataType: jint; external name 'dataType';
  public
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint); overload;
    function getWidth(): jint; overload; virtual; final;
    function getHeight(): jint; overload; virtual; final;
    function getNumBands(): jint; overload; virtual; final;
    function getNumDataElements(): jint; overload; virtual; abstract;
    function getDataType(): jint; overload; virtual; final;
    function getTransferType(): jint; overload; virtual;
    function getPixel(para1: jint; para2: jint; para3: Arr1jint; para4: JAIDataBuffer): Arr1jint; overload; virtual;
    function getPixel(para1: jint; para2: jint; var para3: array of jint; para4: JAIDataBuffer): Arr1jint; overload; virtual;
    function getDataElements(para1: jint; para2: jint; para3: JLObject; para4: JAIDataBuffer): JLObject; overload; virtual; abstract;
    function getDataElements(para1: jint; para2: jint; para3: jint; para4: jint; para5: JLObject; para6: JAIDataBuffer): JLObject; overload; virtual;
    procedure setDataElements(para1: jint; para2: jint; para3: JLObject; para4: JAIDataBuffer); overload; virtual; abstract;
    procedure setDataElements(para1: jint; para2: jint; para3: jint; para4: jint; para5: JLObject; para6: JAIDataBuffer); overload; virtual;
    function getPixel(para1: jint; para2: jint; para3: Arr1jfloat; para4: JAIDataBuffer): Arr1jfloat; overload; virtual;
    function getPixel(para1: jint; para2: jint; var para3: array of jfloat; para4: JAIDataBuffer): Arr1jfloat; overload; virtual;
    function getPixel(para1: jint; para2: jint; para3: Arr1jdouble; para4: JAIDataBuffer): Arr1jdouble; overload; virtual;
    function getPixel(para1: jint; para2: jint; var para3: array of jdouble; para4: JAIDataBuffer): Arr1jdouble; overload; virtual;
    function getPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jint; para6: JAIDataBuffer): Arr1jint; overload; virtual;
    function getPixels(para1: jint; para2: jint; para3: jint; para4: jint; var para5: array of jint; para6: JAIDataBuffer): Arr1jint; overload; virtual;
    function getPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jfloat; para6: JAIDataBuffer): Arr1jfloat; overload; virtual;
    function getPixels(para1: jint; para2: jint; para3: jint; para4: jint; var para5: array of jfloat; para6: JAIDataBuffer): Arr1jfloat; overload; virtual;
    function getPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jdouble; para6: JAIDataBuffer): Arr1jdouble; overload; virtual;
    function getPixels(para1: jint; para2: jint; para3: jint; para4: jint; var para5: array of jdouble; para6: JAIDataBuffer): Arr1jdouble; overload; virtual;
    function getSample(para1: jint; para2: jint; para3: jint; para4: JAIDataBuffer): jint; overload; virtual; abstract;
    function getSampleFloat(para1: jint; para2: jint; para3: jint; para4: JAIDataBuffer): jfloat; overload; virtual;
    function getSampleDouble(para1: jint; para2: jint; para3: jint; para4: JAIDataBuffer): jdouble; overload; virtual;
    function getSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: Arr1jint; para7: JAIDataBuffer): Arr1jint; overload; virtual;
    function getSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; var para6: array of jint; para7: JAIDataBuffer): Arr1jint; overload; virtual;
    function getSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: Arr1jfloat; para7: JAIDataBuffer): Arr1jfloat; overload; virtual;
    function getSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; var para6: array of jfloat; para7: JAIDataBuffer): Arr1jfloat; overload; virtual;
    function getSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: Arr1jdouble; para7: JAIDataBuffer): Arr1jdouble; overload; virtual;
    function getSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; var para6: array of jdouble; para7: JAIDataBuffer): Arr1jdouble; overload; virtual;
    procedure setPixel(para1: jint; para2: jint; para3: Arr1jint; para4: JAIDataBuffer); overload; virtual;
    procedure setPixel(para1: jint; para2: jint; var para3: array of jint; para4: JAIDataBuffer); overload; virtual;
    procedure setPixel(para1: jint; para2: jint; para3: Arr1jfloat; para4: JAIDataBuffer); overload; virtual;
    procedure setPixel(para1: jint; para2: jint; var para3: array of jfloat; para4: JAIDataBuffer); overload; virtual;
    procedure setPixel(para1: jint; para2: jint; para3: Arr1jdouble; para4: JAIDataBuffer); overload; virtual;
    procedure setPixel(para1: jint; para2: jint; var para3: array of jdouble; para4: JAIDataBuffer); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jint; para6: JAIDataBuffer); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; var para5: array of jint; para6: JAIDataBuffer); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jfloat; para6: JAIDataBuffer); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; var para5: array of jfloat; para6: JAIDataBuffer); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jdouble; para6: JAIDataBuffer); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; var para5: array of jdouble; para6: JAIDataBuffer); overload; virtual;
    procedure setSample(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIDataBuffer); overload; virtual; abstract;
    procedure setSample(para1: jint; para2: jint; para3: jint; para4: jfloat; para5: JAIDataBuffer); overload; virtual;
    procedure setSample(para1: jint; para2: jint; para3: jint; para4: jdouble; para5: JAIDataBuffer); overload; virtual;
    procedure setSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: Arr1jint; para7: JAIDataBuffer); overload; virtual;
    procedure setSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; var para6: array of jint; para7: JAIDataBuffer); overload; virtual;
    procedure setSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: Arr1jfloat; para7: JAIDataBuffer); overload; virtual;
    procedure setSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; var para6: array of jfloat; para7: JAIDataBuffer); overload; virtual;
    procedure setSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: Arr1jdouble; para7: JAIDataBuffer); overload; virtual;
    procedure setSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; var para6: array of jdouble; para7: JAIDataBuffer); overload; virtual;
    function createCompatibleSampleModel(para1: jint; para2: jint): JAISampleModel; overload; virtual; abstract;
    function createSubsetSampleModel(para1: Arr1jint): JAISampleModel; overload; virtual; abstract;
    function createSubsetSampleModel(var para1: array of jint): JAISampleModel; overload; virtual; abstract;
    function createDataBuffer(): JAIDataBuffer; overload; virtual; abstract;
    function getSampleSize(): Arr1jint; overload; virtual; abstract;
    function getSampleSize(para1: jint): jint; overload; virtual; abstract;
  end;

  JAITileObserver = interface external 'java.awt.image' name 'TileObserver' 
    procedure tileUpdate(para1: JAIWritableRenderedImage; para2: jint; para3: jint; para4: jboolean); overload;
  end;

  JAIRRenderableImage = interface external 'java.awt.image.renderable' name 'RenderableImage' 
    const
      HINTS_OBSERVED = 'HINTS_OBSERVED';
    function getSources(): JUVector; overload;
    function getProperty(para1: JLString): JLObject; overload;
    function getPropertyNames(): Arr1JLString; overload;
    function isDynamic(): jboolean; overload;
    function getWidth(): jfloat; overload;
    function getHeight(): jfloat; overload;
    function getMinX(): jfloat; overload;
    function getMinY(): jfloat; overload;
    function createScaledRendering(para1: jint; para2: jint; para3: JARenderingHints): JAIRenderedImage; overload;
    function createDefaultRendering(): JAIRenderedImage; overload;
    function createRendering(para1: JAIRRenderContext): JAIRenderedImage; overload;
  end;

  JAIRRenderedImageFactory = interface external 'java.awt.image.renderable' name 'RenderedImageFactory' 
    function create_(para1: JAIRParameterBlock; para2: JARenderingHints): JAIRenderedImage; external name 'create'; overload;
  end;

  JAPFontPeer = interface external 'java.awt.peer' name 'FontPeer' 
  end;

  JAPKeyboardFocusManagerPeer = interface external 'java.awt.peer' name 'KeyboardFocusManagerPeer' 
    procedure setCurrentFocusedWindow(para1: JAWindow); overload;
    function getCurrentFocusedWindow(): JAWindow; overload;
    procedure setCurrentFocusOwner(para1: JAComponent); overload;
    function getCurrentFocusOwner(): JAComponent; overload;
    procedure clearGlobalFocusOwner(para1: JAWindow); overload;
  end;

  JAPMenuComponentPeer = interface external 'java.awt.peer' name 'MenuComponentPeer' 
    procedure dispose(); overload;
    procedure setFont(para1: JAFont); overload;
  end;

  JAPMouseInfoPeer = interface external 'java.awt.peer' name 'MouseInfoPeer' 
    function fillPointWithCoords(para1: JAPoint): jint; overload;
    function isWindowUnderMouse(para1: JAWindow): jboolean; overload;
  end;

  JAPRobotPeer = interface external 'java.awt.peer' name 'RobotPeer' 
    procedure mouseMove(para1: jint; para2: jint); overload;
    procedure mousePress(para1: jint); overload;
    procedure mouseRelease(para1: jint); overload;
    procedure mouseWheel(para1: jint); overload;
    procedure keyPress(para1: jint); overload;
    procedure keyRelease(para1: jint); overload;
    function getRGBPixel(para1: jint; para2: jint): jint; overload;
    function getRGBPixels(para1: JARectangle): Arr1jint; overload;
    procedure dispose(); overload;
  end;

  JAPSystemTrayPeer = interface external 'java.awt.peer' name 'SystemTrayPeer' 
    function getTrayIconSize(): JADimension; overload;
  end;

  JAPTrayIconPeer = interface external 'java.awt.peer' name 'TrayIconPeer' 
    procedure dispose(); overload;
    procedure setToolTip(para1: JLString); overload;
    procedure updateImage(); overload;
    procedure displayMessage(para1: JLString; para2: JLString; para3: JLString); overload;
    procedure showPopupMenu(para1: jint; para2: jint); overload;
  end;

  JAPPageable = interface external 'java.awt.print' name 'Pageable' 
    const
      UNKNOWN_NUMBER_OF_PAGES = -1;
    function getNumberOfPages(): jint; overload;
    function getPageFormat(para1: jint): JAPPageFormat; overload;  // throws java.lang.IndexOutOfBoundsException
    function getPrintable(para1: jint): JAPPrintable; overload;  // throws java.lang.IndexOutOfBoundsException
  end;

  JAPPrintable = interface external 'java.awt.print' name 'Printable' 
    const
      PAGE_EXISTS = 0;
      NO_SUCH_PAGE = 1;
    function print(para1: JAGraphics; para2: JAPPageFormat; para3: jint): jint; overload;  // throws java.awt.print.PrinterException
  end;

  JAPPrinterGraphics = interface external 'java.awt.print' name 'PrinterGraphics' 
    function getPrinterJob(): JAPPrinterJob; overload;
  end;

  JAPPrinterJob = class abstract external 'java.awt.print' name 'PrinterJob' (JLObject)
  public
    class function getPrinterJob(): JAPPrinterJob; static; overload;
    class function lookupPrintServices(): Arr1JPPrintService; static; overload;
    class function lookupStreamPrintServices(para1: JLString): Arr1JPStreamPrintServiceFactory; static; overload;
    constructor create(); overload;
    function getPrintService(): JPPrintService; overload; virtual;
    procedure setPrintService(para1: JPPrintService); overload; virtual;  // throws java.awt.print.PrinterException
    procedure setPrintable(para1: JAPPrintable); overload; virtual; abstract;
    procedure setPrintable(para1: JAPPrintable; para2: JAPPageFormat); overload; virtual; abstract;
    procedure setPageable(para1: JAPPageable); overload; virtual; abstract;  // throws java.lang.NullPointerException
    function printDialog(): jboolean; overload; virtual; abstract;  // throws java.awt.HeadlessException
    function printDialog(para1: JPAPrintRequestAttributeSet): jboolean; overload; virtual;  // throws java.awt.HeadlessException
    function pageDialog(para1: JAPPageFormat): JAPPageFormat; overload; virtual; abstract;  // throws java.awt.HeadlessException
    function pageDialog(para1: JPAPrintRequestAttributeSet): JAPPageFormat; overload; virtual;  // throws java.awt.HeadlessException
    function defaultPage(para1: JAPPageFormat): JAPPageFormat; overload; virtual; abstract;
    function defaultPage(): JAPPageFormat; overload; virtual;
    function getPageFormat(para1: JPAPrintRequestAttributeSet): JAPPageFormat; overload; virtual;
    function validatePage(para1: JAPPageFormat): JAPPageFormat; overload; virtual; abstract;
    procedure print(); overload; virtual; abstract;  // throws java.awt.print.PrinterException
    procedure print(para1: JPAPrintRequestAttributeSet); overload; virtual;  // throws java.awt.print.PrinterException
    procedure setCopies(para1: jint); overload; virtual; abstract;
    function getCopies(): jint; overload; virtual; abstract;
    function getUserName(): JLString; overload; virtual; abstract;
    procedure setJobName(para1: JLString); overload; virtual; abstract;
    function getJobName(): JLString; overload; virtual; abstract;
    procedure cancel(); overload; virtual; abstract;
    function isCancelled(): jboolean; overload; virtual; abstract;
  end;

  JBAppletInitializer = interface external 'java.beans' name 'AppletInitializer' 
    procedure initialize(para1: JAApplet; para2: JBBBeanContext); overload;
    procedure activate(para1: JAApplet); overload;
  end;

  JBBeanInfo = interface external 'java.beans' name 'BeanInfo' 
    const
      ICON_COLOR_16x16 = 1;
      ICON_COLOR_32x32 = 2;
      ICON_MONO_16x16 = 3;
      ICON_MONO_32x32 = 4;
    function getBeanDescriptor(): JBBeanDescriptor; overload;
    function getEventSetDescriptors(): Arr1JBEventSetDescriptor; overload;
    function getDefaultEventIndex(): jint; overload;
    function getPropertyDescriptors(): Arr1JBPropertyDescriptor; overload;
    function getDefaultPropertyIndex(): jint; overload;
    function getMethodDescriptors(): Arr1JBMethodDescriptor; overload;
    function getAdditionalBeanInfo(): Arr1JBBeanInfo; overload;
    function getIcon(para1: jint): JAImage; overload;
  end;

  JBBeans = class external 'java.beans' name 'Beans' (JLObject)
  public
    constructor create(); overload;
    class function instantiate(para1: JLClassLoader; para2: JLString): JLObject; static; overload;  // throws java.io.IOException, java.lang.ClassNotFoundException
    class function instantiate(para1: JLClassLoader; para2: JLString; para3: JBBBeanContext): JLObject; static; overload;  // throws java.io.IOException, java.lang.ClassNotFoundException
    class function instantiate(para1: JLClassLoader; para2: JLString; para3: JBBBeanContext; para4: JBAppletInitializer): JLObject; static; overload;  // throws java.io.IOException, java.lang.ClassNotFoundException
    class function getInstanceOf(para1: JLObject; para2: JLClass): JLObject; static; overload;
    class function isInstanceOf(para1: JLObject; para2: JLClass): jboolean; static; overload;
    class function isDesignTime(): jboolean; static; overload;
    class function isGuiAvailable(): jboolean; static; overload;
    class procedure setDesignTime(para1: jboolean); static; overload;  // throws java.lang.SecurityException
    class procedure setGuiAvailable(para1: jboolean); static; overload;  // throws java.lang.SecurityException
  end;

  JBCustomizer = interface external 'java.beans' name 'Customizer' 
    procedure setObject(para1: JLObject); overload;
    procedure addPropertyChangeListener(para1: JBPropertyChangeListener); overload;
    procedure removePropertyChangeListener(para1: JBPropertyChangeListener); overload;
  end;

  JBDesignMode = interface external 'java.beans' name 'DesignMode' 
    const
      PROPERTYNAME = 'designTime';
    procedure setDesignTime(para1: jboolean); overload;
    function isDesignTime(): jboolean; overload;
  end;

  JBEncoder = class external 'java.beans' name 'Encoder' (JLObject)
  public
    constructor create(); overload;
  strict protected
    procedure writeObject(para1: JLObject); overload; virtual;
  public
    procedure setExceptionListener(para1: JBExceptionListener); overload; virtual;
    function getExceptionListener(): JBExceptionListener; overload; virtual;
    function getPersistenceDelegate(para1: JLClass): JBPersistenceDelegate; overload; virtual;
    procedure setPersistenceDelegate(para1: JLClass; para2: JBPersistenceDelegate); overload; virtual;
    function remove(para1: JLObject): JLObject; overload; virtual;
    function get(para1: JLObject): JLObject; overload; virtual;
    procedure writeStatement(para1: JBStatement); overload; virtual;
    procedure writeExpression(para1: JBExpression); overload; virtual;
  end;

  JBExceptionListener = interface external 'java.beans' name 'ExceptionListener' 
    procedure exceptionThrown(para1: JLException); overload;
  end;

  JBFeatureDescriptor = class external 'java.beans' name 'FeatureDescriptor' (JLObject)
  public
    constructor create(); overload;
    function getName(): JLString; overload; virtual;
    procedure setName(para1: JLString); overload; virtual;
    function getDisplayName(): JLString; overload; virtual;
    procedure setDisplayName(para1: JLString); overload; virtual;
    function isExpert(): jboolean; overload; virtual;
    procedure setExpert(para1: jboolean); overload; virtual;
    function isHidden(): jboolean; overload; virtual;
    procedure setHidden(para1: jboolean); overload; virtual;
    function isPreferred(): jboolean; overload; virtual;
    procedure setPreferred(para1: jboolean); overload; virtual;
    function getShortDescription(): JLString; overload; virtual;
    procedure setShortDescription(para1: JLString); overload; virtual;
    procedure setValue(para1: JLString; para2: JLObject); overload; virtual;
    function getValue(para1: JLString): JLObject; overload; virtual;
    function attributeNames(): JUEnumeration; overload; virtual;
  end;

  JBIntrospector = class external 'java.beans' name 'Introspector' (JLObject)
  public
    const
      USE_ALL_BEANINFO = 1;
      IGNORE_IMMEDIATE_BEANINFO = 2;
      IGNORE_ALL_BEANINFO = 3;
  public
    class function getBeanInfo(para1: JLClass): JBBeanInfo; static; overload;  // throws java.beans.IntrospectionException
    class function getBeanInfo(para1: JLClass; para2: jint): JBBeanInfo; static; overload;  // throws java.beans.IntrospectionException
    class function getBeanInfo(para1: JLClass; para2: JLClass): JBBeanInfo; static; overload;  // throws java.beans.IntrospectionException
    class function decapitalize(para1: JLString): JLString; static; overload;
    class function getBeanInfoSearchPath(): Arr1JLString; static; overload;
    class procedure setBeanInfoSearchPath(para1: Arr1JLString); static; overload;
    class procedure setBeanInfoSearchPath(var para1: array of JLString); static; overload;
    class procedure flushCaches(); static; overload;
    class procedure flushFromCaches(para1: JLClass); static; overload;
  end;

  JBMetaData = class external 'java.beans' name 'MetaData' (JLObject)
  public
    class procedure setPersistenceDelegate(para1: JLClass; para2: JBPersistenceDelegate); static; overload;
    class function getPersistenceDelegate(para1: JLClass): JBPersistenceDelegate; static; overload;
    class function getBeanInfo(para1: JLClass): JBBeanInfo; static; overload;
  end;

  JBNameGenerator = class external 'java.beans' name 'NameGenerator' (JLObject)
  public
    constructor create(); overload;
    procedure clear(); overload; virtual;
    class function unqualifiedClassName(para1: JLClass): JLString; static; overload;
    class function capitalize(para1: JLString): JLString; static; overload;
    function instanceName(para1: JLObject): JLString; overload; virtual;
  end;

  JBPersistenceDelegate = class abstract external 'java.beans' name 'PersistenceDelegate' (JLObject)
  public
    constructor create(); overload;
    procedure writeObject(para1: JLObject; para2: JBEncoder); overload; virtual;
  strict protected
    function mutatesTo(para1: JLObject; para2: JLObject): jboolean; overload; virtual;
    function instantiate(para1: JLObject; para2: JBEncoder): JBExpression; overload; virtual; abstract;
    procedure initialize(para1: JLClass; para2: JLObject; para3: JLObject; para4: JBEncoder); overload; virtual;
  end;

  JBPropertyEditor = interface external 'java.beans' name 'PropertyEditor' 
    procedure setValue(para1: JLObject); overload;
    function getValue(): JLObject; overload;
    function isPaintable(): jboolean; overload;
    procedure paintValue(para1: JAGraphics; para2: JARectangle); overload;
    function getJavaInitializationString(): JLString; overload;
    function getAsText(): JLString; overload;
    procedure setAsText(para1: JLString); overload;  // throws java.lang.IllegalArgumentException
    function getTags(): Arr1JLString; overload;
    function getCustomEditor(): JAComponent; overload;
    function supportsCustomEditor(): jboolean; overload;
    procedure addPropertyChangeListener(para1: JBPropertyChangeListener); overload;
    procedure removePropertyChangeListener(para1: JBPropertyChangeListener); overload;
  end;

  JBPropertyEditorManager = class external 'java.beans' name 'PropertyEditorManager' (JLObject)
  public
    constructor create(); overload;
    class procedure registerEditor(para1: JLClass; para2: JLClass); static; overload;
    class function findEditor(para1: JLClass): JBPropertyEditor; static; overload;
    class function getEditorSearchPath(): Arr1JLString; static; overload;
    class procedure setEditorSearchPath(para1: Arr1JLString); static; overload;
    class procedure setEditorSearchPath(var para1: array of JLString); static; overload;
  end;

  JBReflectionUtils = class external 'java.beans' name 'ReflectionUtils' (JLObject)
  public
    type
      InnerSignature = class;
      Arr1InnerSignature = array of InnerSignature;
      Arr2InnerSignature = array of Arr1InnerSignature;
      Arr3InnerSignature = array of Arr2InnerSignature;
      InnerSignature = class external 'java.beans' name 'Signature' 
      end;

  public
    class function typeToClass(para1: JLClass): JLClass; static; overload;
    class function isPrimitive(para1: JLClass): jboolean; static; overload;
    class function primitiveTypeFor(para1: JLClass): JLClass; static; overload;
    class function findPublicMethod(para1: JLClass; para2: JLString; para3: Arr1JLClass): JLRMethod; static; overload;
    class function findPublicMethod(para1: JLClass; para2: JLString; var para3: array of JLClass): JLRMethod; static; overload;
    class function findMethod(para1: JLClass; para2: JLString; para3: Arr1JLClass): JLRMethod; static; overload;
    class function findMethod(para1: JLClass; para2: JLString; var para3: array of JLClass): JLRMethod; static; overload;
    class function getMethod(para1: JLClass; para2: JLString; para3: Arr1JLClass): JLRMethod; static; overload;
    class function getMethod(para1: JLClass; para2: JLString; var para3: array of JLClass): JLRMethod; static; overload;
    class function getConstructor(para1: JLClass; para2: Arr1JLClass): JLRConstructor; static; overload;
    class function getConstructor(para1: JLClass; var para2: array of JLClass): JLRConstructor; static; overload;
    class function getPrivateField(para1: JLObject; para2: JLClass; para3: JLString): JLObject; static; overload;
    class function getPrivateField(para1: JLObject; para2: JLClass; para3: JLString; para4: JBExceptionListener): JLObject; static; overload;
  end;

  JBStatement = class external 'java.beans' name 'Statement' (JLObject)
  public
    constructor create(para1: JLObject; para2: JLString; para3: Arr1JLObject); overload;
    constructor create(para1: JLObject; para2: JLString; const para3: array of JLObject); overload;
    function getTarget(): JLObject; overload; virtual;
    function getMethodName(): JLString; overload; virtual;
    function getArguments(): Arr1JLObject; overload; virtual;
    procedure execute(); overload; virtual;  // throws java.lang.Exception
    function toString(): JLString; overload; virtual;
  end;

  JBVisibility = interface external 'java.beans' name 'Visibility' 
    function needsGui(): jboolean; overload;
    procedure dontUseGui(); overload;
    procedure okToUseGui(); overload;
    function avoidingGui(): jboolean; overload;
  end;

  JBXMLDecoder = class external 'java.beans' name 'XMLDecoder' (JLObject)
  public
    constructor create(para1: JIInputStream); overload;
    constructor create(para1: JIInputStream; para2: JLObject); overload;
    constructor create(para1: JIInputStream; para2: JLObject; para3: JBExceptionListener); overload;
    constructor create(para1: JIInputStream; para2: JLObject; para3: JBExceptionListener; para4: JLClassLoader); overload;
    procedure close(); overload; virtual;
    procedure setExceptionListener(para1: JBExceptionListener); overload; virtual;
    function getExceptionListener(): JBExceptionListener; overload; virtual;
    function readObject(): JLObject; overload; virtual;
    procedure setOwner(para1: JLObject); overload; virtual;
    function getOwner(): JLObject; overload; virtual;
  end;

  JBBBeanContextChild = interface external 'java.beans.beancontext' name 'BeanContextChild' 
    procedure setBeanContext(para1: JBBBeanContext); overload;  // throws java.beans.PropertyVetoException
    function getBeanContext(): JBBBeanContext; overload;
    procedure addPropertyChangeListener(para1: JLString; para2: JBPropertyChangeListener); overload;
    procedure removePropertyChangeListener(para1: JLString; para2: JBPropertyChangeListener); overload;
    procedure addVetoableChangeListener(para1: JLString; para2: JBVetoableChangeListener); overload;
    procedure removeVetoableChangeListener(para1: JLString; para2: JBVetoableChangeListener); overload;
  end;

  JBBBeanContextChildComponentProxy = interface external 'java.beans.beancontext' name 'BeanContextChildComponentProxy' 
    function getComponent(): JAComponent; overload;
  end;

  JBBBeanContextContainerProxy = interface external 'java.beans.beancontext' name 'BeanContextContainerProxy' 
    function getContainer(): JAContainer; overload;
  end;

  JBBBeanContextProxy = interface external 'java.beans.beancontext' name 'BeanContextProxy' 
    function getBeanContextProxy(): JBBBeanContextChild; overload;
  end;

  JBBBeanContextServiceProvider = interface external 'java.beans.beancontext' name 'BeanContextServiceProvider' 
    function getService(para1: JBBBeanContextServices; para2: JLObject; para3: JLClass; para4: JLObject): JLObject; overload;
    procedure releaseService(para1: JBBBeanContextServices; para2: JLObject; para3: JLObject); overload;
    function getCurrentServiceSelectors(para1: JBBBeanContextServices; para2: JLClass): JUIterator; overload;
  end;

  JIBits = class external 'java.io' name 'Bits' (JLObject)
  end;

  JICloseable = interface external 'java.io' name 'Closeable' 
    procedure close(); overload;  // throws java.io.IOException
  end;

  JIDataInput = interface external 'java.io' name 'DataInput' 
    procedure readFully(para1: Arr1jbyte); overload;  // throws java.io.IOException
    procedure readFully(var para1: array of jbyte); overload;  // throws java.io.IOException
    procedure readFully(para1: Arr1jbyte; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure readFully(var para1: array of jbyte; para2: jint; para3: jint); overload;  // throws java.io.IOException
    function skipBytes(para1: jint): jint; overload;  // throws java.io.IOException
    function readBoolean(): jboolean; overload;  // throws java.io.IOException
    function readByte(): jbyte; overload;  // throws java.io.IOException
    function readUnsignedByte(): jint; overload;  // throws java.io.IOException
    function readShort(): jshort; overload;  // throws java.io.IOException
    function readUnsignedShort(): jint; overload;  // throws java.io.IOException
    function readChar(): jchar; overload;  // throws java.io.IOException
    function readInt(): jint; overload;  // throws java.io.IOException
    function readLong(): jlong; overload;  // throws java.io.IOException
    function readFloat(): jfloat; overload;  // throws java.io.IOException
    function readDouble(): jdouble; overload;  // throws java.io.IOException
    function readLine(): JLString; overload;  // throws java.io.IOException
    function readUTF(): JLString; overload;  // throws java.io.IOException
  end;

  JIDataOutput = interface external 'java.io' name 'DataOutput' 
    procedure write(para1: jint); overload;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte); overload;  // throws java.io.IOException
    procedure write(var para1: array of jbyte); overload;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure writeBoolean(para1: jboolean); overload;  // throws java.io.IOException
    procedure writeByte(para1: jint); overload;  // throws java.io.IOException
    procedure writeShort(para1: jint); overload;  // throws java.io.IOException
    procedure writeChar(para1: jint); overload;  // throws java.io.IOException
    procedure writeInt(para1: jint); overload;  // throws java.io.IOException
    procedure writeLong(para1: jlong); overload;  // throws java.io.IOException
    procedure writeFloat(para1: jfloat); overload;  // throws java.io.IOException
    procedure writeDouble(para1: jdouble); overload;  // throws java.io.IOException
    procedure writeBytes(para1: JLString); overload;  // throws java.io.IOException
    procedure writeChars(para1: JLString); overload;  // throws java.io.IOException
    procedure writeUTF(para1: JLString); overload;  // throws java.io.IOException
  end;

  JIDeleteOnExitHook = class external 'java.io' name 'DeleteOnExitHook' (JLObject)
  end;

  JIExpiringCache = class external 'java.io' name 'ExpiringCache' (JLObject)
  public
    type
      InnerEntry = class;
      Arr1InnerEntry = array of InnerEntry;
      Arr2InnerEntry = array of Arr1InnerEntry;
      Arr3InnerEntry = array of Arr2InnerEntry;
      InnerEntry = class external 'java.io' name 'Entry' 
      end;

  end;

  JIFileDescriptor = class sealed external 'java.io' name 'FileDescriptor' (JLObject)
  public
    final class var
      fin: JIFileDescriptor; external name 'in';
      fout: JIFileDescriptor; external name 'out';
      ferr: JIFileDescriptor; external name 'err';
  public
    constructor create(); overload;
    function valid(): jboolean; overload; virtual;
    procedure sync(); overload; virtual;  // throws java.io.SyncFailedException
  end;

  JIFileFilter = interface external 'java.io' name 'FileFilter' 
    function accept(para1: JIFile): jboolean; overload;
  end;

  JIFileSystem = class abstract external 'java.io' name 'FileSystem' (JLObject)
  public
    const
      BA_EXISTS = 1;
      BA_REGULAR = 2;
      BA_DIRECTORY = 4;
      BA_HIDDEN = 8;
      ACCESS_READ = 4;
      ACCESS_WRITE = 2;
      ACCESS_EXECUTE = 1;
      SPACE_TOTAL = 0;
      SPACE_FREE = 1;
      SPACE_USABLE = 2;
  public
    class function getFileSystem(): JIFileSystem; static; overload;
    function getSeparator(): jchar; overload; virtual; abstract;
    function getPathSeparator(): jchar; overload; virtual; abstract;
    function normalize(para1: JLString): JLString; overload; virtual; abstract;
    function prefixLength(para1: JLString): jint; overload; virtual; abstract;
    function resolve(para1: JLString; para2: JLString): JLString; overload; virtual; abstract;
    function getDefaultParent(): JLString; overload; virtual; abstract;
    function fromURIPath(para1: JLString): JLString; overload; virtual; abstract;
    function isAbsolute(para1: JIFile): jboolean; overload; virtual; abstract;
    function resolve(para1: JIFile): JLString; overload; virtual; abstract;
    function canonicalize(para1: JLString): JLString; overload; virtual; abstract;  // throws java.io.IOException
    function getBooleanAttributes(para1: JIFile): jint; overload; virtual; abstract;
    function checkAccess(para1: JIFile; para2: jint): jboolean; overload; virtual; abstract;
    function setPermission(para1: JIFile; para2: jint; para3: jboolean; para4: jboolean): jboolean; overload; virtual; abstract;
    function getLastModifiedTime(para1: JIFile): jlong; overload; virtual; abstract;
    function getLength(para1: JIFile): jlong; overload; virtual; abstract;
    function createFileExclusively(para1: JLString): jboolean; overload; virtual; abstract;  // throws java.io.IOException
    function delete(para1: JIFile): jboolean; overload; virtual; abstract;
    function list(para1: JIFile): Arr1JLString; overload; virtual; abstract;
    function createDirectory(para1: JIFile): jboolean; overload; virtual; abstract;
    function rename(para1: JIFile; para2: JIFile): jboolean; overload; virtual; abstract;
    function setLastModifiedTime(para1: JIFile; para2: jlong): jboolean; overload; virtual; abstract;
    function setReadOnly(para1: JIFile): jboolean; overload; virtual; abstract;
    function listRoots(): Arr1JIFile; overload; virtual; abstract;
    function getSpace(para1: JIFile; para2: jint): jlong; overload; virtual; abstract;
    function compare(para1: JIFile; para2: JIFile): jint; overload; virtual; abstract;
    function hashCode(para1: JIFile): jint; overload; virtual; abstract;
  end;

  JIFilenameFilter = interface external 'java.io' name 'FilenameFilter' 
    function accept(para1: JIFile; para2: JLString): jboolean; overload;
  end;

  JIFlushable = interface external 'java.io' name 'Flushable' 
    procedure flush(); overload;  // throws java.io.IOException
  end;

  JIObjectInputValidation = interface external 'java.io' name 'ObjectInputValidation' 
    procedure validateObject(); overload;  // throws java.io.InvalidObjectException
  end;

  JIObjectStreamConstants = interface external 'java.io' name 'ObjectStreamConstants' 
    const
      STREAM_MAGIC = -21267;
      STREAM_VERSION = 5;
      TC_BASE = 112;
      TC_NULL = 112;
      TC_REFERENCE = 113;
      TC_CLASSDESC = 114;
      TC_OBJECT = 115;
      TC_STRING = 116;
      TC_ARRAY = 117;
      TC_CLASS = 118;
      TC_BLOCKDATA = 119;
      TC_ENDBLOCKDATA = 120;
      TC_RESET = 121;
      TC_BLOCKDATALONG = 122;
      TC_EXCEPTION = 123;
      TC_LONGSTRING = 124;
      TC_PROXYCLASSDESC = 125;
      TC_ENUM = 126;
      TC_MAX = 126;
      baseWireHandle = 8257536;
      SC_WRITE_METHOD = 1;
      SC_BLOCK_DATA = 8;
      SC_SERIALIZABLE = 2;
      SC_EXTERNALIZABLE = 4;
      SC_ENUM = 16;
    final class var
      fSUBSTITUTION_PERMISSION: JISerializablePermission; external name 'SUBSTITUTION_PERMISSION';
      fSUBCLASS_IMPLEMENTATION_PERMISSION: JISerializablePermission; external name 'SUBCLASS_IMPLEMENTATION_PERMISSION';
    const
      PROTOCOL_VERSION_1 = 1;
      PROTOCOL_VERSION_2 = 2;
  end;

  JISerialCallbackContext = class sealed external 'java.io' name 'SerialCallbackContext' (JLObject)
  public
    constructor create(para1: JLObject; para2: JIObjectStreamClass); overload;
    function getObj(): JLObject; overload; virtual;  // throws java.io.NotActiveException
    function getDesc(): JIObjectStreamClass; overload; virtual;
    procedure setUsed(); overload; virtual;
  end;

  JIStreamTokenizer = class external 'java.io' name 'StreamTokenizer' (JLObject)
  public
    var
      fttype: jint; external name 'ttype';
  public
    const
      TT_EOF = -1;
      TT_EOL = 10;
      TT_NUMBER = -2;
      TT_WORD = -3;
  public
    var
      fsval: JLString; external name 'sval';
      fnval: jdouble; external name 'nval';
  public
    constructor create(para1: JIInputStream); overload;
    constructor create(para1: JIReader); overload;
    procedure resetSyntax(); overload; virtual;
    procedure wordChars(para1: jint; para2: jint); overload; virtual;
    procedure whitespaceChars(para1: jint; para2: jint); overload; virtual;
    procedure ordinaryChars(para1: jint; para2: jint); overload; virtual;
    procedure ordinaryChar(para1: jint); overload; virtual;
    procedure commentChar(para1: jint); overload; virtual;
    procedure quoteChar(para1: jint); overload; virtual;
    procedure parseNumbers(); overload; virtual;
    procedure eolIsSignificant(para1: jboolean); overload; virtual;
    procedure slashStarComments(para1: jboolean); overload; virtual;
    procedure slashSlashComments(para1: jboolean); overload; virtual;
    procedure lowerCaseMode(para1: jboolean); overload; virtual;
    function nextToken(): jint; overload; virtual;  // throws java.io.IOException
    procedure pushBack(); overload; virtual;
    function lineno(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JLApplicationShutdownHooks = class external 'java.lang' name 'ApplicationShutdownHooks' (JLObject)
  end;

  JLAssertionStatusDirectives = class external 'java.lang' name 'AssertionStatusDirectives' (JLObject)
  end;

  JLCharacterData00 = class external 'java.lang' name 'CharacterData00' (JLObject)
  end;

  JLCharacterData01 = class external 'java.lang' name 'CharacterData01' (JLObject)
  end;

  JLCharacterData02 = class external 'java.lang' name 'CharacterData02' (JLObject)
  end;

  JLCharacterData0E = class external 'java.lang' name 'CharacterData0E' (JLObject)
  end;

  JLCharacterDataLatin1 = class external 'java.lang' name 'CharacterDataLatin1' (JLObject)
  end;

  JLCharacterDataPrivateUse = class external 'java.lang' name 'CharacterDataPrivateUse' (JLObject)
  end;

  JLCharacterDataUndefined = class external 'java.lang' name 'CharacterDataUndefined' (JLObject)
  end;

  JLClassLoader = class abstract external 'java.lang' name 'ClassLoader' (JLObject)
  public
    type
      InnerNativeLibrary = class;
      Arr1InnerNativeLibrary = array of InnerNativeLibrary;
      Arr2InnerNativeLibrary = array of Arr1InnerNativeLibrary;
      Arr3InnerNativeLibrary = array of Arr2InnerNativeLibrary;
      InnerNativeLibrary = class external 'java.lang' name 'NativeLibrary' 
      end;

  strict protected
    constructor create(para1: JLClassLoader); overload;
    constructor create(); overload;
  public
    function loadClass(para1: JLString): JLClass; overload; virtual;  // throws java.lang.ClassNotFoundException
  strict protected
    function loadClass(para1: JLString; para2: jboolean): JLClass; overload; virtual;  // throws java.lang.ClassNotFoundException
    function findClass(para1: JLString): JLClass; overload; virtual;  // throws java.lang.ClassNotFoundException
    function defineClass(para1: Arr1jbyte; para2: jint; para3: jint): JLClass; overload; virtual; final;  // throws java.lang.ClassFormatError
    function defineClass(var para1: array of jbyte; para2: jint; para3: jint): JLClass; overload; virtual; final;  // throws java.lang.ClassFormatError
    function defineClass(para1: JLString; para2: Arr1jbyte; para3: jint; para4: jint): JLClass; overload; virtual; final;  // throws java.lang.ClassFormatError
    function defineClass(para1: JLString; var para2: array of jbyte; para3: jint; para4: jint): JLClass; overload; virtual; final;  // throws java.lang.ClassFormatError
    function defineClass(para1: JLString; para2: Arr1jbyte; para3: jint; para4: jint; para5: JSProtectionDomain): JLClass; overload; virtual; final;  // throws java.lang.ClassFormatError
    function defineClass(para1: JLString; var para2: array of jbyte; para3: jint; para4: jint; para5: JSProtectionDomain): JLClass; overload; virtual; final;  // throws java.lang.ClassFormatError
    function defineClass(para1: JLString; para2: JNByteBuffer; para3: JSProtectionDomain): JLClass; overload; virtual; final;  // throws java.lang.ClassFormatError
    procedure resolveClass(para1: JLClass); overload; virtual; final;
    function findSystemClass(para1: JLString): JLClass; overload; virtual; final;  // throws java.lang.ClassNotFoundException
    function findLoadedClass(para1: JLString): JLClass; overload; virtual; final;
    procedure setSigners(para1: JLClass; para2: Arr1JLObject); overload; virtual; final;
    procedure setSigners(para1: JLClass; var para2: array of JLObject); overload; virtual; final;
  public
    function getResource(para1: JLString): JNURL; overload; virtual;
    function getResources(para1: JLString): JUEnumeration; overload; virtual;  // throws java.io.IOException
  strict protected
    function findResource(para1: JLString): JNURL; overload; virtual;
    function findResources(para1: JLString): JUEnumeration; overload; virtual;  // throws java.io.IOException
  public
    class function getSystemResource(para1: JLString): JNURL; static; overload;
    class function getSystemResources(para1: JLString): JUEnumeration; static; overload;  // throws java.io.IOException
    function getResourceAsStream(para1: JLString): JIInputStream; overload; virtual;
    class function getSystemResourceAsStream(para1: JLString): JIInputStream; static; overload;
    function getParent(): JLClassLoader; overload; virtual; final;
    class function getSystemClassLoader(): JLClassLoader; static; overload;
  strict protected
    function definePackage(para1: JLString; para2: JLString; para3: JLString; para4: JLString; para5: JLString; para6: JLString; para7: JLString; para8: JNURL): JLPackage; overload; virtual;  // throws java.lang.IllegalArgumentException
    function getPackage(para1: JLString): JLPackage; overload; virtual;
    function getPackages(): Arr1JLPackage; overload; virtual;
    function findLibrary(para1: JLString): JLString; overload; virtual;
  public
    procedure setDefaultAssertionStatus(para1: jboolean); overload; virtual;
    procedure setPackageAssertionStatus(para1: JLString; para2: jboolean); overload; virtual;
    procedure setClassAssertionStatus(para1: JLString; para2: jboolean); overload; virtual;
    procedure clearAssertionStatus(); overload; virtual;
  end;

  JLCompiler = class sealed external 'java.lang' name 'Compiler' (JLObject)
  public
    class function compileClass(para1: JLClass): jboolean; static; overload;
    class function compileClasses(para1: JLString): jboolean; static; overload;
    class function command(para1: JLObject): JLObject; static; overload;
    class procedure enable(); static; overload;
    class procedure disable(); static; overload;
  end;

  JLConditionalSpecialCasing = class sealed external 'java.lang' name 'ConditionalSpecialCasing' (JLObject)
  public
    type
      InnerEntry = class;
      Arr1InnerEntry = array of InnerEntry;
      Arr2InnerEntry = array of Arr1InnerEntry;
      Arr3InnerEntry = array of Arr2InnerEntry;
      InnerEntry = class external 'java.lang' name 'Entry' 
      end;

  end;

  JLProcess = class abstract external 'java.lang' name 'Process' (JLObject)
  public
    constructor create(); overload;
    function getOutputStream(): JIOutputStream; overload; virtual; abstract;
    function getInputStream(): JIInputStream; overload; virtual; abstract;
    function getErrorStream(): JIInputStream; overload; virtual; abstract;
    function waitFor(): jint; overload; virtual; abstract;  // throws java.lang.InterruptedException
    function exitValue(): jint; overload; virtual; abstract;
    procedure destroy(); overload; virtual; abstract;
  end;

  JLProcessBuilder = class sealed external 'java.lang' name 'ProcessBuilder' (JLObject)
  public
    constructor create(para1: JUList); overload;
    constructor create(para1: Arr1JLString); overload;
    constructor create(const para1: array of JLString); overload;
    function command(para1: JUList): JLProcessBuilder; overload; virtual;
    function command(para1: Arr1JLString): JLProcessBuilder; overload; virtual;
    function command(const para1: array of JLString): JLProcessBuilder; overload; virtual;
    function command(): JUList; overload; virtual;
    function environment(): JUMap; overload; virtual;
    function directory(): JIFile; overload; virtual;
    function directory(para1: JIFile): JLProcessBuilder; overload; virtual;
    function redirectErrorStream(): jboolean; overload; virtual;
    function redirectErrorStream(para1: jboolean): JLProcessBuilder; overload; virtual;
    function start(): JLProcess; overload; virtual;  // throws java.io.IOException
  end;

  JLProcessEnvironment = class sealed external 'java.lang' name 'ProcessEnvironment' (JLObject)
  public
    type
      InnerExternalData = class;
      Arr1InnerExternalData = array of InnerExternalData;
      Arr2InnerExternalData = array of Arr1InnerExternalData;
      Arr3InnerExternalData = array of Arr2InnerExternalData;
      InnerStringEntry = class;
      Arr1InnerStringEntry = array of InnerStringEntry;
      Arr2InnerStringEntry = array of Arr1InnerStringEntry;
      Arr3InnerStringEntry = array of Arr2InnerStringEntry;
      InnerStringEntrySet = class;
      Arr1InnerStringEntrySet = array of InnerStringEntrySet;
      Arr2InnerStringEntrySet = array of Arr1InnerStringEntrySet;
      Arr3InnerStringEntrySet = array of Arr2InnerStringEntrySet;
      InnerStringKeySet = class;
      Arr1InnerStringKeySet = array of InnerStringKeySet;
      Arr2InnerStringKeySet = array of Arr1InnerStringKeySet;
      Arr3InnerStringKeySet = array of Arr2InnerStringKeySet;
      InnerStringEnvironment = class;
      Arr1InnerStringEnvironment = array of InnerStringEnvironment;
      Arr2InnerStringEnvironment = array of Arr1InnerStringEnvironment;
      Arr3InnerStringEnvironment = array of Arr2InnerStringEnvironment;
      InnerStringValues = class;
      Arr1InnerStringValues = array of InnerStringValues;
      Arr2InnerStringValues = array of Arr1InnerStringValues;
      Arr3InnerStringValues = array of Arr2InnerStringValues;
      InnerValue = class;
      Arr1InnerValue = array of InnerValue;
      Arr2InnerValue = array of Arr1InnerValue;
      Arr3InnerValue = array of Arr2InnerValue;
      InnerVariable = class;
      Arr1InnerVariable = array of InnerVariable;
      Arr2InnerVariable = array of Arr1InnerVariable;
      Arr3InnerVariable = array of Arr2InnerVariable;
      InnerExternalData = class abstract external 'java.lang' name 'ExternalData' 
      end;

      InnerStringEntry = class external 'java.lang' name 'StringEntry' 
      end;

      InnerStringEntrySet = class external 'java.lang' name 'StringEntrySet' 
      end;

      InnerStringKeySet = class external 'java.lang' name 'StringKeySet' 
      end;

      InnerStringEnvironment = class external 'java.lang' name 'StringEnvironment' 
      end;

      InnerStringValues = class external 'java.lang' name 'StringValues' 
      end;

      InnerValue = class external 'java.lang' name 'Value' 
      end;

      InnerVariable = class external 'java.lang' name 'Variable' 
      end;

  end;

  JLProcessImpl = class sealed external 'java.lang' name 'ProcessImpl' (JLObject)
  end;

  JLRunnable = interface external 'java.lang' name 'Runnable' 
    procedure run(); overload;
  end;

  JLSecurityManager = class external 'java.lang' name 'SecurityManager' (JLObject)
  strict protected
    var
      finCheck: jboolean deprecated; external name 'inCheck';
  public
    function getInCheck(): jboolean; overload; virtual;
    constructor create(); overload;
  strict protected
    function getClassContext(): Arr1JLClass; overload; virtual;
    function currentClassLoader(): JLClassLoader; overload; virtual;
    function currentLoadedClass(): JLClass; overload; virtual;
    function classDepth(para1: JLString): jint; overload; virtual;
    function classLoaderDepth(): jint; overload; virtual;
    function inClass(para1: JLString): jboolean; overload; virtual;
    function inClassLoader(): jboolean; overload; virtual;
  public
    function getSecurityContext(): JLObject; overload; virtual;
    procedure checkPermission(para1: JSPermission); overload; virtual;
    procedure checkPermission(para1: JSPermission; para2: JLObject); overload; virtual;
    procedure checkCreateClassLoader(); overload; virtual;
    procedure checkAccess(para1: JLThread); overload; virtual;
    procedure checkAccess(para1: JLThreadGroup); overload; virtual;
    procedure checkExit(para1: jint); overload; virtual;
    procedure checkExec(para1: JLString); overload; virtual;
    procedure checkLink(para1: JLString); overload; virtual;
    procedure checkRead(para1: JIFileDescriptor); overload; virtual;
    procedure checkRead(para1: JLString); overload; virtual;
    procedure checkRead(para1: JLString; para2: JLObject); overload; virtual;
    procedure checkWrite(para1: JIFileDescriptor); overload; virtual;
    procedure checkWrite(para1: JLString); overload; virtual;
    procedure checkDelete(para1: JLString); overload; virtual;
    procedure checkConnect(para1: JLString; para2: jint); overload; virtual;
    procedure checkConnect(para1: JLString; para2: jint; para3: JLObject); overload; virtual;
    procedure checkListen(para1: jint); overload; virtual;
    procedure checkAccept(para1: JLString; para2: jint); overload; virtual;
    procedure checkMulticast(para1: JNInetAddress); overload; virtual;
    procedure checkMulticast(para1: JNInetAddress; para2: jbyte); overload; virtual;
    procedure checkPropertiesAccess(); overload; virtual;
    procedure checkPropertyAccess(para1: JLString); overload; virtual;
    function checkTopLevelWindow(para1: JLObject): jboolean; overload; virtual;
    procedure checkPrintJobAccess(); overload; virtual;
    procedure checkSystemClipboardAccess(); overload; virtual;
    procedure checkAwtEventQueueAccess(); overload; virtual;
    procedure checkPackageAccess(para1: JLString); overload; virtual;
    procedure checkPackageDefinition(para1: JLString); overload; virtual;
    procedure checkSetFactory(); overload; virtual;
    procedure checkMemberAccess(para1: JLClass; para2: jint); overload; virtual;
    procedure checkSecurityAccess(para1: JLString); overload; virtual;
    function getThreadGroup(): JLThreadGroup; overload; virtual;
  end;

  JLShutdown = class external 'java.lang' name 'Shutdown' (JLObject)
  public
    type
      InnerLock = class;
      Arr1InnerLock = array of InnerLock;
      Arr2InnerLock = array of Arr1InnerLock;
      Arr3InnerLock = array of Arr2InnerLock;
      InnerLock = class external 'java.lang' name 'Lock' 
      end;

  end;

  JLStrictMath = class sealed external 'java.lang' name 'StrictMath' (JLObject)
  public
    const
      E = jdouble(2.718281828459045);
      PI = jdouble(3.141592653589793);
  public
    class function sin(para1: jdouble): jdouble; static; overload;
    class function cos(para1: jdouble): jdouble; static; overload;
    class function tan(para1: jdouble): jdouble; static; overload;
    class function asin(para1: jdouble): jdouble; static; overload;
    class function acos(para1: jdouble): jdouble; static; overload;
    class function atan(para1: jdouble): jdouble; static; overload;
    class function toRadians(para1: jdouble): jdouble; static; overload;
    class function toDegrees(para1: jdouble): jdouble; static; overload;
    class function exp(para1: jdouble): jdouble; static; overload;
    class function log(para1: jdouble): jdouble; static; overload;
    class function log10(para1: jdouble): jdouble; static; overload;
    class function sqrt(para1: jdouble): jdouble; static; overload;
    class function cbrt(para1: jdouble): jdouble; static; overload;
    class function IEEEremainder(para1: jdouble; para2: jdouble): jdouble; static; overload;
    class function ceil(para1: jdouble): jdouble; static; overload;
    class function floor(para1: jdouble): jdouble; static; overload;
    class function rint(para1: jdouble): jdouble; static; overload;
    class function atan2(para1: jdouble; para2: jdouble): jdouble; static; overload;
    class function pow(para1: jdouble; para2: jdouble): jdouble; static; overload;
    class function round(para1: jfloat): jint; static; overload;
    class function round(para1: jdouble): jlong; static; overload;
    class function random(): jdouble; static; overload;
    class function abs(para1: jint): jint; static; overload;
    class function abs(para1: jlong): jlong; static; overload;
    class function abs(para1: jfloat): jfloat; static; overload;
    class function abs(para1: jdouble): jdouble; static; overload;
    class function max(para1: jint; para2: jint): jint; static; overload;
    class function max(para1: jlong; para2: jlong): jlong; static; overload;
    class function max(para1: jfloat; para2: jfloat): jfloat; static; overload;
    class function max(para1: jdouble; para2: jdouble): jdouble; static; overload;
    class function min(para1: jint; para2: jint): jint; static; overload;
    class function min(para1: jlong; para2: jlong): jlong; static; overload;
    class function min(para1: jfloat; para2: jfloat): jfloat; static; overload;
    class function min(para1: jdouble; para2: jdouble): jdouble; static; overload;
    class function ulp(para1: jdouble): jdouble; static; overload;
    class function ulp(para1: jfloat): jfloat; static; overload;
    class function signum(para1: jdouble): jdouble; static; overload;
    class function signum(para1: jfloat): jfloat; static; overload;
    class function sinh(para1: jdouble): jdouble; static; overload;
    class function cosh(para1: jdouble): jdouble; static; overload;
    class function tanh(para1: jdouble): jdouble; static; overload;
    class function hypot(para1: jdouble; para2: jdouble): jdouble; static; overload;
    class function expm1(para1: jdouble): jdouble; static; overload;
    class function log1p(para1: jdouble): jdouble; static; overload;
    class function copySign(para1: jdouble; para2: jdouble): jdouble; static; overload;
    class function copySign(para1: jfloat; para2: jfloat): jfloat; static; overload;
    class function getExponent(para1: jfloat): jint; static; overload;
    class function getExponent(para1: jdouble): jint; static; overload;
    class function nextAfter(para1: jdouble; para2: jdouble): jdouble; static; overload;
    class function nextAfter(para1: jfloat; para2: jdouble): jfloat; static; overload;
    class function nextUp(para1: jdouble): jdouble; static; overload;
    class function nextUp(para1: jfloat): jfloat; static; overload;
    class function scalb(para1: jdouble; para2: jint): jdouble; static; overload;
    class function scalb(para1: jfloat; para2: jint): jfloat; static; overload;
  end;

  JLStringCoding = class external 'java.lang' name 'StringCoding' (JLObject)
  public
    type
      InnerStringDecoder = class;
      Arr1InnerStringDecoder = array of InnerStringDecoder;
      Arr2InnerStringDecoder = array of Arr1InnerStringDecoder;
      Arr3InnerStringDecoder = array of Arr2InnerStringDecoder;
      InnerStringEncoder = class;
      Arr1InnerStringEncoder = array of InnerStringEncoder;
      Arr2InnerStringEncoder = array of Arr1InnerStringEncoder;
      Arr3InnerStringEncoder = array of Arr2InnerStringEncoder;
      InnerStringDecoder = class external 'java.lang' name 'StringDecoder' 
      end;

      InnerStringEncoder = class external 'java.lang' name 'StringEncoder' 
      end;

  end;

  JLStringValue = class external 'java.lang' name 'StringValue' (JLObject)
  end;

  JLTerminator = class external 'java.lang' name 'Terminator' (JLObject)
  end;

  JLVoid = class sealed external 'java.lang' name 'Void' (JLObject)
  public
    final class var
      fTYPE: JLClass; external name 'TYPE';
  end;

  JLAAnnotation = interface external 'java.lang.annotation' name 'Annotation' 
    function equals(para1: JLObject): jboolean; overload;
    function hashCode(): jint; overload;
    function toString(): JLString; overload;
    function annotationType(): JLClass; overload;
  end;

  JLIClassDefinition = class sealed external 'java.lang.instrument' name 'ClassDefinition' (JLObject)
  public
    constructor create(para1: JLClass; para2: Arr1jbyte); overload;
    constructor create(para1: JLClass; const para2: array of jbyte); overload;
    function getDefinitionClass(): JLClass; overload; virtual;
    function getDefinitionClassFile(): Arr1jbyte; overload; virtual;
  end;

  JLIClassFileTransformer = interface external 'java.lang.instrument' name 'ClassFileTransformer' 
    function transform(para1: JLClassLoader; para2: JLString; para3: JLClass; para4: JSProtectionDomain; para5: Arr1jbyte): Arr1jbyte; overload;  // throws java.lang.instrument.IllegalClassFormatException
    function transform(para1: JLClassLoader; para2: JLString; para3: JLClass; para4: JSProtectionDomain; var para5: array of jbyte): Arr1jbyte; overload;  // throws java.lang.instrument.IllegalClassFormatException
  end;

  JLIInstrumentation = interface external 'java.lang.instrument' name 'Instrumentation' 
    procedure addTransformer(para1: JLIClassFileTransformer; para2: jboolean); overload;
    procedure addTransformer(para1: JLIClassFileTransformer); overload;
    function removeTransformer(para1: JLIClassFileTransformer): jboolean; overload;
    function isRetransformClassesSupported(): jboolean; overload;
    procedure retransformClasses(para1: Arr1JLClass); overload;  // throws java.lang.instrument.UnmodifiableClassException
    procedure retransformClasses(const para1: array of JLClass); overload;  // throws java.lang.instrument.UnmodifiableClassException
    function isRedefineClassesSupported(): jboolean; overload;
    procedure redefineClasses(para1: Arr1JLIClassDefinition); overload;  // throws java.lang.ClassNotFoundException, java.lang.instrument.UnmodifiableClassException
    procedure redefineClasses(const para1: array of JLIClassDefinition); overload;  // throws java.lang.ClassNotFoundException, java.lang.instrument.UnmodifiableClassException
    function isModifiableClass(para1: JLClass): jboolean; overload;
    function getAllLoadedClasses(): Arr1JLClass; overload;
    function getInitiatedClasses(para1: JLClassLoader): Arr1JLClass; overload;
    function getObjectSize(para1: JLObject): jlong; overload;
    procedure appendToBootstrapClassLoaderSearch(para1: JUJJarFile); overload;
    procedure appendToSystemClassLoaderSearch(para1: JUJJarFile); overload;
    function isNativeMethodPrefixSupported(): jboolean; overload;
    procedure setNativeMethodPrefix(para1: JLIClassFileTransformer; para2: JLString); overload;
  end;

  JLMClassLoadingMXBean = interface external 'java.lang.management' name 'ClassLoadingMXBean' 
    function getTotalLoadedClassCount(): jlong; overload;
    function getLoadedClassCount(): jint; overload;
    function getUnloadedClassCount(): jlong; overload;
    function isVerbose(): jboolean; overload;
    procedure setVerbose(para1: jboolean); overload;
  end;

  JLMCompilationMXBean = interface external 'java.lang.management' name 'CompilationMXBean' 
    function getName(): JLString; overload;
    function isCompilationTimeMonitoringSupported(): jboolean; overload;
    function getTotalCompilationTime(): jlong; overload;
  end;

  JLMLockInfo = class external 'java.lang.management' name 'LockInfo' (JLObject)
  public
    constructor create(para1: JLString; para2: jint); overload;
    function getClassName(): JLString; overload; virtual;
    function getIdentityHashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JLMManagementFactory = class external 'java.lang.management' name 'ManagementFactory' (JLObject)
  public
    const
      CLASS_LOADING_MXBEAN_NAME = 'java.lang:type=ClassLoading';
      COMPILATION_MXBEAN_NAME = 'java.lang:type=Compilation';
      MEMORY_MXBEAN_NAME = 'java.lang:type=Memory';
      OPERATING_SYSTEM_MXBEAN_NAME = 'java.lang:type=OperatingSystem';
      RUNTIME_MXBEAN_NAME = 'java.lang:type=Runtime';
      THREAD_MXBEAN_NAME = 'java.lang:type=Threading';
      GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE = 'java.lang:type=GarbageCollector';
      MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE = 'java.lang:type=MemoryManager';
      MEMORY_POOL_MXBEAN_DOMAIN_TYPE = 'java.lang:type=MemoryPool';
  public
    class function getClassLoadingMXBean(): JLMClassLoadingMXBean; static; overload;
    class function getMemoryMXBean(): JLMMemoryMXBean; static; overload;
    class function getThreadMXBean(): JLMThreadMXBean; static; overload;
    class function getRuntimeMXBean(): JLMRuntimeMXBean; static; overload;
    class function getCompilationMXBean(): JLMCompilationMXBean; static; overload;
    class function getOperatingSystemMXBean(): JLMOperatingSystemMXBean; static; overload;
    class function getMemoryPoolMXBeans(): JUList; static; overload;
    class function getMemoryManagerMXBeans(): JUList; static; overload;
    class function getGarbageCollectorMXBeans(): JUList; static; overload;
    class function getPlatformMBeanServer(): JMMBeanServer; static; overload;
    class function newPlatformMXBeanProxy(para1: JMMBeanServerConnection; para2: JLString; para3: JLClass): JLObject; static; overload;  // throws java.io.IOException
  end;

  JLMMemoryMXBean = interface external 'java.lang.management' name 'MemoryMXBean' 
    function getObjectPendingFinalizationCount(): jint; overload;
    function getHeapMemoryUsage(): JLMMemoryUsage; overload;
    function getNonHeapMemoryUsage(): JLMMemoryUsage; overload;
    function isVerbose(): jboolean; overload;
    procedure setVerbose(para1: jboolean); overload;
    procedure gc(); overload;
  end;

  JLMMemoryManagerMXBean = interface external 'java.lang.management' name 'MemoryManagerMXBean' 
    function getName(): JLString; overload;
    function isValid(): jboolean; overload;
    function getMemoryPoolNames(): Arr1JLString; overload;
  end;

  JLMMemoryNotificationInfo = class external 'java.lang.management' name 'MemoryNotificationInfo' (JLObject)
  public
    const
      MEMORY_THRESHOLD_EXCEEDED = 'java.management.memory.threshold.exceeded';
      MEMORY_COLLECTION_THRESHOLD_EXCEEDED = 'java.management.memory.collection.threshold.exceeded';
  public
    constructor create(para1: JLString; para2: JLMMemoryUsage; para3: jlong); overload;
    function getPoolName(): JLString; overload; virtual;
    function getUsage(): JLMMemoryUsage; overload; virtual;
    function getCount(): jlong; overload; virtual;
    class function from(para1: JMOCompositeData): JLMMemoryNotificationInfo; static; overload;
  end;

  JLMMemoryPoolMXBean = interface external 'java.lang.management' name 'MemoryPoolMXBean' 
    function getName(): JLString; overload;
    function getType(): JLMMemoryType; overload;
    function getUsage(): JLMMemoryUsage; overload;
    function getPeakUsage(): JLMMemoryUsage; overload;
    procedure resetPeakUsage(); overload;
    function isValid(): jboolean; overload;
    function getMemoryManagerNames(): Arr1JLString; overload;
    function getUsageThreshold(): jlong; overload;
    procedure setUsageThreshold(para1: jlong); overload;
    function isUsageThresholdExceeded(): jboolean; overload;
    function getUsageThresholdCount(): jlong; overload;
    function isUsageThresholdSupported(): jboolean; overload;
    function getCollectionUsageThreshold(): jlong; overload;
    procedure setCollectionUsageThreshold(para1: jlong); overload;
    function isCollectionUsageThresholdExceeded(): jboolean; overload;
    function getCollectionUsageThresholdCount(): jlong; overload;
    function getCollectionUsage(): JLMMemoryUsage; overload;
    function isCollectionUsageThresholdSupported(): jboolean; overload;
  end;

  JLMMemoryUsage = class external 'java.lang.management' name 'MemoryUsage' (JLObject)
  public
    constructor create(para1: jlong; para2: jlong; para3: jlong; para4: jlong); overload;
    function getInit(): jlong; overload; virtual;
    function getUsed(): jlong; overload; virtual;
    function getCommitted(): jlong; overload; virtual;
    function getMax(): jlong; overload; virtual;
    function toString(): JLString; overload; virtual;
    class function from(para1: JMOCompositeData): JLMMemoryUsage; static; overload;
  end;

  JLMOperatingSystemMXBean = interface external 'java.lang.management' name 'OperatingSystemMXBean' 
    function getName(): JLString; overload;
    function getArch(): JLString; overload;
    function getVersion(): JLString; overload;
    function getAvailableProcessors(): jint; overload;
    function getSystemLoadAverage(): jdouble; overload;
  end;

  JLMRuntimeMXBean = interface external 'java.lang.management' name 'RuntimeMXBean' 
    function getName(): JLString; overload;
    function getVmName(): JLString; overload;
    function getVmVendor(): JLString; overload;
    function getVmVersion(): JLString; overload;
    function getSpecName(): JLString; overload;
    function getSpecVendor(): JLString; overload;
    function getSpecVersion(): JLString; overload;
    function getManagementSpecVersion(): JLString; overload;
    function getClassPath(): JLString; overload;
    function getLibraryPath(): JLString; overload;
    function isBootClassPathSupported(): jboolean; overload;
    function getBootClassPath(): JLString; overload;
    function getInputArguments(): JUList; overload;
    function getUptime(): jlong; overload;
    function getStartTime(): jlong; overload;
    function getSystemProperties(): JUMap; overload;
  end;

  JLMThreadMXBean = interface external 'java.lang.management' name 'ThreadMXBean' 
    function getThreadCount(): jint; overload;
    function getPeakThreadCount(): jint; overload;
    function getTotalStartedThreadCount(): jlong; overload;
    function getDaemonThreadCount(): jint; overload;
    function getAllThreadIds(): Arr1jlong; overload;
    function getThreadInfo(para1: jlong): JLMThreadInfo; overload;
    function getThreadInfo(para1: Arr1jlong): Arr1JLMThreadInfo; overload;
    function getThreadInfo(var para1: array of jlong): Arr1JLMThreadInfo; overload;
    function getThreadInfo(para1: jlong; para2: jint): JLMThreadInfo; overload;
    function getThreadInfo(para1: Arr1jlong; para2: jint): Arr1JLMThreadInfo; overload;
    function getThreadInfo(var para1: array of jlong; para2: jint): Arr1JLMThreadInfo; overload;
    function isThreadContentionMonitoringSupported(): jboolean; overload;
    function isThreadContentionMonitoringEnabled(): jboolean; overload;
    procedure setThreadContentionMonitoringEnabled(para1: jboolean); overload;
    function getCurrentThreadCpuTime(): jlong; overload;
    function getCurrentThreadUserTime(): jlong; overload;
    function getThreadCpuTime(para1: jlong): jlong; overload;
    function getThreadUserTime(para1: jlong): jlong; overload;
    function isThreadCpuTimeSupported(): jboolean; overload;
    function isCurrentThreadCpuTimeSupported(): jboolean; overload;
    function isThreadCpuTimeEnabled(): jboolean; overload;
    procedure setThreadCpuTimeEnabled(para1: jboolean); overload;
    function findMonitorDeadlockedThreads(): Arr1jlong; overload;
    procedure resetPeakThreadCount(); overload;
    function findDeadlockedThreads(): Arr1jlong; overload;
    function isObjectMonitorUsageSupported(): jboolean; overload;
    function isSynchronizerUsageSupported(): jboolean; overload;
    function getThreadInfo(para1: Arr1jlong; para2: jboolean; para3: jboolean): Arr1JLMThreadInfo; overload;
    function getThreadInfo(var para1: array of jlong; para2: jboolean; para3: jboolean): Arr1JLMThreadInfo; overload;
    function dumpAllThreads(para1: jboolean; para2: jboolean): Arr1JLMThreadInfo; overload;
  end;

  JLRReference = class abstract external 'java.lang.ref' name 'Reference' (JLObject)
  public
    type
      InnerLock = class;
      Arr1InnerLock = array of InnerLock;
      Arr2InnerLock = array of Arr1InnerLock;
      Arr3InnerLock = array of Arr2InnerLock;
      InnerReferenceHandler = class;
      Arr1InnerReferenceHandler = array of InnerReferenceHandler;
      Arr2InnerReferenceHandler = array of Arr1InnerReferenceHandler;
      Arr3InnerReferenceHandler = array of Arr2InnerReferenceHandler;
      InnerLock = class external 'java.lang.ref' name 'Lock' 
      end;

      InnerReferenceHandler = class external 'java.lang.ref' name 'ReferenceHandler' 
      end;

  public
    function get(): JLObject; overload; virtual;
    procedure clear(); overload; virtual;
    function isEnqueued(): jboolean; overload; virtual;
    function enqueue(): jboolean; overload; virtual;
  end;

  JLRReferenceQueue = class external 'java.lang.ref' name 'ReferenceQueue' (JLObject)
  public
    type
      InnerLock = class;
      Arr1InnerLock = array of InnerLock;
      Arr2InnerLock = array of Arr1InnerLock;
      Arr3InnerLock = array of Arr2InnerLock;
      InnerNull = class;
      Arr1InnerNull = array of InnerNull;
      Arr2InnerNull = array of Arr1InnerNull;
      Arr3InnerNull = array of Arr2InnerNull;
      InnerLock = class external 'java.lang.ref' name 'Lock' 
      end;

      InnerNull = class external 'java.lang.ref' name 'Null' 
      end;

  public
    constructor create(); overload;
    function poll(): JLRReference; overload; virtual;
    function remove(para1: jlong): JLRReference; overload; virtual;  // throws java.lang.IllegalArgumentException, java.lang.InterruptedException
    function remove(): JLRReference; overload; virtual;  // throws java.lang.InterruptedException
  end;

  JLRInvocationHandler = interface external 'java.lang.reflect' name 'InvocationHandler' 
    function invoke(para1: JLObject; para2: JLRMethod; para3: Arr1JLObject): JLObject; overload;  // throws java.lang.Throwable
    function invoke(para1: JLObject; para2: JLRMethod; var para3: array of JLObject): JLObject; overload;  // throws java.lang.Throwable
  end;

  JLRModifier = class external 'java.lang.reflect' name 'Modifier' (JLObject)
  public
    const
      &PUBLIC = 1;
      &PRIVATE = 2;
      &PROTECTED = 4;
      STATIC = 8;
      &FINAL = 16;
      SYNCHRONIZED = 32;
      VOLATILE = 64;
      TRANSIENT = 128;
      NATIVE = 256;
      &INTERFACE = 512;
      &ABSTRACT = 1024;
      &STRICT = 2048;
  public
    constructor create(); overload;
    class function isPublic(para1: jint): jboolean; static; overload;
    class function isPrivate(para1: jint): jboolean; static; overload;
    class function isProtected(para1: jint): jboolean; static; overload;
    class function isStatic(para1: jint): jboolean; static; overload;
    class function isFinal(para1: jint): jboolean; static; overload;
    class function isSynchronized(para1: jint): jboolean; static; overload;
    class function isVolatile(para1: jint): jboolean; static; overload;
    class function isTransient(para1: jint): jboolean; static; overload;
    class function isNative(para1: jint): jboolean; static; overload;
    class function isInterface(para1: jint): jboolean; static; overload;
    class function isAbstract(para1: jint): jboolean; static; overload;
    class function isStrict(para1: jint): jboolean; static; overload;
    class function toString(para1: jint): JLString; static; overload;
  end;

  JMBitSieve = class external 'java.math' name 'BitSieve' (JLObject)
  end;

  JMMutableBigInteger = class external 'java.math' name 'MutableBigInteger' (JLObject)
  public
    function toString(): JLString; overload; virtual;
  end;

  JNCacheRequest = class abstract external 'java.net' name 'CacheRequest' (JLObject)
  public
    constructor create(); overload;
    function getBody(): JIOutputStream; overload; virtual; abstract;  // throws java.io.IOException
    procedure abort(); overload; virtual; abstract;
  end;

  JNCacheResponse = class abstract external 'java.net' name 'CacheResponse' (JLObject)
  public
    constructor create(); overload;
    function getHeaders(): JUMap; overload; virtual; abstract;  // throws java.io.IOException
    function getBody(): JIInputStream; overload; virtual; abstract;  // throws java.io.IOException
  end;

  JNContentHandler = class abstract external 'java.net' name 'ContentHandler' (JLObject)
  public
    constructor create(); overload;
    function getContent(para1: JNURLConnection): JLObject; overload; virtual; abstract;  // throws java.io.IOException
    function getContent(para1: JNURLConnection; para2: Arr1JLClass): JLObject; overload; virtual;  // throws java.io.IOException
    function getContent(para1: JNURLConnection; var para2: array of JLClass): JLObject; overload; virtual;  // throws java.io.IOException
  end;

  JNContentHandlerFactory = interface external 'java.net' name 'ContentHandlerFactory' 
    function createContentHandler(para1: JLString): JNContentHandler; overload;
  end;

  JNCookieHandler = class abstract external 'java.net' name 'CookieHandler' (JLObject)
  public
    constructor create(); overload;
    class function getDefault(): JNCookieHandler; static; overload;
    class procedure setDefault(para1: JNCookieHandler); static; overload;
    function get(para1: JNURI; para2: JUMap): JUMap; overload; virtual; abstract;  // throws java.io.IOException
    procedure put(para1: JNURI; para2: JUMap); overload; virtual; abstract;  // throws java.io.IOException
  end;

  JNCookiePolicy = interface external 'java.net' name 'CookiePolicy' 
    final class var
      fACCEPT_ALL: JNCookiePolicy; external name 'ACCEPT_ALL';
      fACCEPT_NONE: JNCookiePolicy; external name 'ACCEPT_NONE';
      fACCEPT_ORIGINAL_SERVER: JNCookiePolicy; external name 'ACCEPT_ORIGINAL_SERVER';
    function shouldAccept(para1: JNURI; para2: JNHttpCookie): jboolean; overload;
  end;

  JNCookieStore = interface external 'java.net' name 'CookieStore' 
    procedure add(para1: JNURI; para2: JNHttpCookie); overload;
    function get(para1: JNURI): JUList; overload;
    function getCookies(): JUList; overload;
    function getURIs(): JUList; overload;
    function remove(para1: JNURI; para2: JNHttpCookie): jboolean; overload;
    function removeAll(): jboolean; overload;
  end;

  JNDatagramPacket = class sealed external 'java.net' name 'DatagramPacket' (JLObject)
  public
    constructor create(para1: Arr1jbyte; para2: jint; para3: jint); overload;
    constructor create(const para1: array of jbyte; para2: jint; para3: jint); overload;
    constructor create(para1: Arr1jbyte; para2: jint); overload;
    constructor create(const para1: array of jbyte; para2: jint); overload;
    constructor create(para1: Arr1jbyte; para2: jint; para3: jint; para4: JNInetAddress; para5: jint); overload;
    constructor create(const para1: array of jbyte; para2: jint; para3: jint; para4: JNInetAddress; para5: jint); overload;
    constructor create(para1: Arr1jbyte; para2: jint; para3: jint; para4: JNSocketAddress); overload;  // throws java.net.SocketException
    constructor create(const para1: array of jbyte; para2: jint; para3: jint; para4: JNSocketAddress); overload;  // throws java.net.SocketException
    constructor create(para1: Arr1jbyte; para2: jint; para3: JNInetAddress; para4: jint); overload;
    constructor create(const para1: array of jbyte; para2: jint; para3: JNInetAddress; para4: jint); overload;
    constructor create(para1: Arr1jbyte; para2: jint; para3: JNSocketAddress); overload;  // throws java.net.SocketException
    constructor create(const para1: array of jbyte; para2: jint; para3: JNSocketAddress); overload;  // throws java.net.SocketException
    function getAddress(): JNInetAddress; overload; virtual;
    function getPort(): jint; overload; virtual;
    function getData(): Arr1jbyte; overload; virtual;
    function getOffset(): jint; overload; virtual;
    function getLength(): jint; overload; virtual;
    procedure setData(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;
    procedure setData(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;
    procedure setAddress(para1: JNInetAddress); overload; virtual;
    procedure setPort(para1: jint); overload; virtual;
    procedure setSocketAddress(para1: JNSocketAddress); overload; virtual;
    function getSocketAddress(): JNSocketAddress; overload; virtual;
    procedure setData(para1: Arr1jbyte); overload; virtual;
    procedure setData(var para1: array of jbyte); overload; virtual;
    procedure setLength(para1: jint); overload; virtual;
  end;

  JNDatagramSocket = class external 'java.net' name 'DatagramSocket' (JLObject)
  public
    constructor create(); overload;  // throws java.net.SocketException
  strict protected
    constructor create(para1: JNDatagramSocketImpl); overload;
  public
    constructor create(para1: JNSocketAddress); overload;  // throws java.net.SocketException
    constructor create(para1: jint); overload;  // throws java.net.SocketException
    constructor create(para1: jint; para2: JNInetAddress); overload;  // throws java.net.SocketException
    procedure bind(para1: JNSocketAddress); overload; virtual;  // throws java.net.SocketException
    procedure connect(para1: JNInetAddress; para2: jint); overload; virtual;
    procedure connect(para1: JNSocketAddress); overload; virtual;  // throws java.net.SocketException
    procedure disconnect(); overload; virtual;
    function isBound(): jboolean; overload; virtual;
    function isConnected(): jboolean; overload; virtual;
    function getInetAddress(): JNInetAddress; overload; virtual;
    function getPort(): jint; overload; virtual;
    function getRemoteSocketAddress(): JNSocketAddress; overload; virtual;
    function getLocalSocketAddress(): JNSocketAddress; overload; virtual;
    procedure send(para1: JNDatagramPacket); overload; virtual;  // throws java.io.IOException
    procedure receive(para1: JNDatagramPacket); overload; virtual;  // throws java.io.IOException
    function getLocalAddress(): JNInetAddress; overload; virtual;
    function getLocalPort(): jint; overload; virtual;
    procedure setSoTimeout(para1: jint); overload; virtual;  // throws java.net.SocketException
    function getSoTimeout(): jint; overload; virtual;  // throws java.net.SocketException
    procedure setSendBufferSize(para1: jint); overload; virtual;  // throws java.net.SocketException
    function getSendBufferSize(): jint; overload; virtual;  // throws java.net.SocketException
    procedure setReceiveBufferSize(para1: jint); overload; virtual;  // throws java.net.SocketException
    function getReceiveBufferSize(): jint; overload; virtual;  // throws java.net.SocketException
    procedure setReuseAddress(para1: jboolean); overload; virtual;  // throws java.net.SocketException
    function getReuseAddress(): jboolean; overload; virtual;  // throws java.net.SocketException
    procedure setBroadcast(para1: jboolean); overload; virtual;  // throws java.net.SocketException
    function getBroadcast(): jboolean; overload; virtual;  // throws java.net.SocketException
    procedure setTrafficClass(para1: jint); overload; virtual;  // throws java.net.SocketException
    function getTrafficClass(): jint; overload; virtual;  // throws java.net.SocketException
    procedure close(); overload; virtual;
    function isClosed(): jboolean; overload; virtual;
    function getChannel(): JNCDatagramChannel; overload; virtual;
    class procedure setDatagramSocketImplFactory(para1: JNDatagramSocketImplFactory); static; overload;  // throws java.io.IOException
  end;

  JNDatagramSocketImplFactory = interface external 'java.net' name 'DatagramSocketImplFactory' 
    function createDatagramSocketImpl(): JNDatagramSocketImpl; overload;
  end;

  JNFileNameMap = interface external 'java.net' name 'FileNameMap' 
    function getContentTypeFor(para1: JLString): JLString; overload;
  end;

  JNIDN = class sealed external 'java.net' name 'IDN' (JLObject)
  public
    const
      ALLOW_UNASSIGNED = 1;
      USE_STD3_ASCII_RULES = 2;
  public
    class function toASCII(para1: JLString; para2: jint): JLString; static; overload;
    class function toASCII(para1: JLString): JLString; static; overload;
    class function toUnicode(para1: JLString; para2: jint): JLString; static; overload;
    class function toUnicode(para1: JLString): JLString; static; overload;
  end;

  JNInetAddressContainer = class external 'java.net' name 'InetAddressContainer' (JLObject)
  end;

  JNInetAddressImpl = interface external 'java.net' name 'InetAddressImpl' 
    function getLocalHostName(): JLString; overload;  // throws java.net.UnknownHostException
    function lookupAllHostAddr(para1: JLString): Arr1JNInetAddress; overload;  // throws java.net.UnknownHostException
    function getHostByAddr(para1: Arr1jbyte): JLString; overload;  // throws java.net.UnknownHostException
    function getHostByAddr(var para1: array of jbyte): JLString; overload;  // throws java.net.UnknownHostException
    function anyLocalAddress(): JNInetAddress; overload;
    function loopbackAddress(): JNInetAddress; overload;
    function isReachable(para1: JNInetAddress; para2: jint; para3: JNNetworkInterface; para4: jint): jboolean; overload;  // throws java.io.IOException
  end;

  JNInetAddressImplFactory = class external 'java.net' name 'InetAddressImplFactory' (JLObject)
  end;

  JNInterfaceAddress = class external 'java.net' name 'InterfaceAddress' (JLObject)
  public
    function getAddress(): JNInetAddress; overload; virtual;
    function getBroadcast(): JNInetAddress; overload; virtual;
    function getNetworkPrefixLength(): jshort; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JNNetworkInterface = class sealed external 'java.net' name 'NetworkInterface' (JLObject)
  public
    function getName(): JLString; overload; virtual;
    function getInetAddresses(): JUEnumeration; overload; virtual;
    function getInterfaceAddresses(): JUList; overload; virtual;
    function getSubInterfaces(): JUEnumeration; overload; virtual;
    function getParent(): JNNetworkInterface; overload; virtual;
    function getDisplayName(): JLString; overload; virtual;
    class function getByName(para1: JLString): JNNetworkInterface; static; overload;  // throws java.net.SocketException
    class function getByInetAddress(para1: JNInetAddress): JNNetworkInterface; static; overload;  // throws java.net.SocketException
    class function getNetworkInterfaces(): JUEnumeration; static; overload;  // throws java.net.SocketException
    function isUp(): jboolean; overload; virtual;  // throws java.net.SocketException
    function isLoopback(): jboolean; overload; virtual;  // throws java.net.SocketException
    function isPointToPoint(): jboolean; overload; virtual;  // throws java.net.SocketException
    function supportsMulticast(): jboolean; overload; virtual;  // throws java.net.SocketException
    function getHardwareAddress(): Arr1jbyte; overload; virtual;  // throws java.net.SocketException
    function getMTU(): jint; overload; virtual;  // throws java.net.SocketException
    function isVirtual(): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JNParts = class external 'java.net' name 'Parts' (JLObject)
  end;

  JNPasswordAuthentication = class sealed external 'java.net' name 'PasswordAuthentication' (JLObject)
  public
    constructor create(para1: JLString; para2: Arr1jchar); overload;
    constructor create(para1: JLString; const para2: array of jchar); overload;
    function getUserName(): JLString; overload; virtual;
    function getPassword(): Arr1jchar; overload; virtual;
  end;

  JNProxySelector = class abstract external 'java.net' name 'ProxySelector' (JLObject)
  public
    constructor create(); overload;
    class function getDefault(): JNProxySelector; static; overload;
    class procedure setDefault(para1: JNProxySelector); static; overload;
    function select(para1: JNURI): JUList; overload; virtual; abstract;
    procedure connectFailed(para1: JNURI; para2: JNSocketAddress; para3: JIIOException); overload; virtual; abstract;
  end;

  JNResponseCache = class abstract external 'java.net' name 'ResponseCache' (JLObject)
  public
    constructor create(); overload;
    class function getDefault(): JNResponseCache; static; overload;
    class procedure setDefault(para1: JNResponseCache); static; overload;
    function get(para1: JNURI; para2: JLString; para3: JUMap): JNCacheResponse; overload; virtual; abstract;  // throws java.io.IOException
    function put(para1: JNURI; para2: JNURLConnection): JNCacheRequest; overload; virtual; abstract;  // throws java.io.IOException
  end;

  JNServerSocket = class external 'java.net' name 'ServerSocket' (JLObject)
  public
    constructor create(); overload;  // throws java.io.IOException
    constructor create(para1: jint); overload;  // throws java.io.IOException
    constructor create(para1: jint; para2: jint); overload;  // throws java.io.IOException
    constructor create(para1: jint; para2: jint; para3: JNInetAddress); overload;  // throws java.io.IOException
    procedure bind(para1: JNSocketAddress); overload; virtual;  // throws java.io.IOException
    procedure bind(para1: JNSocketAddress; para2: jint); overload; virtual;  // throws java.io.IOException
    function getInetAddress(): JNInetAddress; overload; virtual;
    function getLocalPort(): jint; overload; virtual;
    function getLocalSocketAddress(): JNSocketAddress; overload; virtual;
    function accept(): JNSocket; overload; virtual;  // throws java.io.IOException
  strict protected
    procedure implAccept(para1: JNSocket); overload; virtual; final;  // throws java.io.IOException
  public
    procedure close(); overload; virtual;  // throws java.io.IOException
    function getChannel(): JNCServerSocketChannel; overload; virtual;
    function isBound(): jboolean; overload; virtual;
    function isClosed(): jboolean; overload; virtual;
    procedure setSoTimeout(para1: jint); overload; virtual;  // throws java.net.SocketException
    function getSoTimeout(): jint; overload; virtual;  // throws java.io.IOException
    procedure setReuseAddress(para1: jboolean); overload; virtual;  // throws java.net.SocketException
    function getReuseAddress(): jboolean; overload; virtual;  // throws java.net.SocketException
    function toString(): JLString; overload; virtual;
    class procedure setSocketFactory(para1: JNSocketImplFactory); static; overload;  // throws java.io.IOException
    procedure setReceiveBufferSize(para1: jint); overload; virtual;  // throws java.net.SocketException
    function getReceiveBufferSize(): jint; overload; virtual;  // throws java.net.SocketException
    procedure setPerformancePreferences(para1: jint; para2: jint; para3: jint); overload; virtual;
  end;

  JNSocket = class external 'java.net' name 'Socket' (JLObject)
  public
    constructor create(); overload;
    constructor create(para1: JNProxy); overload;
  strict protected
    constructor create(para1: JNSocketImpl); overload;  // throws java.net.SocketException
  public
    constructor create(para1: JLString; para2: jint); overload;  // throws java.net.UnknownHostException, java.io.IOException
    constructor create(para1: JNInetAddress; para2: jint); overload;  // throws java.io.IOException
    constructor create(para1: JLString; para2: jint; para3: JNInetAddress; para4: jint); overload;  // throws java.io.IOException
    constructor create(para1: JNInetAddress; para2: jint; para3: JNInetAddress; para4: jint); overload;  // throws java.io.IOException
    constructor create(para1: JLString; para2: jint; para3: jboolean); overload;  // throws java.io.IOException
    constructor create(para1: JNInetAddress; para2: jint; para3: jboolean); overload;  // throws java.io.IOException
    procedure connect(para1: JNSocketAddress); overload; virtual;  // throws java.io.IOException
    procedure connect(para1: JNSocketAddress; para2: jint); overload; virtual;  // throws java.io.IOException
    procedure bind(para1: JNSocketAddress); overload; virtual;  // throws java.io.IOException
    function getInetAddress(): JNInetAddress; overload; virtual;
    function getLocalAddress(): JNInetAddress; overload; virtual;
    function getPort(): jint; overload; virtual;
    function getLocalPort(): jint; overload; virtual;
    function getRemoteSocketAddress(): JNSocketAddress; overload; virtual;
    function getLocalSocketAddress(): JNSocketAddress; overload; virtual;
    function getChannel(): JNCSocketChannel; overload; virtual;
    function getInputStream(): JIInputStream; overload; virtual;  // throws java.io.IOException
    function getOutputStream(): JIOutputStream; overload; virtual;  // throws java.io.IOException
    procedure setTcpNoDelay(para1: jboolean); overload; virtual;  // throws java.net.SocketException
    function getTcpNoDelay(): jboolean; overload; virtual;  // throws java.net.SocketException
    procedure setSoLinger(para1: jboolean; para2: jint); overload; virtual;  // throws java.net.SocketException
    function getSoLinger(): jint; overload; virtual;  // throws java.net.SocketException
    procedure sendUrgentData(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure setOOBInline(para1: jboolean); overload; virtual;  // throws java.net.SocketException
    function getOOBInline(): jboolean; overload; virtual;  // throws java.net.SocketException
    procedure setSoTimeout(para1: jint); overload; virtual;  // throws java.net.SocketException
    function getSoTimeout(): jint; overload; virtual;  // throws java.net.SocketException
    procedure setSendBufferSize(para1: jint); overload; virtual;  // throws java.net.SocketException
    function getSendBufferSize(): jint; overload; virtual;  // throws java.net.SocketException
    procedure setReceiveBufferSize(para1: jint); overload; virtual;  // throws java.net.SocketException
    function getReceiveBufferSize(): jint; overload; virtual;  // throws java.net.SocketException
    procedure setKeepAlive(para1: jboolean); overload; virtual;  // throws java.net.SocketException
    function getKeepAlive(): jboolean; overload; virtual;  // throws java.net.SocketException
    procedure setTrafficClass(para1: jint); overload; virtual;  // throws java.net.SocketException
    function getTrafficClass(): jint; overload; virtual;  // throws java.net.SocketException
    procedure setReuseAddress(para1: jboolean); overload; virtual;  // throws java.net.SocketException
    function getReuseAddress(): jboolean; overload; virtual;  // throws java.net.SocketException
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure shutdownInput(); overload; virtual;  // throws java.io.IOException
    procedure shutdownOutput(); overload; virtual;  // throws java.io.IOException
    function toString(): JLString; overload; virtual;
    function isConnected(): jboolean; overload; virtual;
    function isBound(): jboolean; overload; virtual;
    function isClosed(): jboolean; overload; virtual;
    function isInputShutdown(): jboolean; overload; virtual;
    function isOutputShutdown(): jboolean; overload; virtual;
    class procedure setSocketImplFactory(para1: JNSocketImplFactory); static; overload;  // throws java.io.IOException
    procedure setPerformancePreferences(para1: jint; para2: jint; para3: jint); overload; virtual;
  end;

  JNSocketImplFactory = interface external 'java.net' name 'SocketImplFactory' 
    function createSocketImpl(): JNSocketImpl; overload;
  end;

  JNSocketOptions = interface external 'java.net' name 'SocketOptions' 
    const
      TCP_NODELAY = 1;
      SO_BINDADDR = 15;
      SO_REUSEADDR = 4;
      SO_BROADCAST = 32;
      IP_MULTICAST_IF = 16;
      IP_MULTICAST_IF2 = 31;
      IP_MULTICAST_LOOP = 18;
      IP_TOS = 3;
      SO_LINGER = 128;
      SO_TIMEOUT = 4102;
      SO_SNDBUF = 4097;
      SO_RCVBUF = 4098;
      SO_KEEPALIVE = 8;
      SO_OOBINLINE = 4099;
    procedure setOption(para1: jint; para2: JLObject); overload;  // throws java.net.SocketException
    function getOption(para1: jint): JLObject; overload;  // throws java.net.SocketException
  end;

  JNSocksConsts = interface external 'java.net' name 'SocksConsts' 
    const
      PROTO_VERS4 = 4;
      PROTO_VERS = 5;
      DEFAULT_PORT = 1080;
      NO_AUTH = 0;
      GSSAPI = 1;
      USER_PASSW = 2;
      NO_METHODS = -1;
      CONNECT = 1;
      BIND = 2;
      UDP_ASSOC = 3;
      IPV4 = 1;
      DOMAIN_NAME = 3;
      IPV6 = 4;
      REQUEST_OK = 0;
      GENERAL_FAILURE = 1;
      NOT_ALLOWED = 2;
      NET_UNREACHABLE = 3;
      HOST_UNREACHABLE = 4;
      CONN_REFUSED = 5;
      TTL_EXPIRED = 6;
      CMD_NOT_SUPPORTED = 7;
      ADDR_TYPE_NOT_SUP = 8;
  end;

  JNURLConnection = class abstract external 'java.net' name 'URLConnection' (JLObject)
  strict protected
    var
      furl: JNURL; external name 'url';
      fdoInput: jboolean; external name 'doInput';
      fdoOutput: jboolean; external name 'doOutput';
      fallowUserInteraction: jboolean; external name 'allowUserInteraction';
      fuseCaches: jboolean; external name 'useCaches';
      fifModifiedSince: jlong; external name 'ifModifiedSince';
      fconnected: jboolean; external name 'connected';
  public
    class function getFileNameMap(): JNFileNameMap; static; overload;
    class procedure setFileNameMap(para1: JNFileNameMap); static; overload;
    procedure connect(); overload; virtual; abstract;  // throws java.io.IOException
    procedure setConnectTimeout(para1: jint); overload; virtual;
    function getConnectTimeout(): jint; overload; virtual;
    procedure setReadTimeout(para1: jint); overload; virtual;
    function getReadTimeout(): jint; overload; virtual;
  strict protected
    constructor create(para1: JNURL); overload;
  public
    function getURL(): JNURL; overload; virtual;
    function getContentLength(): jint; overload; virtual;
    function getContentType(): JLString; overload; virtual;
    function getContentEncoding(): JLString; overload; virtual;
    function getExpiration(): jlong; overload; virtual;
    function getDate(): jlong; overload; virtual;
    function getLastModified(): jlong; overload; virtual;
    function getHeaderField(para1: JLString): JLString; overload; virtual;
    function getHeaderFields(): JUMap; overload; virtual;
    function getHeaderFieldInt(para1: JLString; para2: jint): jint; overload; virtual;
    function getHeaderFieldDate(para1: JLString; para2: jlong): jlong; overload; virtual;
    function getHeaderFieldKey(para1: jint): JLString; overload; virtual;
    function getHeaderField(para1: jint): JLString; overload; virtual;
    function getContent(): JLObject; overload; virtual;  // throws java.io.IOException
    function getContent(para1: Arr1JLClass): JLObject; overload; virtual;  // throws java.io.IOException
    function getContent(var para1: array of JLClass): JLObject; overload; virtual;  // throws java.io.IOException
    function getPermission(): JSPermission; overload; virtual;  // throws java.io.IOException
    function getInputStream(): JIInputStream; overload; virtual;  // throws java.io.IOException
    function getOutputStream(): JIOutputStream; overload; virtual;  // throws java.io.IOException
    function toString(): JLString; overload; virtual;
    procedure setDoInput(para1: jboolean); overload; virtual;
    function getDoInput(): jboolean; overload; virtual;
    procedure setDoOutput(para1: jboolean); overload; virtual;
    function getDoOutput(): jboolean; overload; virtual;
    procedure setAllowUserInteraction(para1: jboolean); overload; virtual;
    function getAllowUserInteraction(): jboolean; overload; virtual;
    class procedure setDefaultAllowUserInteraction(para1: jboolean); static; overload;
    class function getDefaultAllowUserInteraction(): jboolean; static; overload;
    procedure setUseCaches(para1: jboolean); overload; virtual;
    function getUseCaches(): jboolean; overload; virtual;
    procedure setIfModifiedSince(para1: jlong); overload; virtual;
    function getIfModifiedSince(): jlong; overload; virtual;
    function getDefaultUseCaches(): jboolean; overload; virtual;
    procedure setDefaultUseCaches(para1: jboolean); overload; virtual;
    procedure setRequestProperty(para1: JLString; para2: JLString); overload; virtual;
    procedure addRequestProperty(para1: JLString; para2: JLString); overload; virtual;
    function getRequestProperty(para1: JLString): JLString; overload; virtual;
    function getRequestProperties(): JUMap; overload; virtual;
    class procedure setDefaultRequestProperty(para1: JLString; para2: JLString); static; overload;
    class function getDefaultRequestProperty(para1: JLString): JLString; static; overload;
    class procedure setContentHandlerFactory(para1: JNContentHandlerFactory); static; overload;
    class function guessContentTypeFromName(para1: JLString): JLString; static; overload;
    class function guessContentTypeFromStream(para1: JIInputStream): JLString; static; overload;  // throws java.io.IOException
  end;

  JNURLDecoder = class external 'java.net' name 'URLDecoder' (JLObject)
  public
    constructor create(); overload;
    class function decode(para1: JLString): JLString; static; overload;
    class function decode(para1: JLString; para2: JLString): JLString; static; overload;  // throws java.io.UnsupportedEncodingException
  end;

  JNURLEncoder = class external 'java.net' name 'URLEncoder' (JLObject)
  public
    class function encode(para1: JLString): JLString; static; overload;
    class function encode(para1: JLString; para2: JLString): JLString; static; overload;  // throws java.io.UnsupportedEncodingException
  end;

  JNURLStreamHandler = class abstract external 'java.net' name 'URLStreamHandler' (JLObject)
  public
    constructor create(); overload;
  strict protected
    function openConnection(para1: JNURL): JNURLConnection; overload; virtual; abstract;  // throws java.io.IOException
    function openConnection(para1: JNURL; para2: JNProxy): JNURLConnection; overload; virtual;  // throws java.io.IOException
    procedure parseURL(para1: JNURL; para2: JLString; para3: jint; para4: jint); overload; virtual;
    function getDefaultPort(): jint; overload; virtual;
    function equals(para1: JNURL; para2: JNURL): jboolean; overload; virtual;
    function hashCode(para1: JNURL): jint; overload; virtual;
    function sameFile(para1: JNURL; para2: JNURL): jboolean; overload; virtual;
    function getHostAddress(para1: JNURL): JNInetAddress; overload; virtual;
    function hostsEqual(para1: JNURL; para2: JNURL): jboolean; overload; virtual;
    function toExternalForm(para1: JNURL): JLString; overload; virtual;
    procedure setURL(para1: JNURL; para2: JLString; para3: JLString; para4: jint; para5: JLString; para6: JLString; para7: JLString; para8: JLString; para9: JLString); overload; virtual;
    procedure setURL(para1: JNURL; para2: JLString; para3: JLString; para4: jint; para5: JLString; para6: JLString); overload; virtual;
  end;

  JNURLStreamHandlerFactory = interface external 'java.net' name 'URLStreamHandlerFactory' 
    function createURLStreamHandler(para1: JLString): JNURLStreamHandler; overload;
  end;

  JNBits = class external 'java.nio' name 'Bits' (JLObject)
  end;

  JNByteOrder = class sealed external 'java.nio' name 'ByteOrder' (JLObject)
  public
    final class var
      fBIG_ENDIAN: JNByteOrder; external name 'BIG_ENDIAN';
      fLITTLE_ENDIAN: JNByteOrder; external name 'LITTLE_ENDIAN';
  public
    class function nativeOrder(): JNByteOrder; static; overload;
    function toString(): JLString; overload; virtual;
  end;

  JNCChannels = class sealed external 'java.nio.channels' name 'Channels' (JLObject)
  public
    type
      InnerReadableByteChannelImpl = class;
      Arr1InnerReadableByteChannelImpl = array of InnerReadableByteChannelImpl;
      Arr2InnerReadableByteChannelImpl = array of Arr1InnerReadableByteChannelImpl;
      Arr3InnerReadableByteChannelImpl = array of Arr2InnerReadableByteChannelImpl;
      InnerWritableByteChannelImpl = class;
      Arr1InnerWritableByteChannelImpl = array of InnerWritableByteChannelImpl;
      Arr2InnerWritableByteChannelImpl = array of Arr1InnerWritableByteChannelImpl;
      Arr3InnerWritableByteChannelImpl = array of Arr2InnerWritableByteChannelImpl;
      InnerReadableByteChannelImpl = class external 'java.nio.channels' name 'ReadableByteChannelImpl' 
      end;

      InnerWritableByteChannelImpl = class external 'java.nio.channels' name 'WritableByteChannelImpl' 
      end;

  public
    class function newInputStream(para1: JNCReadableByteChannel): JIInputStream; static; overload;
    class function newOutputStream(para1: JNCWritableByteChannel): JIOutputStream; static; overload;
    class function newChannel(para1: JIInputStream): JNCReadableByteChannel; static; overload;
    class function newChannel(para1: JIOutputStream): JNCWritableByteChannel; static; overload;
    class function newReader(para1: JNCReadableByteChannel; para2: JNCCharsetDecoder; para3: jint): JIReader; static; overload;
    class function newReader(para1: JNCReadableByteChannel; para2: JLString): JIReader; static; overload;
    class function newWriter(para1: JNCWritableByteChannel; para2: JNCCharsetEncoder; para3: jint): JIWriter; static; overload;
    class function newWriter(para1: JNCWritableByteChannel; para2: JLString): JIWriter; static; overload;
  end;

  JNCFileLock = class abstract external 'java.nio.channels' name 'FileLock' (JLObject)
  strict protected
    constructor create(para1: JNCFileChannel; para2: jlong; para3: jlong; para4: jboolean); overload;
  public
    function channel(): JNCFileChannel; overload; virtual; final;
    function position(): jlong; overload; virtual; final;
    function size(): jlong; overload; virtual; final;
    function isShared(): jboolean; overload; virtual; final;
    function overlaps(para1: jlong; para2: jlong): jboolean; overload; virtual; final;
    function isValid(): jboolean; overload; virtual; abstract;
    procedure release(); overload; virtual; abstract;  // throws java.io.IOException
    function toString(): JLString; overload; virtual; final;
  end;

  JNCSelectionKey = class abstract external 'java.nio.channels' name 'SelectionKey' (JLObject)
  public
    const
      OP_READ = 1;
      OP_WRITE = 4;
      OP_CONNECT = 8;
      OP_ACCEPT = 16;
  strict protected
    constructor create(); overload;
  public
    function channel(): JNCSelectableChannel; overload; virtual; abstract;
    function selector(): JNCSelector; overload; virtual; abstract;
    function isValid(): jboolean; overload; virtual; abstract;
    procedure cancel(); overload; virtual; abstract;
    function interestOps(): jint; overload; virtual; abstract;
    function interestOps(para1: jint): JNCSelectionKey; overload; virtual; abstract;
    function readyOps(): jint; overload; virtual; abstract;
    function isReadable(): jboolean; overload; virtual; final;
    function isWritable(): jboolean; overload; virtual; final;
    function isConnectable(): jboolean; overload; virtual; final;
    function isAcceptable(): jboolean; overload; virtual; final;
    function attach(para1: JLObject): JLObject; overload; virtual; final;
    function attachment(): JLObject; overload; virtual; final;
  end;

  JNCSelector = class abstract external 'java.nio.channels' name 'Selector' (JLObject)
  strict protected
    constructor create(); overload;
  public
    class function open(): JNCSelector; static; overload;  // throws java.io.IOException
    function isOpen(): jboolean; overload; virtual; abstract;
    function provider(): JNCSSelectorProvider; overload; virtual; abstract;
    function keys(): JUSet; overload; virtual; abstract;
    function selectedKeys(): JUSet; overload; virtual; abstract;
    function selectNow(): jint; overload; virtual; abstract;  // throws java.io.IOException
    function select(para1: jlong): jint; overload; virtual; abstract;  // throws java.io.IOException
    function select(): jint; overload; virtual; abstract;  // throws java.io.IOException
    function wakeup(): JNCSelector; overload; virtual; abstract;
    procedure close(); overload; virtual; abstract;  // throws java.io.IOException
  end;

  JNCSSelectorProvider = class abstract external 'java.nio.channels.spi' name 'SelectorProvider' (JLObject)
  strict protected
    constructor create(); overload;
  public
    class function provider(): JNCSSelectorProvider; static; overload;
    function openDatagramChannel(): JNCDatagramChannel; overload; virtual; abstract;  // throws java.io.IOException
    function openPipe(): JNCPipe; overload; virtual; abstract;  // throws java.io.IOException
    function openSelector(): JNCSAbstractSelector; overload; virtual; abstract;  // throws java.io.IOException
    function openServerSocketChannel(): JNCServerSocketChannel; overload; virtual; abstract;  // throws java.io.IOException
    function openSocketChannel(): JNCSocketChannel; overload; virtual; abstract;  // throws java.io.IOException
    function inheritedChannel(): JNCChannel; overload; virtual;  // throws java.io.IOException
  end;

  JRNaming = class sealed external 'java.rmi' name 'Naming' (JLObject)
  public
    type
      InnerParsedNamingURL = class;
      Arr1InnerParsedNamingURL = array of InnerParsedNamingURL;
      Arr2InnerParsedNamingURL = array of Arr1InnerParsedNamingURL;
      Arr3InnerParsedNamingURL = array of Arr2InnerParsedNamingURL;
      InnerParsedNamingURL = class external 'java.rmi' name 'ParsedNamingURL' 
      end;

  public
    class function lookup(para1: JLString): JRRemote; static; overload;  // throws java.rmi.NotBoundException, java.net.MalformedURLException, java.rmi.RemoteException
    class procedure bind(para1: JLString; para2: JRRemote); static; overload;  // throws java.rmi.AlreadyBoundException, java.net.MalformedURLException, java.rmi.RemoteException
    class procedure unbind(para1: JLString); static; overload;  // throws java.rmi.RemoteException, java.rmi.NotBoundException, java.net.MalformedURLException
    class procedure rebind(para1: JLString; para2: JRRemote); static; overload;  // throws java.rmi.RemoteException, java.net.MalformedURLException
    class function list(para1: JLString): Arr1JLString; static; overload;  // throws java.rmi.RemoteException, java.net.MalformedURLException
  end;

  JRRemote = interface external 'java.rmi' name 'Remote' 
  end;

  JRRLocateRegistry = class sealed external 'java.rmi.registry' name 'LocateRegistry' (JLObject)
  public
    class function getRegistry(): JRRRegistry; static; overload;  // throws java.rmi.RemoteException
    class function getRegistry(para1: jint): JRRRegistry; static; overload;  // throws java.rmi.RemoteException
    class function getRegistry(para1: JLString): JRRRegistry; static; overload;  // throws java.rmi.RemoteException
    class function getRegistry(para1: JLString; para2: jint): JRRRegistry; static; overload;  // throws java.rmi.RemoteException
    class function getRegistry(para1: JLString; para2: jint; para3: JRSRMIClientSocketFactory): JRRRegistry; static; overload;  // throws java.rmi.RemoteException
    class function createRegistry(para1: jint): JRRRegistry; static; overload;  // throws java.rmi.RemoteException
    class function createRegistry(para1: jint; para2: JRSRMIClientSocketFactory; para3: JRSRMIServerSocketFactory): JRRRegistry; static; overload;  // throws java.rmi.RemoteException
  end;

  JRRRegistryHandler = interface external 'java.rmi.registry' name 'RegistryHandler' 
    function registryStub(para1: JLString; para2: jint): JRRRegistry; overload;  // throws java.rmi.RemoteException, java.rmi.UnknownHostException
    function registryImpl(para1: jint): JRRRegistry; overload;  // throws java.rmi.RemoteException
  end;

  JRSLoaderHandler = interface external 'java.rmi.server' name 'LoaderHandler' 
    const
      packagePrefix = 'sun.rmi.server';
    function loadClass(para1: JLString): JLClass; overload;  // throws java.net.MalformedURLException, java.lang.ClassNotFoundException
    function loadClass(para1: JNURL; para2: JLString): JLClass; overload;  // throws java.net.MalformedURLException, java.lang.ClassNotFoundException
    function getSecurityContext(para1: JLClassLoader): JLObject; overload;
  end;

  JRSOperation = class external 'java.rmi.server' name 'Operation' (JLObject)
  public
    constructor create(para1: JLString); overload;
    function getOperation(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JRSRMIClassLoader = class external 'java.rmi.server' name 'RMIClassLoader' (JLObject)
  public
    class function loadClass(para1: JLString): JLClass; static; overload;  // throws java.net.MalformedURLException, java.lang.ClassNotFoundException
    class function loadClass(para1: JNURL; para2: JLString): JLClass; static; overload;  // throws java.net.MalformedURLException, java.lang.ClassNotFoundException
    class function loadClass(para1: JLString; para2: JLString): JLClass; static; overload;  // throws java.net.MalformedURLException, java.lang.ClassNotFoundException
    class function loadClass(para1: JLString; para2: JLString; para3: JLClassLoader): JLClass; static; overload;  // throws java.net.MalformedURLException, java.lang.ClassNotFoundException
    class function loadProxyClass(para1: JLString; para2: Arr1JLString; para3: JLClassLoader): JLClass; static; overload;  // throws java.lang.ClassNotFoundException, java.net.MalformedURLException
    class function loadProxyClass(para1: JLString; var para2: array of JLString; para3: JLClassLoader): JLClass; static; overload;  // throws java.lang.ClassNotFoundException, java.net.MalformedURLException
    class function getClassLoader(para1: JLString): JLClassLoader; static; overload;  // throws java.net.MalformedURLException, java.lang.SecurityException
    class function getClassAnnotation(para1: JLClass): JLString; static; overload;
    class function getDefaultProviderInstance(): JRSRMIClassLoaderSpi; static; overload;
    class function getSecurityContext(para1: JLClassLoader): JLObject; static; overload;
  end;

  JRSRMIClassLoaderSpi = class abstract external 'java.rmi.server' name 'RMIClassLoaderSpi' (JLObject)
  public
    constructor create(); overload;
    function loadClass(para1: JLString; para2: JLString; para3: JLClassLoader): JLClass; overload; virtual; abstract;  // throws java.net.MalformedURLException, java.lang.ClassNotFoundException
    function loadProxyClass(para1: JLString; para2: Arr1JLString; para3: JLClassLoader): JLClass; overload; virtual; abstract;  // throws java.net.MalformedURLException, java.lang.ClassNotFoundException
    function loadProxyClass(para1: JLString; var para2: array of JLString; para3: JLClassLoader): JLClass; overload; virtual; abstract;  // throws java.net.MalformedURLException, java.lang.ClassNotFoundException
    function getClassLoader(para1: JLString): JLClassLoader; overload; virtual; abstract;  // throws java.net.MalformedURLException
    function getClassAnnotation(para1: JLClass): JLString; overload; virtual; abstract;
  end;

  JRSRMIClientSocketFactory = interface external 'java.rmi.server' name 'RMIClientSocketFactory' 
    function createSocket(para1: JLString; para2: jint): JNSocket; overload;  // throws java.io.IOException
  end;

  JRSRMIFailureHandler = interface external 'java.rmi.server' name 'RMIFailureHandler' 
    function failure(para1: JLException): jboolean; overload;
  end;

  JRSRMIServerSocketFactory = interface external 'java.rmi.server' name 'RMIServerSocketFactory' 
    function createServerSocket(para1: jint): JNServerSocket; overload;  // throws java.io.IOException
  end;

  JRSRemoteCall = interface external 'java.rmi.server' name 'RemoteCall' 
    function getOutputStream(): JIObjectOutput; overload;  // throws java.io.IOException
    procedure releaseOutputStream(); overload;  // throws java.io.IOException
    function getInputStream(): JIObjectInput; overload;  // throws java.io.IOException
    procedure releaseInputStream(); overload;  // throws java.io.IOException
    function getResultStream(para1: jboolean): JIObjectOutput; overload;  // throws java.io.IOException, java.io.StreamCorruptedException
    procedure executeCall(); overload;  // throws java.lang.Exception
    procedure done(); overload;  // throws java.io.IOException
  end;

  JRSSkeleton = interface external 'java.rmi.server' name 'Skeleton' 
    procedure dispatch(para1: JRRemote; para2: JRSRemoteCall; para3: jint; para4: jlong); overload;  // throws java.lang.Exception
    function getOperations(): Arr1JRSOperation; overload;
  end;

  JRSUnreferenced = interface external 'java.rmi.server' name 'Unreferenced' 
    procedure unreferenced(); overload;
  end;

  JSAccessControlContext = class sealed external 'java.security' name 'AccessControlContext' (JLObject)
  public
    constructor create(para1: Arr1JSProtectionDomain); overload;
    constructor create(const para1: array of JSProtectionDomain); overload;
    constructor create(para1: JSAccessControlContext; para2: JSDomainCombiner); overload;
    function getDomainCombiner(): JSDomainCombiner; overload; virtual;
    procedure checkPermission(para1: JSPermission); overload; virtual;  // throws java.security.AccessControlException
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JSAccessController = class sealed external 'java.security' name 'AccessController' (JLObject)
  public
    class function doPrivileged(para1: JSPrivilegedAction): JLObject; static; overload;
    class function doPrivilegedWithCombiner(para1: JSPrivilegedAction): JLObject; static; overload;
    class function doPrivileged(para1: JSPrivilegedAction; para2: JSAccessControlContext): JLObject; static; overload;
    class function doPrivileged(para1: JSPrivilegedExceptionAction): JLObject; static; overload;  // throws java.security.PrivilegedActionException
    class function doPrivilegedWithCombiner(para1: JSPrivilegedExceptionAction): JLObject; static; overload;  // throws java.security.PrivilegedActionException
    class function doPrivileged(para1: JSPrivilegedExceptionAction; para2: JSAccessControlContext): JLObject; static; overload;  // throws java.security.PrivilegedActionException
    class function getContext(): JSAccessControlContext; static; overload;
    class procedure checkPermission(para1: JSPermission); static; overload;  // throws java.security.AccessControlException
  end;

  JSAlgorithmParameterGenerator = class external 'java.security' name 'AlgorithmParameterGenerator' (JLObject)
  strict protected
    constructor create(para1: JSAlgorithmParameterGeneratorSpi; para2: JSProvider; para3: JLString); overload;
  public
    function getAlgorithm(): JLString; overload; virtual; final;
    class function getInstance(para1: JLString): JSAlgorithmParameterGenerator; static; overload;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JSAlgorithmParameterGenerator; static; overload;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JSAlgorithmParameterGenerator; static; overload;  // throws java.security.NoSuchAlgorithmException
    function getProvider(): JSProvider; overload; virtual; final;
    procedure init(para1: jint); overload; virtual; final;
    procedure init(para1: jint; para2: JSSecureRandom); overload; virtual; final;
    procedure init(para1: JSSAlgorithmParameterSpec); overload; virtual; final;  // throws java.security.InvalidAlgorithmParameterException
    procedure init(para1: JSSAlgorithmParameterSpec; para2: JSSecureRandom); overload; virtual; final;  // throws java.security.InvalidAlgorithmParameterException
    function generateParameters(): JSAlgorithmParameters; overload; virtual; final;
  end;

  JSAlgorithmParameterGeneratorSpi = class abstract external 'java.security' name 'AlgorithmParameterGeneratorSpi' (JLObject)
  public
    constructor create(); overload;
  strict protected
    procedure engineInit(para1: jint; para2: JSSecureRandom); overload; virtual; abstract;
    procedure engineInit(para1: JSSAlgorithmParameterSpec; para2: JSSecureRandom); overload; virtual; abstract;  // throws java.security.InvalidAlgorithmParameterException
    function engineGenerateParameters(): JSAlgorithmParameters; overload; virtual; abstract;
  end;

  JSAlgorithmParameters = class external 'java.security' name 'AlgorithmParameters' (JLObject)
  strict protected
    constructor create(para1: JSAlgorithmParametersSpi; para2: JSProvider; para3: JLString); overload;
  public
    function getAlgorithm(): JLString; overload; virtual; final;
    class function getInstance(para1: JLString): JSAlgorithmParameters; static; overload;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JSAlgorithmParameters; static; overload;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JSAlgorithmParameters; static; overload;  // throws java.security.NoSuchAlgorithmException
    function getProvider(): JSProvider; overload; virtual; final;
    procedure init(para1: JSSAlgorithmParameterSpec); overload; virtual; final;  // throws java.security.spec.InvalidParameterSpecException
    procedure init(para1: Arr1jbyte); overload; virtual; final;  // throws java.io.IOException
    procedure init(var para1: array of jbyte); overload; virtual; final;  // throws java.io.IOException
    procedure init(para1: Arr1jbyte; para2: JLString); overload; virtual; final;  // throws java.io.IOException
    procedure init(var para1: array of jbyte; para2: JLString); overload; virtual; final;  // throws java.io.IOException
    function getParameterSpec(para1: JLClass): JSSAlgorithmParameterSpec; overload; virtual; final;  // throws java.security.spec.InvalidParameterSpecException
    function getEncoded(): Arr1jbyte; overload; virtual; final;  // throws java.io.IOException
    function getEncoded(para1: JLString): Arr1jbyte; overload; virtual; final;  // throws java.io.IOException
    function toString(): JLString; overload; virtual; final;
  end;

  JSAlgorithmParametersSpi = class abstract external 'java.security' name 'AlgorithmParametersSpi' (JLObject)
  public
    constructor create(); overload;
  strict protected
    procedure engineInit(para1: JSSAlgorithmParameterSpec); overload; virtual; abstract;  // throws java.security.spec.InvalidParameterSpecException
    procedure engineInit(para1: Arr1jbyte); overload; virtual; abstract;  // throws java.io.IOException
    procedure engineInit(var para1: array of jbyte); overload; virtual; abstract;  // throws java.io.IOException
    procedure engineInit(para1: Arr1jbyte; para2: JLString); overload; virtual; abstract;  // throws java.io.IOException
    procedure engineInit(var para1: array of jbyte; para2: JLString); overload; virtual; abstract;  // throws java.io.IOException
    function engineGetParameterSpec(para1: JLClass): JSSAlgorithmParameterSpec; overload; virtual; abstract;  // throws java.security.spec.InvalidParameterSpecException
    function engineGetEncoded(): Arr1jbyte; overload; virtual; abstract;  // throws java.io.IOException
    function engineGetEncoded(para1: JLString): Arr1jbyte; overload; virtual; abstract;  // throws java.io.IOException
    function engineToString(): JLString; overload; virtual; abstract;
  end;

  JSCertificate = interface external 'java.security' name 'Certificate' 
    function getGuarantor(): JSPrincipal; overload;
    function getPrincipal(): JSPrincipal; overload;
    function getPublicKey(): JSPublicKey; overload;
    procedure encode(para1: JIOutputStream); overload;  // throws java.security.KeyException, java.io.IOException
    procedure decode(para1: JIInputStream); overload;  // throws java.security.KeyException, java.io.IOException
    function getFormat(): JLString; overload;
    function toString(para1: jboolean): JLString; overload;
  end;

  JSDomainCombiner = interface external 'java.security' name 'DomainCombiner' 
    function combine(para1: Arr1JSProtectionDomain; para2: Arr1JSProtectionDomain): Arr1JSProtectionDomain; overload;
    function combine(var para1: array of JSProtectionDomain; var para2: array of JSProtectionDomain): Arr1JSProtectionDomain; overload;
  end;

  JSGuard = interface external 'java.security' name 'Guard' 
    procedure checkGuard(para1: JLObject); overload;  // throws java.lang.SecurityException
  end;

  JSKeyFactory = class external 'java.security' name 'KeyFactory' (JLObject)
  strict protected
    constructor create(para1: JSKeyFactorySpi; para2: JSProvider; para3: JLString); overload;
  public
    class function getInstance(para1: JLString): JSKeyFactory; static; overload;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JSKeyFactory; static; overload;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JSKeyFactory; static; overload;  // throws java.security.NoSuchAlgorithmException
    function getProvider(): JSProvider; overload; virtual; final;
    function getAlgorithm(): JLString; overload; virtual; final;
    function generatePublic(para1: JSSKeySpec): JSPublicKey; overload; virtual; final;  // throws java.security.spec.InvalidKeySpecException
    function generatePrivate(para1: JSSKeySpec): JSPrivateKey; overload; virtual; final;  // throws java.security.spec.InvalidKeySpecException
    function getKeySpec(para1: JSKey; para2: JLClass): JSSKeySpec; overload; virtual; final;  // throws java.security.spec.InvalidKeySpecException
    function translateKey(para1: JSKey): JSKey; overload; virtual; final;  // throws java.security.InvalidKeyException
  end;

  JSKeyFactorySpi = class abstract external 'java.security' name 'KeyFactorySpi' (JLObject)
  public
    constructor create(); overload;
  strict protected
    function engineGeneratePublic(para1: JSSKeySpec): JSPublicKey; overload; virtual; abstract;  // throws java.security.spec.InvalidKeySpecException
    function engineGeneratePrivate(para1: JSSKeySpec): JSPrivateKey; overload; virtual; abstract;  // throws java.security.spec.InvalidKeySpecException
    function engineGetKeySpec(para1: JSKey; para2: JLClass): JSSKeySpec; overload; virtual; abstract;  // throws java.security.spec.InvalidKeySpecException
    function engineTranslateKey(para1: JSKey): JSKey; overload; virtual; abstract;  // throws java.security.InvalidKeyException
  end;

  JSKeyPairGeneratorSpi = class abstract external 'java.security' name 'KeyPairGeneratorSpi' (JLObject)
  public
    constructor create(); overload;
    procedure initialize(para1: jint; para2: JSSecureRandom); overload; virtual; abstract;
    procedure initialize(para1: JSSAlgorithmParameterSpec; para2: JSSecureRandom); overload; virtual;  // throws java.security.InvalidAlgorithmParameterException
    function generateKeyPair(): JSKeyPair; overload; virtual; abstract;
  end;

  JSMessageDigestSpi = class abstract external 'java.security' name 'MessageDigestSpi' (JLObject)
  public
    constructor create(); overload;
  strict protected
    function engineGetDigestLength(): jint; overload; virtual;
    procedure engineUpdate(para1: jbyte); overload; virtual; abstract;
    procedure engineUpdate(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual; abstract;
    procedure engineUpdate(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual; abstract;
    procedure engineUpdate(para1: JNByteBuffer); overload; virtual;
    function engineDigest(): Arr1jbyte; overload; virtual; abstract;
    function engineDigest(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.security.DigestException
    function engineDigest(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.security.DigestException
    procedure engineReset(); overload; virtual; abstract;
  public
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  JSPolicy = class abstract external 'java.security' name 'Policy' (JLObject)
  public
    type
      InnerPolicyDelegate = class;
      Arr1InnerPolicyDelegate = array of InnerPolicyDelegate;
      Arr2InnerPolicyDelegate = array of Arr1InnerPolicyDelegate;
      Arr3InnerPolicyDelegate = array of Arr2InnerPolicyDelegate;
      InnerUnsupportedEmptyCollection = class;
      Arr1InnerUnsupportedEmptyCollection = array of InnerUnsupportedEmptyCollection;
      Arr2InnerUnsupportedEmptyCollection = array of Arr1InnerUnsupportedEmptyCollection;
      Arr3InnerUnsupportedEmptyCollection = array of Arr2InnerUnsupportedEmptyCollection;
      InnerPolicyDelegate = class external 'java.security' name 'PolicyDelegate' 
      end;

      InnerUnsupportedEmptyCollection = class external 'java.security' name 'UnsupportedEmptyCollection' 
      end;

  public
    type
      InnerParameters = interface;
      Arr1InnerParameters = array of InnerParameters;
      Arr2InnerParameters = array of Arr1InnerParameters;
      Arr3InnerParameters = array of Arr2InnerParameters;
      InnerParameters = interface external 'java.security' name 'Parameters' 
      end;

  public
    final class var
      fUNSUPPORTED_EMPTY_COLLECTION: JSPermissionCollection; external name 'UNSUPPORTED_EMPTY_COLLECTION';
  public
    constructor create(); overload;
    class function getPolicy(): JSPolicy; static; overload;
    class procedure setPolicy(para1: JSPolicy); static; overload;
    class function getInstance(para1: JLString; para2: JSPolicy.InnerParameters): JSPolicy; static; overload;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JSPolicy.InnerParameters; para3: JLString): JSPolicy; static; overload;  // throws java.security.NoSuchProviderException, java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JSPolicy.InnerParameters; para3: JSProvider): JSPolicy; static; overload;  // throws java.security.NoSuchAlgorithmException
    function getProvider(): JSProvider; overload; virtual;
    function getType(): JLString; overload; virtual;
    function getParameters(): JSPolicy.InnerParameters; overload; virtual;
    function getPermissions(para1: JSCodeSource): JSPermissionCollection; overload; virtual;
    function getPermissions(para1: JSProtectionDomain): JSPermissionCollection; overload; virtual;
    function implies(para1: JSProtectionDomain; para2: JSPermission): jboolean; overload; virtual;
    procedure refresh(); overload; virtual;
  end;

  JSPolicySpi = class abstract external 'java.security' name 'PolicySpi' (JLObject)
  public
    constructor create(); overload;
  strict protected
    function engineImplies(para1: JSProtectionDomain; para2: JSPermission): jboolean; overload; virtual; abstract;
    procedure engineRefresh(); overload; virtual;
    function engineGetPermissions(para1: JSCodeSource): JSPermissionCollection; overload; virtual;
    function engineGetPermissions(para1: JSProtectionDomain): JSPermissionCollection; overload; virtual;
  end;

  JSPrincipal = interface external 'java.security' name 'Principal' 
    function equals(para1: JLObject): jboolean; overload;
    function toString(): JLString; overload;
    function hashCode(): jint; overload;
    function getName(): JLString; overload;
  end;

  JSPrivilegedAction = interface external 'java.security' name 'PrivilegedAction' 
    function run(): JLObject; overload;
  end;

  JSPrivilegedExceptionAction = interface external 'java.security' name 'PrivilegedExceptionAction' 
    function run(): JLObject; overload;  // throws java.lang.Exception
  end;

  JSProtectionDomain = class external 'java.security' name 'ProtectionDomain' (JLObject)
  public
    type
      InnerKey = class;
      Arr1InnerKey = array of InnerKey;
      Arr2InnerKey = array of Arr1InnerKey;
      Arr3InnerKey = array of Arr2InnerKey;
      InnerKey = class sealed external 'java.security' name 'Key' 
      end;

  public
    constructor create(para1: JSCodeSource; para2: JSPermissionCollection); overload;
    constructor create(para1: JSCodeSource; para2: JSPermissionCollection; para3: JLClassLoader; para4: Arr1JSPrincipal); overload;
    constructor create(para1: JSCodeSource; para2: JSPermissionCollection; para3: JLClassLoader; const para4: array of JSPrincipal); overload;
    function getCodeSource(): JSCodeSource; overload; virtual; final;
    function getClassLoader(): JLClassLoader; overload; virtual; final;
    function getPrincipals(): Arr1JSPrincipal; overload; virtual; final;
    function getPermissions(): JSPermissionCollection; overload; virtual; final;
    function implies(para1: JSPermission): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSSecurity = class sealed external 'java.security' name 'Security' (JLObject)
  public
    type
      InnerProviderProperty = class;
      Arr1InnerProviderProperty = array of InnerProviderProperty;
      Arr2InnerProviderProperty = array of Arr1InnerProviderProperty;
      Arr3InnerProviderProperty = array of Arr2InnerProviderProperty;
      InnerProviderProperty = class external 'java.security' name 'ProviderProperty' 
      end;

  public
    class function getAlgorithmProperty(para1: JLString; para2: JLString): JLString; static; overload;
    class function insertProviderAt(para1: JSProvider; para2: jint): jint; static; overload;
    class function addProvider(para1: JSProvider): jint; static; overload;
    class procedure removeProvider(para1: JLString); static; overload;
    class function getProviders(): Arr1JSProvider; static; overload;
    class function getProvider(para1: JLString): JSProvider; static; overload;
    class function getProviders(para1: JLString): Arr1JSProvider; static; overload;
    class function getProviders(para1: JUMap): Arr1JSProvider; static; overload;
    class function getProperty(para1: JLString): JLString; static; overload;
    class procedure setProperty(para1: JLString; para2: JLString); static; overload;
    class function getAlgorithms(para1: JLString): JUSet; static; overload;
  end;

  JSSignatureSpi = class abstract external 'java.security' name 'SignatureSpi' (JLObject)
  strict protected
    var
      fappRandom: JSSecureRandom; external name 'appRandom';
  public
    constructor create(); overload;
  strict protected
    procedure engineInitVerify(para1: JSPublicKey); overload; virtual; abstract;  // throws java.security.InvalidKeyException
    procedure engineInitSign(para1: JSPrivateKey); overload; virtual; abstract;  // throws java.security.InvalidKeyException
    procedure engineInitSign(para1: JSPrivateKey; para2: JSSecureRandom); overload; virtual;  // throws java.security.InvalidKeyException
    procedure engineUpdate(para1: jbyte); overload; virtual; abstract;  // throws java.security.SignatureException
    procedure engineUpdate(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual; abstract;  // throws java.security.SignatureException
    procedure engineUpdate(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual; abstract;  // throws java.security.SignatureException
    procedure engineUpdate(para1: JNByteBuffer); overload; virtual;
    function engineSign(): Arr1jbyte; overload; virtual; abstract;  // throws java.security.SignatureException
    function engineSign(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.security.SignatureException
    function engineSign(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.security.SignatureException
    function engineVerify(para1: Arr1jbyte): jboolean; overload; virtual; abstract;  // throws java.security.SignatureException
    function engineVerify(var para1: array of jbyte): jboolean; overload; virtual; abstract;  // throws java.security.SignatureException
    function engineVerify(para1: Arr1jbyte; para2: jint; para3: jint): jboolean; overload; virtual;  // throws java.security.SignatureException
    function engineVerify(var para1: array of jbyte; para2: jint; para3: jint): jboolean; overload; virtual;  // throws java.security.SignatureException
    procedure engineSetParameter(para1: JLString; para2: JLObject); overload; virtual; abstract;  // throws java.security.InvalidParameterException
    procedure engineSetParameter(para1: JSSAlgorithmParameterSpec); overload; virtual;  // throws java.security.InvalidAlgorithmParameterException
    function engineGetParameters(): JSAlgorithmParameters; overload; virtual;
    function engineGetParameter(para1: JLString): JLObject; overload; virtual; abstract;  // throws java.security.InvalidParameterException
  public
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  JSAOwner = interface external 'java.security.acl' name 'Owner' 
    function addOwner(para1: JSPrincipal; para2: JSPrincipal): jboolean; overload;  // throws java.security.acl.NotOwnerException
    function deleteOwner(para1: JSPrincipal; para2: JSPrincipal): jboolean; overload;  // throws java.security.acl.NotOwnerException, java.security.acl.LastOwnerException
    function isOwner(para1: JSPrincipal): jboolean; overload;
  end;

  JSAPermission = interface external 'java.security.acl' name 'Permission' 
    function equals(para1: JLObject): jboolean; overload;
    function toString(): JLString; overload;
  end;

  JSCCRL = class abstract external 'java.security.cert' name 'CRL' (JLObject)
  strict protected
    constructor create(para1: JLString); overload;
  public
    function getType(): JLString; overload; virtual; final;
    function toString(): JLString; overload; virtual; abstract;
    function isRevoked(para1: JSCCertificate): jboolean; overload; virtual; abstract;
  end;

  JSCCertPathBuilder = class external 'java.security.cert' name 'CertPathBuilder' (JLObject)
  strict protected
    constructor create(para1: JSCCertPathBuilderSpi; para2: JSProvider; para3: JLString); overload;
  public
    class function getInstance(para1: JLString): JSCCertPathBuilder; static; overload;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JSCCertPathBuilder; static; overload;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JSCCertPathBuilder; static; overload;  // throws java.security.NoSuchAlgorithmException
    function getProvider(): JSProvider; overload; virtual; final;
    function getAlgorithm(): JLString; overload; virtual; final;
    function build(para1: JSCCertPathParameters): JSCCertPathBuilderResult; overload; virtual; final;  // throws java.security.cert.CertPathBuilderException, java.security.InvalidAlgorithmParameterException
    class function getDefaultType(): JLString; static; overload; final;
  end;

  JSCCertPathBuilderSpi = class abstract external 'java.security.cert' name 'CertPathBuilderSpi' (JLObject)
  public
    constructor create(); overload;
    function engineBuild(para1: JSCCertPathParameters): JSCCertPathBuilderResult; overload; virtual; abstract;  // throws java.security.cert.CertPathBuilderException, java.security.InvalidAlgorithmParameterException
  end;

  JSCCertPathValidator = class external 'java.security.cert' name 'CertPathValidator' (JLObject)
  strict protected
    constructor create(para1: JSCCertPathValidatorSpi; para2: JSProvider; para3: JLString); overload;
  public
    class function getInstance(para1: JLString): JSCCertPathValidator; static; overload;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JSCCertPathValidator; static; overload;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JSCCertPathValidator; static; overload;  // throws java.security.NoSuchAlgorithmException
    function getProvider(): JSProvider; overload; virtual; final;
    function getAlgorithm(): JLString; overload; virtual; final;
    function validate(para1: JSCCertPath; para2: JSCCertPathParameters): JSCCertPathValidatorResult; overload; virtual; final;  // throws java.security.cert.CertPathValidatorException, java.security.InvalidAlgorithmParameterException
    class function getDefaultType(): JLString; static; overload; final;
  end;

  JSCCertPathValidatorSpi = class abstract external 'java.security.cert' name 'CertPathValidatorSpi' (JLObject)
  public
    constructor create(); overload;
    function engineValidate(para1: JSCCertPath; para2: JSCCertPathParameters): JSCCertPathValidatorResult; overload; virtual; abstract;  // throws java.security.cert.CertPathValidatorException, java.security.InvalidAlgorithmParameterException
  end;

  JSCCertStore = class external 'java.security.cert' name 'CertStore' (JLObject)
  strict protected
    constructor create(para1: JSCCertStoreSpi; para2: JSProvider; para3: JLString; para4: JSCCertStoreParameters); overload;
  public
    function getCertificates(para1: JSCCertSelector): JUCollection; overload; virtual; final;  // throws java.security.cert.CertStoreException
    function getCRLs(para1: JSCCRLSelector): JUCollection; overload; virtual; final;  // throws java.security.cert.CertStoreException
    class function getInstance(para1: JLString; para2: JSCCertStoreParameters): JSCCertStore; static; overload;  // throws java.security.InvalidAlgorithmParameterException, java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JSCCertStoreParameters; para3: JLString): JSCCertStore; static; overload;  // throws java.security.InvalidAlgorithmParameterException, java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSCCertStoreParameters; para3: JSProvider): JSCCertStore; static; overload;  // throws java.security.NoSuchAlgorithmException, java.security.InvalidAlgorithmParameterException
    function getCertStoreParameters(): JSCCertStoreParameters; overload; virtual; final;
    function getType(): JLString; overload; virtual; final;
    function getProvider(): JSProvider; overload; virtual; final;
    class function getDefaultType(): JLString; static; overload; final;
  end;

  JSCCertStoreSpi = class abstract external 'java.security.cert' name 'CertStoreSpi' (JLObject)
  public
    constructor create(para1: JSCCertStoreParameters); overload;  // throws java.security.InvalidAlgorithmParameterException
    function engineGetCertificates(para1: JSCCertSelector): JUCollection; overload; virtual; abstract;  // throws java.security.cert.CertStoreException
    function engineGetCRLs(para1: JSCCRLSelector): JUCollection; overload; virtual; abstract;  // throws java.security.cert.CertStoreException
  end;

  JSCCertificateFactory = class external 'java.security.cert' name 'CertificateFactory' (JLObject)
  strict protected
    constructor create(para1: JSCCertificateFactorySpi; para2: JSProvider; para3: JLString); overload;
  public
    class function getInstance(para1: JLString): JSCCertificateFactory; static; overload; final;  // throws java.security.cert.CertificateException
    class function getInstance(para1: JLString; para2: JLString): JSCCertificateFactory; static; overload; final;  // throws java.security.cert.CertificateException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JSCCertificateFactory; static; overload; final;  // throws java.security.cert.CertificateException
    function getProvider(): JSProvider; overload; virtual; final;
    function getType(): JLString; overload; virtual; final;
    function generateCertificate(para1: JIInputStream): JSCCertificate; overload; virtual; final;  // throws java.security.cert.CertificateException
    function getCertPathEncodings(): JUIterator; overload; virtual; final;
    function generateCertPath(para1: JIInputStream): JSCCertPath; overload; virtual; final;  // throws java.security.cert.CertificateException
    function generateCertPath(para1: JIInputStream; para2: JLString): JSCCertPath; overload; virtual; final;  // throws java.security.cert.CertificateException
    function generateCertPath(para1: JUList): JSCCertPath; overload; virtual; final;  // throws java.security.cert.CertificateException
    function generateCertificates(para1: JIInputStream): JUCollection; overload; virtual; final;  // throws java.security.cert.CertificateException
    function generateCRL(para1: JIInputStream): JSCCRL; overload; virtual; final;  // throws java.security.cert.CRLException
    function generateCRLs(para1: JIInputStream): JUCollection; overload; virtual; final;  // throws java.security.cert.CRLException
  end;

  JSCCertificateFactorySpi = class abstract external 'java.security.cert' name 'CertificateFactorySpi' (JLObject)
  public
    constructor create(); overload;
    function engineGenerateCertificate(para1: JIInputStream): JSCCertificate; overload; virtual; abstract;  // throws java.security.cert.CertificateException
    function engineGenerateCertPath(para1: JIInputStream): JSCCertPath; overload; virtual;  // throws java.security.cert.CertificateException
    function engineGenerateCertPath(para1: JIInputStream; para2: JLString): JSCCertPath; overload; virtual;  // throws java.security.cert.CertificateException
    function engineGenerateCertPath(para1: JUList): JSCCertPath; overload; virtual;  // throws java.security.cert.CertificateException
    function engineGetCertPathEncodings(): JUIterator; overload; virtual;
    function engineGenerateCertificates(para1: JIInputStream): JUCollection; overload; virtual; abstract;  // throws java.security.cert.CertificateException
    function engineGenerateCRL(para1: JIInputStream): JSCCRL; overload; virtual; abstract;  // throws java.security.cert.CRLException
    function engineGenerateCRLs(para1: JIInputStream): JUCollection; overload; virtual; abstract;  // throws java.security.cert.CRLException
  end;

  JSCPolicyNode = interface external 'java.security.cert' name 'PolicyNode' 
    function getParent(): JSCPolicyNode; overload;
    function getChildren(): JUIterator; overload;
    function getDepth(): jint; overload;
    function getValidPolicy(): JLString; overload;
    function getPolicyQualifiers(): JUSet; overload;
    function getExpectedPolicies(): JUSet; overload;
    function isCritical(): jboolean; overload;
  end;

  JSCPolicyQualifierInfo = class external 'java.security.cert' name 'PolicyQualifierInfo' (JLObject)
  public
    constructor create(para1: Arr1jbyte); overload;  // throws java.io.IOException
    constructor create(const para1: array of jbyte); overload;  // throws java.io.IOException
    function getPolicyQualifierId(): JLString; overload; virtual; final;
    function getEncoded(): Arr1jbyte; overload; virtual; final;
    function getPolicyQualifier(): Arr1jbyte; overload; virtual; final;
    function toString(): JLString; overload; virtual;
  end;

  JSCTrustAnchor = class external 'java.security.cert' name 'TrustAnchor' (JLObject)
  public
    constructor create(para1: JSCX509Certificate; para2: Arr1jbyte); overload;
    constructor create(para1: JSCX509Certificate; const para2: array of jbyte); overload;
    constructor create(para1: JSAXX500Principal; para2: JSPublicKey; para3: Arr1jbyte); overload;
    constructor create(para1: JSAXX500Principal; para2: JSPublicKey; const para3: array of jbyte); overload;
    constructor create(para1: JLString; para2: JSPublicKey; para3: Arr1jbyte); overload;
    constructor create(para1: JLString; para2: JSPublicKey; const para3: array of jbyte); overload;
    function getTrustedCert(): JSCX509Certificate; overload; virtual; final;
    function getCA(): JSAXX500Principal; overload; virtual; final;
    function getCAName(): JLString; overload; virtual; final;
    function getCAPublicKey(): JSPublicKey; overload; virtual; final;
    function getNameConstraints(): Arr1jbyte; overload; virtual; final;
    function toString(): JLString; overload; virtual;
  end;

  JSCX509Extension = interface external 'java.security.cert' name 'X509Extension' 
    function hasUnsupportedCriticalExtension(): jboolean; overload;
    function getCriticalExtensionOIDs(): JUSet; overload;
    function getNonCriticalExtensionOIDs(): JUSet; overload;
    function getExtensionValue(para1: JLString): Arr1jbyte; overload;
  end;

  JSIDSAKey = interface external 'java.security.interfaces' name 'DSAKey' 
    function getParams(): JSIDSAParams; overload;
  end;

  JSIDSAKeyPairGenerator = interface external 'java.security.interfaces' name 'DSAKeyPairGenerator' 
    procedure initialize(para1: JSIDSAParams; para2: JSSecureRandom); overload;  // throws java.security.InvalidParameterException
    procedure initialize(para1: jint; para2: jboolean; para3: JSSecureRandom); overload;  // throws java.security.InvalidParameterException
  end;

  JSIDSAParams = interface external 'java.security.interfaces' name 'DSAParams' 
    function getP(): JMBigInteger; overload;
    function getQ(): JMBigInteger; overload;
    function getG(): JMBigInteger; overload;
  end;

  JSIECKey = interface external 'java.security.interfaces' name 'ECKey' 
    function getParams(): JSSECParameterSpec; overload;
  end;

  JSIRSAKey = interface external 'java.security.interfaces' name 'RSAKey' 
    function getModulus(): JMBigInteger; overload;
  end;

  JSSAlgorithmParameterSpec = interface external 'java.security.spec' name 'AlgorithmParameterSpec' 
  end;

  JSSECField = interface external 'java.security.spec' name 'ECField' 
    function getFieldSize(): jint; overload;
  end;

  JSSECPoint = class external 'java.security.spec' name 'ECPoint' (JLObject)
  public
    final class var
      fPOINT_INFINITY: JSSECPoint; external name 'POINT_INFINITY';
  public
    constructor create(para1: JMBigInteger; para2: JMBigInteger); overload;
    function getAffineX(): JMBigInteger; overload; virtual;
    function getAffineY(): JMBigInteger; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JSSEllipticCurve = class external 'java.security.spec' name 'EllipticCurve' (JLObject)
  public
    constructor create(para1: JSSECField; para2: JMBigInteger; para3: JMBigInteger); overload;
    constructor create(para1: JSSECField; para2: JMBigInteger; para3: JMBigInteger; para4: Arr1jbyte); overload;
    constructor create(para1: JSSECField; para2: JMBigInteger; para3: JMBigInteger; const para4: array of jbyte); overload;
    function getField(): JSSECField; overload; virtual;
    function getA(): JMBigInteger; overload; virtual;
    function getB(): JMBigInteger; overload; virtual;
    function getSeed(): Arr1jbyte; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JSSKeySpec = interface external 'java.security.spec' name 'KeySpec' 
  end;

  JSSRSAOtherPrimeInfo = class external 'java.security.spec' name 'RSAOtherPrimeInfo' (JLObject)
  public
    constructor create(para1: JMBigInteger; para2: JMBigInteger; para3: JMBigInteger); overload;
    function getPrime(): JMBigInteger; overload; virtual; final;
    function getExponent(): JMBigInteger; overload; virtual; final;
    function getCrtCoefficient(): JMBigInteger; overload; virtual; final;
  end;

  JSArray = interface external 'java.sql' name 'Array' 
    function getBaseTypeName(): JLString; overload;  // throws java.sql.SQLException
    function getBaseType(): jint; overload;  // throws java.sql.SQLException
    function getArray(): JLObject; overload;  // throws java.sql.SQLException
    function getArray(para1: JUMap): JLObject; overload;  // throws java.sql.SQLException
    function getArray(para1: jlong; para2: jint): JLObject; overload;  // throws java.sql.SQLException
    function getArray(para1: jlong; para2: jint; para3: JUMap): JLObject; overload;  // throws java.sql.SQLException
    function getResultSet(): JSResultSet; overload;  // throws java.sql.SQLException
    function getResultSet(para1: JUMap): JSResultSet; overload;  // throws java.sql.SQLException
    function getResultSet(para1: jlong; para2: jint): JSResultSet; overload;  // throws java.sql.SQLException
    function getResultSet(para1: jlong; para2: jint; para3: JUMap): JSResultSet; overload;  // throws java.sql.SQLException
    procedure free(); overload;  // throws java.sql.SQLException
  end;

  JSBlob = interface external 'java.sql' name 'Blob' 
    function length(): jlong; overload;  // throws java.sql.SQLException
    function getBytes(para1: jlong; para2: jint): Arr1jbyte; overload;  // throws java.sql.SQLException
    function getBinaryStream(): JIInputStream; overload;  // throws java.sql.SQLException
    function position(para1: Arr1jbyte; para2: jlong): jlong; overload;  // throws java.sql.SQLException
    function position(var para1: array of jbyte; para2: jlong): jlong; overload;  // throws java.sql.SQLException
    function position(para1: JSBlob; para2: jlong): jlong; overload;  // throws java.sql.SQLException
    function setBytes(para1: jlong; para2: Arr1jbyte): jint; overload;  // throws java.sql.SQLException
    function setBytes(para1: jlong; var para2: array of jbyte): jint; overload;  // throws java.sql.SQLException
    function setBytes(para1: jlong; para2: Arr1jbyte; para3: jint; para4: jint): jint; overload;  // throws java.sql.SQLException
    function setBytes(para1: jlong; var para2: array of jbyte; para3: jint; para4: jint): jint; overload;  // throws java.sql.SQLException
    function setBinaryStream(para1: jlong): JIOutputStream; overload;  // throws java.sql.SQLException
    procedure truncate(para1: jlong); overload;  // throws java.sql.SQLException
    procedure free(); overload;  // throws java.sql.SQLException
    function getBinaryStream(para1: jlong; para2: jlong): JIInputStream; overload;  // throws java.sql.SQLException
  end;

  JSClob = interface external 'java.sql' name 'Clob' 
    function length(): jlong; overload;  // throws java.sql.SQLException
    function getSubString(para1: jlong; para2: jint): JLString; overload;  // throws java.sql.SQLException
    function getCharacterStream(): JIReader; overload;  // throws java.sql.SQLException
    function getAsciiStream(): JIInputStream; overload;  // throws java.sql.SQLException
    function position(para1: JLString; para2: jlong): jlong; overload;  // throws java.sql.SQLException
    function position(para1: JSClob; para2: jlong): jlong; overload;  // throws java.sql.SQLException
    function setString(para1: jlong; para2: JLString): jint; overload;  // throws java.sql.SQLException
    function setString(para1: jlong; para2: JLString; para3: jint; para4: jint): jint; overload;  // throws java.sql.SQLException
    function setAsciiStream(para1: jlong): JIOutputStream; overload;  // throws java.sql.SQLException
    function setCharacterStream(para1: jlong): JIWriter; overload;  // throws java.sql.SQLException
    procedure truncate(para1: jlong); overload;  // throws java.sql.SQLException
    procedure free(); overload;  // throws java.sql.SQLException
    function getCharacterStream(para1: jlong; para2: jlong): JIReader; overload;  // throws java.sql.SQLException
  end;

  JSDriver = interface external 'java.sql' name 'Driver' 
    function connect(para1: JLString; para2: JUProperties): JSConnection; overload;  // throws java.sql.SQLException
    function acceptsURL(para1: JLString): jboolean; overload;  // throws java.sql.SQLException
    function getPropertyInfo(para1: JLString; para2: JUProperties): Arr1JSDriverPropertyInfo; overload;  // throws java.sql.SQLException
    function getMajorVersion(): jint; overload;
    function getMinorVersion(): jint; overload;
    function jdbcCompliant(): jboolean; overload;
  end;

  JSDriverInfo = class external 'java.sql' name 'DriverInfo' (JLObject)
  public
    function toString(): JLString; overload; virtual;
  end;

  JSDriverManager = class external 'java.sql' name 'DriverManager' (JLObject)
  public
    class function getLogWriter(): JIPrintWriter; static; overload;
    class procedure setLogWriter(para1: JIPrintWriter); static; overload;
    class function getConnection(para1: JLString; para2: JUProperties): JSConnection; static; overload;  // throws java.sql.SQLException
    class function getConnection(para1: JLString; para2: JLString; para3: JLString): JSConnection; static; overload;  // throws java.sql.SQLException
    class function getConnection(para1: JLString): JSConnection; static; overload;  // throws java.sql.SQLException
    class function getDriver(para1: JLString): JSDriver; static; overload;  // throws java.sql.SQLException
    class procedure registerDriver(para1: JSDriver); static; overload;  // throws java.sql.SQLException
    class procedure deregisterDriver(para1: JSDriver); static; overload;  // throws java.sql.SQLException
    class function getDrivers(): JUEnumeration; static; overload;
    class procedure setLoginTimeout(para1: jint); static; overload;
    class function getLoginTimeout(): jint; static; overload;
    class procedure setLogStream(para1: JIPrintStream); static; overload;
    class function getLogStream(): JIPrintStream; static; overload;
    class procedure println(para1: JLString); static; overload;
  end;

  JSDriverPropertyInfo = class external 'java.sql' name 'DriverPropertyInfo' (JLObject)
  public
    var
      fname: JLString; external name 'name';
      fdescription: JLString; external name 'description';
      frequired: jboolean; external name 'required';
      fvalue: JLString; external name 'value';
      fchoices: Arr1JLString; external name 'choices';
  public
    constructor create(para1: JLString; para2: JLString); overload;
  end;

  JSRef = interface external 'java.sql' name 'Ref' 
    function getBaseTypeName(): JLString; overload;  // throws java.sql.SQLException
    function getObject(para1: JUMap): JLObject; overload;  // throws java.sql.SQLException
    function getObject(): JLObject; overload;  // throws java.sql.SQLException
    procedure setObject(para1: JLObject); overload;  // throws java.sql.SQLException
  end;

  JSRowId = interface external 'java.sql' name 'RowId' 
    function equals(para1: JLObject): jboolean; overload;
    function getBytes(): Arr1jbyte; overload;
    function toString(): JLString; overload;
    function hashCode(): jint; overload;
  end;

  JSSQLData = interface external 'java.sql' name 'SQLData' 
    function getSQLTypeName(): JLString; overload;  // throws java.sql.SQLException
    procedure readSQL(para1: JSSQLInput; para2: JLString); overload;  // throws java.sql.SQLException
    procedure writeSQL(para1: JSSQLOutput); overload;  // throws java.sql.SQLException
  end;

  JSSQLInput = interface external 'java.sql' name 'SQLInput' 
    function readString(): JLString; overload;  // throws java.sql.SQLException
    function readBoolean(): jboolean; overload;  // throws java.sql.SQLException
    function readByte(): jbyte; overload;  // throws java.sql.SQLException
    function readShort(): jshort; overload;  // throws java.sql.SQLException
    function readInt(): jint; overload;  // throws java.sql.SQLException
    function readLong(): jlong; overload;  // throws java.sql.SQLException
    function readFloat(): jfloat; overload;  // throws java.sql.SQLException
    function readDouble(): jdouble; overload;  // throws java.sql.SQLException
    function readBigDecimal(): JMBigDecimal; overload;  // throws java.sql.SQLException
    function readBytes(): Arr1jbyte; overload;  // throws java.sql.SQLException
    function readDate(): JSDate; overload;  // throws java.sql.SQLException
    function readTime(): JSTime; overload;  // throws java.sql.SQLException
    function readTimestamp(): JSqlTimestamp; overload;  // throws java.sql.SQLException
    function readCharacterStream(): JIReader; overload;  // throws java.sql.SQLException
    function readAsciiStream(): JIInputStream; overload;  // throws java.sql.SQLException
    function readBinaryStream(): JIInputStream; overload;  // throws java.sql.SQLException
    function readObject(): JLObject; overload;  // throws java.sql.SQLException
    function readRef(): JSRef; overload;  // throws java.sql.SQLException
    function readBlob(): JSBlob; overload;  // throws java.sql.SQLException
    function readClob(): JSClob; overload;  // throws java.sql.SQLException
    function readArray(): JSArray; overload;  // throws java.sql.SQLException
    function wasNull(): jboolean; overload;  // throws java.sql.SQLException
    function readURL(): JNURL; overload;  // throws java.sql.SQLException
    function readNClob(): JSNClob; overload;  // throws java.sql.SQLException
    function readNString(): JLString; overload;  // throws java.sql.SQLException
    function readSQLXML(): JSSQLXML; overload;  // throws java.sql.SQLException
    function readRowId(): JSRowId; overload;  // throws java.sql.SQLException
  end;

  JSSQLOutput = interface external 'java.sql' name 'SQLOutput' 
    procedure writeString(para1: JLString); overload;  // throws java.sql.SQLException
    procedure writeBoolean(para1: jboolean); overload;  // throws java.sql.SQLException
    procedure writeByte(para1: jbyte); overload;  // throws java.sql.SQLException
    procedure writeShort(para1: jshort); overload;  // throws java.sql.SQLException
    procedure writeInt(para1: jint); overload;  // throws java.sql.SQLException
    procedure writeLong(para1: jlong); overload;  // throws java.sql.SQLException
    procedure writeFloat(para1: jfloat); overload;  // throws java.sql.SQLException
    procedure writeDouble(para1: jdouble); overload;  // throws java.sql.SQLException
    procedure writeBigDecimal(para1: JMBigDecimal); overload;  // throws java.sql.SQLException
    procedure writeBytes(para1: Arr1jbyte); overload;  // throws java.sql.SQLException
    procedure writeBytes(var para1: array of jbyte); overload;  // throws java.sql.SQLException
    procedure writeDate(para1: JSDate); overload;  // throws java.sql.SQLException
    procedure writeTime(para1: JSTime); overload;  // throws java.sql.SQLException
    procedure writeTimestamp(para1: JSqlTimestamp); overload;  // throws java.sql.SQLException
    procedure writeCharacterStream(para1: JIReader); overload;  // throws java.sql.SQLException
    procedure writeAsciiStream(para1: JIInputStream); overload;  // throws java.sql.SQLException
    procedure writeBinaryStream(para1: JIInputStream); overload;  // throws java.sql.SQLException
    procedure writeObject(para1: JSSQLData); overload;  // throws java.sql.SQLException
    procedure writeRef(para1: JSRef); overload;  // throws java.sql.SQLException
    procedure writeBlob(para1: JSBlob); overload;  // throws java.sql.SQLException
    procedure writeClob(para1: JSClob); overload;  // throws java.sql.SQLException
    procedure writeStruct(para1: JSStruct); overload;  // throws java.sql.SQLException
    procedure writeArray(para1: JSArray); overload;  // throws java.sql.SQLException
    procedure writeURL(para1: JNURL); overload;  // throws java.sql.SQLException
    procedure writeNString(para1: JLString); overload;  // throws java.sql.SQLException
    procedure writeNClob(para1: JSNClob); overload;  // throws java.sql.SQLException
    procedure writeRowId(para1: JSRowId); overload;  // throws java.sql.SQLException
    procedure writeSQLXML(para1: JSSQLXML); overload;  // throws java.sql.SQLException
  end;

  JSSQLXML = interface external 'java.sql' name 'SQLXML' 
    procedure free(); overload;  // throws java.sql.SQLException
    function getBinaryStream(): JIInputStream; overload;  // throws java.sql.SQLException
    function setBinaryStream(): JIOutputStream; overload;  // throws java.sql.SQLException
    function getCharacterStream(): JIReader; overload;  // throws java.sql.SQLException
    function setCharacterStream(): JIWriter; overload;  // throws java.sql.SQLException
    function getString(): JLString; overload;  // throws java.sql.SQLException
    procedure setString(para1: JLString); overload;  // throws java.sql.SQLException
    function getSource(para1: JLClass): JXTSource; overload;  // throws java.sql.SQLException
    function setResult(para1: JLClass): JXTResult; overload;  // throws java.sql.SQLException
  end;

  JSSavepoint = interface external 'java.sql' name 'Savepoint' 
    function getSavepointId(): jint; overload;  // throws java.sql.SQLException
    function getSavepointName(): JLString; overload;  // throws java.sql.SQLException
  end;

  JSStruct = interface external 'java.sql' name 'Struct' 
    function getSQLTypeName(): JLString; overload;  // throws java.sql.SQLException
    function getAttributes(): Arr1JLObject; overload;  // throws java.sql.SQLException
    function getAttributes(para1: JUMap): Arr1JLObject; overload;  // throws java.sql.SQLException
  end;

  JSTypes = class external 'java.sql' name 'Types' (JLObject)
  public
    const
      BIT = -7;
      TINYINT = -6;
      SMALLINT = 5;
      INTEGER = 4;
      BIGINT = -5;
      FLOAT = 6;
      REAL = 7;
      DOUBLE = 8;
      NUMERIC = 2;
      DECIMAL = 3;
      CHAR = 1;
      VARCHAR = 12;
      LONGVARCHAR = -1;
      DATE = 91;
      TIME = 92;
      TIMESTAMP = 93;
      BINARY = -2;
      VARBINARY = -3;
      LONGVARBINARY = -4;
      NULL = 0;
      OTHER = 1111;
      JAVA_OBJECT = 2000;
      DISTINCT = 2001;
      STRUCT = 2002;
      &ARRAY = 2003;
      BLOB = 2004;
      CLOB = 2005;
      REF = 2006;
      DATALINK = 70;
      BOOLEAN = 16;
      ROWID = -8;
      NCHAR = -15;
      NVARCHAR = -9;
      LONGNVARCHAR = -16;
      NCLOB = 2011;
      SQLXML = 2009;
  end;

  JSWrapper = interface external 'java.sql' name 'Wrapper' 
    function unwrap(para1: JLClass): JLObject; overload;  // throws java.sql.SQLException
    function isWrapperFor(para1: JLClass): jboolean; overload;  // throws java.sql.SQLException
  end;

  JTAnnotation = class external 'java.text' name 'Annotation' (JLObject)
  public
    constructor create(para1: JLObject); overload;
    function getValue(): JLObject; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JTBidi = class sealed external 'java.text' name 'Bidi' (JLObject)
  public
    const
      DIRECTION_LEFT_TO_RIGHT = 0;
      DIRECTION_RIGHT_TO_LEFT = 1;
      DIRECTION_DEFAULT_LEFT_TO_RIGHT = -2;
      DIRECTION_DEFAULT_RIGHT_TO_LEFT = -1;
  public
    constructor create(para1: JLString; para2: jint); overload;
    constructor create(para1: JTAttributedCharacterIterator); overload;
    constructor create(para1: Arr1jchar; para2: jint; para3: Arr1jbyte; para4: jint; para5: jint; para6: jint); overload;
    constructor create(const para1: array of jchar; para2: jint; const para3: array of jbyte; para4: jint; para5: jint; para6: jint); overload;
    function createLineBidi(para1: jint; para2: jint): JTBidi; overload; virtual;
    function isMixed(): jboolean; overload; virtual;
    function isLeftToRight(): jboolean; overload; virtual;
    function isRightToLeft(): jboolean; overload; virtual;
    function getLength(): jint; overload; virtual;
    function baseIsLeftToRight(): jboolean; overload; virtual;
    function getBaseLevel(): jint; overload; virtual;
    function getLevelAt(para1: jint): jint; overload; virtual;
    function getRunCount(): jint; overload; virtual;
    function getRunLevel(para1: jint): jint; overload; virtual;
    function getRunStart(para1: jint): jint; overload; virtual;
    function getRunLimit(para1: jint): jint; overload; virtual;
    class function requiresBidi(para1: Arr1jchar; para2: jint; para3: jint): jboolean; static; overload;
    class function requiresBidi(var para1: array of jchar; para2: jint; para3: jint): jboolean; static; overload;
    class procedure reorderVisually(para1: Arr1jbyte; para2: jint; para3: Arr1JLObject; para4: jint; para5: jint); static; overload;
    class procedure reorderVisually(var para1: array of jbyte; para2: jint; var para3: array of JLObject; para4: jint; para5: jint); static; overload;
    function toString(): JLString; overload; virtual;
  end;

  JTBreakDictionary = class external 'java.text' name 'BreakDictionary' (JLObject)
  public
    constructor create(para1: JLString); overload;  // throws java.io.IOException, java.util.MissingResourceException
    function getNextStateFromCharacter(para1: jint; para2: jint): jshort; overload; virtual; final;
    function getNextState(para1: jint; para2: jint): jshort; overload; virtual; final;
  end;

  JTCollationElementIterator = class sealed external 'java.text' name 'CollationElementIterator' (JLObject)
  public
    const
      NULLORDER = -1;
  public
    procedure reset(); overload; virtual;
    function next(): jint; overload; virtual;
    function previous(): jint; overload; virtual;
    class function primaryOrder(para1: jint): jint; static; overload; final;
    class function secondaryOrder(para1: jint): jshort; static; overload; final;
    class function tertiaryOrder(para1: jint): jshort; static; overload; final;
    procedure setOffset(para1: jint); overload; virtual;
    function getOffset(): jint; overload; virtual;
    function getMaxExpansion(para1: jint): jint; overload; virtual;
    procedure setText(para1: JLString); overload; virtual;
    procedure setText(para1: JTCharacterIterator); overload; virtual;
  end;

  JTCollationRules = class sealed external 'java.text' name 'CollationRules' (JLObject)
  end;

  JTEntryPair = class sealed external 'java.text' name 'EntryPair' (JLObject)
  public
    var
      fentryName: JLString; external name 'entryName';
      fvalue: jint; external name 'value';
      ffwd: jboolean; external name 'fwd';
  public
    constructor create(para1: JLString; para2: jint); overload;
    constructor create(para1: JLString; para2: jint; para3: jboolean); overload;
  end;

  JTMergeCollation = class sealed external 'java.text' name 'MergeCollation' (JLObject)
  public
    constructor create(para1: JLString); overload;  // throws java.text.ParseException
    function getPattern(): JLString; overload; virtual;
    function getPattern(para1: jboolean): JLString; overload; virtual;
    function emitPattern(): JLString; overload; virtual;
    function emitPattern(para1: jboolean): JLString; overload; virtual;
    procedure setPattern(para1: JLString); overload; virtual;  // throws java.text.ParseException
    procedure addPattern(para1: JLString); overload; virtual;  // throws java.text.ParseException
    function getCount(): jint; overload; virtual;
    function getItemAt(para1: jint): JTPatternEntry; overload; virtual;
  end;

  JTParsePosition = class external 'java.text' name 'ParsePosition' (JLObject)
  public
    function getIndex(): jint; overload; virtual;
    procedure setIndex(para1: jint); overload; virtual;
    constructor create(para1: jint); overload;
    procedure setErrorIndex(para1: jint); overload; virtual;
    function getErrorIndex(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JTPatternEntry = class external 'java.text' name 'PatternEntry' (JLObject)
  public
    type
      InnerParser = class;
      Arr1InnerParser = array of InnerParser;
      Arr2InnerParser = array of Arr1InnerParser;
      Arr3InnerParser = array of Arr2InnerParser;
      InnerParser = class external 'java.text' name 'Parser' 
      end;

  public
    procedure appendQuotedExtension(para1: JLStringBuffer); overload; virtual;
    procedure appendQuotedChars(para1: JLStringBuffer); overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JTRBCollationTables = class sealed external 'java.text' name 'RBCollationTables' (JLObject)
  public
    type
      InnerBuildAPI = class;
      Arr1InnerBuildAPI = array of InnerBuildAPI;
      Arr2InnerBuildAPI = array of Arr1InnerBuildAPI;
      Arr3InnerBuildAPI = array of Arr2InnerBuildAPI;
      InnerBuildAPI = class sealed external 'java.text' name 'BuildAPI' 
      end;

  public
    constructor create(para1: JLString; para2: jint); overload;  // throws java.text.ParseException
    function getRules(): JLString; overload; virtual;
    function isFrenchSec(): jboolean; overload; virtual;
    function isSEAsianSwapping(): jboolean; overload; virtual;
  end;

  JUCollections = class external 'java.util' name 'Collections' (JLObject)
  public
    type
      InnerAsLIFOQueue = class;
      Arr1InnerAsLIFOQueue = array of InnerAsLIFOQueue;
      Arr2InnerAsLIFOQueue = array of Arr1InnerAsLIFOQueue;
      Arr3InnerAsLIFOQueue = array of Arr2InnerAsLIFOQueue;
      InnerCheckedCollection = class;
      Arr1InnerCheckedCollection = array of InnerCheckedCollection;
      Arr2InnerCheckedCollection = array of Arr1InnerCheckedCollection;
      Arr3InnerCheckedCollection = array of Arr2InnerCheckedCollection;
      InnerSynchronizedCollection = class;
      Arr1InnerSynchronizedCollection = array of InnerSynchronizedCollection;
      Arr2InnerSynchronizedCollection = array of Arr1InnerSynchronizedCollection;
      Arr3InnerSynchronizedCollection = array of Arr2InnerSynchronizedCollection;
      InnerUnmodifiableCollection = class;
      Arr1InnerUnmodifiableCollection = array of InnerUnmodifiableCollection;
      Arr2InnerUnmodifiableCollection = array of Arr1InnerUnmodifiableCollection;
      Arr3InnerUnmodifiableCollection = array of Arr2InnerUnmodifiableCollection;
      InnerCheckedList = class;
      Arr1InnerCheckedList = array of InnerCheckedList;
      Arr2InnerCheckedList = array of Arr1InnerCheckedList;
      Arr3InnerCheckedList = array of Arr2InnerCheckedList;
      InnerSynchronizedList = class;
      Arr1InnerSynchronizedList = array of InnerSynchronizedList;
      Arr2InnerSynchronizedList = array of Arr1InnerSynchronizedList;
      Arr3InnerSynchronizedList = array of Arr2InnerSynchronizedList;
      InnerUnmodifiableList = class;
      Arr1InnerUnmodifiableList = array of InnerUnmodifiableList;
      Arr2InnerUnmodifiableList = array of Arr1InnerUnmodifiableList;
      Arr3InnerUnmodifiableList = array of Arr2InnerUnmodifiableList;
      InnerCheckedMap = class;
      Arr1InnerCheckedMap = array of InnerCheckedMap;
      Arr2InnerCheckedMap = array of Arr1InnerCheckedMap;
      Arr3InnerCheckedMap = array of Arr2InnerCheckedMap;
      InnerSynchronizedMap = class;
      Arr1InnerSynchronizedMap = array of InnerSynchronizedMap;
      Arr2InnerSynchronizedMap = array of Arr1InnerSynchronizedMap;
      Arr3InnerSynchronizedMap = array of Arr2InnerSynchronizedMap;
      InnerUnmodifiableMap = class;
      Arr1InnerUnmodifiableMap = array of InnerUnmodifiableMap;
      Arr2InnerUnmodifiableMap = array of Arr1InnerUnmodifiableMap;
      Arr3InnerUnmodifiableMap = array of Arr2InnerUnmodifiableMap;
      InnerCheckedRandomAccessList = class;
      Arr1InnerCheckedRandomAccessList = array of InnerCheckedRandomAccessList;
      Arr2InnerCheckedRandomAccessList = array of Arr1InnerCheckedRandomAccessList;
      Arr3InnerCheckedRandomAccessList = array of Arr2InnerCheckedRandomAccessList;
      InnerSynchronizedRandomAccessList = class;
      Arr1InnerSynchronizedRandomAccessList = array of InnerSynchronizedRandomAccessList;
      Arr2InnerSynchronizedRandomAccessList = array of Arr1InnerSynchronizedRandomAccessList;
      Arr3InnerSynchronizedRandomAccessList = array of Arr2InnerSynchronizedRandomAccessList;
      InnerUnmodifiableRandomAccessList = class;
      Arr1InnerUnmodifiableRandomAccessList = array of InnerUnmodifiableRandomAccessList;
      Arr2InnerUnmodifiableRandomAccessList = array of Arr1InnerUnmodifiableRandomAccessList;
      Arr3InnerUnmodifiableRandomAccessList = array of Arr2InnerUnmodifiableRandomAccessList;
      InnerCheckedSet = class;
      Arr1InnerCheckedSet = array of InnerCheckedSet;
      Arr2InnerCheckedSet = array of Arr1InnerCheckedSet;
      Arr3InnerCheckedSet = array of Arr2InnerCheckedSet;
      InnerSynchronizedSet = class;
      Arr1InnerSynchronizedSet = array of InnerSynchronizedSet;
      Arr2InnerSynchronizedSet = array of Arr1InnerSynchronizedSet;
      Arr3InnerSynchronizedSet = array of Arr2InnerSynchronizedSet;
      InnerUnmodifiableSet = class;
      Arr1InnerUnmodifiableSet = array of InnerUnmodifiableSet;
      Arr2InnerUnmodifiableSet = array of Arr1InnerUnmodifiableSet;
      Arr3InnerUnmodifiableSet = array of Arr2InnerUnmodifiableSet;
      InnerCheckedSortedMap = class;
      Arr1InnerCheckedSortedMap = array of InnerCheckedSortedMap;
      Arr2InnerCheckedSortedMap = array of Arr1InnerCheckedSortedMap;
      Arr3InnerCheckedSortedMap = array of Arr2InnerCheckedSortedMap;
      InnerSynchronizedSortedMap = class;
      Arr1InnerSynchronizedSortedMap = array of InnerSynchronizedSortedMap;
      Arr2InnerSynchronizedSortedMap = array of Arr1InnerSynchronizedSortedMap;
      Arr3InnerSynchronizedSortedMap = array of Arr2InnerSynchronizedSortedMap;
      InnerUnmodifiableSortedMap = class;
      Arr1InnerUnmodifiableSortedMap = array of InnerUnmodifiableSortedMap;
      Arr2InnerUnmodifiableSortedMap = array of Arr1InnerUnmodifiableSortedMap;
      Arr3InnerUnmodifiableSortedMap = array of Arr2InnerUnmodifiableSortedMap;
      InnerCheckedSortedSet = class;
      Arr1InnerCheckedSortedSet = array of InnerCheckedSortedSet;
      Arr2InnerCheckedSortedSet = array of Arr1InnerCheckedSortedSet;
      Arr3InnerCheckedSortedSet = array of Arr2InnerCheckedSortedSet;
      InnerSynchronizedSortedSet = class;
      Arr1InnerSynchronizedSortedSet = array of InnerSynchronizedSortedSet;
      Arr2InnerSynchronizedSortedSet = array of Arr1InnerSynchronizedSortedSet;
      Arr3InnerSynchronizedSortedSet = array of Arr2InnerSynchronizedSortedSet;
      InnerUnmodifiableSortedSet = class;
      Arr1InnerUnmodifiableSortedSet = array of InnerUnmodifiableSortedSet;
      Arr2InnerUnmodifiableSortedSet = array of Arr1InnerUnmodifiableSortedSet;
      Arr3InnerUnmodifiableSortedSet = array of Arr2InnerUnmodifiableSortedSet;
      InnerCopiesList = class;
      Arr1InnerCopiesList = array of InnerCopiesList;
      Arr2InnerCopiesList = array of Arr1InnerCopiesList;
      Arr3InnerCopiesList = array of Arr2InnerCopiesList;
      InnerEmptyList = class;
      Arr1InnerEmptyList = array of InnerEmptyList;
      Arr2InnerEmptyList = array of Arr1InnerEmptyList;
      Arr3InnerEmptyList = array of Arr2InnerEmptyList;
      InnerSingletonList = class;
      Arr1InnerSingletonList = array of InnerSingletonList;
      Arr2InnerSingletonList = array of Arr1InnerSingletonList;
      Arr3InnerSingletonList = array of Arr2InnerSingletonList;
      InnerEmptyMap = class;
      Arr1InnerEmptyMap = array of InnerEmptyMap;
      Arr2InnerEmptyMap = array of Arr1InnerEmptyMap;
      Arr3InnerEmptyMap = array of Arr2InnerEmptyMap;
      InnerSingletonMap = class;
      Arr1InnerSingletonMap = array of InnerSingletonMap;
      Arr2InnerSingletonMap = array of Arr1InnerSingletonMap;
      Arr3InnerSingletonMap = array of Arr2InnerSingletonMap;
      InnerEmptySet = class;
      Arr1InnerEmptySet = array of InnerEmptySet;
      Arr2InnerEmptySet = array of Arr1InnerEmptySet;
      Arr3InnerEmptySet = array of Arr2InnerEmptySet;
      InnerSetFromMap = class;
      Arr1InnerSetFromMap = array of InnerSetFromMap;
      Arr2InnerSetFromMap = array of Arr1InnerSetFromMap;
      Arr3InnerSetFromMap = array of Arr2InnerSetFromMap;
      InnerSingletonSet = class;
      Arr1InnerSingletonSet = array of InnerSingletonSet;
      Arr2InnerSingletonSet = array of Arr1InnerSingletonSet;
      Arr3InnerSingletonSet = array of Arr2InnerSingletonSet;
      InnerReverseComparator = class;
      Arr1InnerReverseComparator = array of InnerReverseComparator;
      Arr2InnerReverseComparator = array of Arr1InnerReverseComparator;
      Arr3InnerReverseComparator = array of Arr2InnerReverseComparator;
      InnerReverseComparator2 = class;
      Arr1InnerReverseComparator2 = array of InnerReverseComparator2;
      Arr2InnerReverseComparator2 = array of Arr1InnerReverseComparator2;
      Arr3InnerReverseComparator2 = array of Arr2InnerReverseComparator2;
      InnerSelfComparable = interface;
      Arr1InnerSelfComparable = array of InnerSelfComparable;
      Arr2InnerSelfComparable = array of Arr1InnerSelfComparable;
      Arr3InnerSelfComparable = array of Arr2InnerSelfComparable;
      InnerAsLIFOQueue = class external 'java.util' name 'AsLIFOQueue' 
      end;

      InnerCheckedCollection = class external 'java.util' name 'CheckedCollection' 
      end;

      InnerSynchronizedCollection = class external 'java.util' name 'SynchronizedCollection' 
      end;

      InnerUnmodifiableCollection = class external 'java.util' name 'UnmodifiableCollection' 
      end;

      InnerCheckedList = class external 'java.util' name 'CheckedList' 
      end;

      InnerSynchronizedList = class external 'java.util' name 'SynchronizedList' 
      end;

      InnerUnmodifiableList = class external 'java.util' name 'UnmodifiableList' 
      end;

      InnerCheckedMap = class external 'java.util' name 'CheckedMap' 
      public
        type
          InnerCheckedEntrySet = class;
          Arr1InnerCheckedEntrySet = array of InnerCheckedEntrySet;
          Arr2InnerCheckedEntrySet = array of Arr1InnerCheckedEntrySet;
          Arr3InnerCheckedEntrySet = array of Arr2InnerCheckedEntrySet;
          InnerCheckedEntrySet = class external 'java.util' name 'CheckedEntrySet' 
          public
            type
              InnerCheckedEntry = class;
              Arr1InnerCheckedEntry = array of InnerCheckedEntry;
              Arr2InnerCheckedEntry = array of Arr1InnerCheckedEntry;
              Arr3InnerCheckedEntry = array of Arr2InnerCheckedEntry;
              InnerCheckedEntry = class external 'java.util' name 'CheckedEntry' 
              end;

          end;

      end;

      InnerSynchronizedMap = class external 'java.util' name 'SynchronizedMap' 
      end;

      InnerUnmodifiableMap = class external 'java.util' name 'UnmodifiableMap' 
      public
        type
          InnerUnmodifiableEntrySet = class;
          Arr1InnerUnmodifiableEntrySet = array of InnerUnmodifiableEntrySet;
          Arr2InnerUnmodifiableEntrySet = array of Arr1InnerUnmodifiableEntrySet;
          Arr3InnerUnmodifiableEntrySet = array of Arr2InnerUnmodifiableEntrySet;
          InnerUnmodifiableEntrySet = class external 'java.util' name 'UnmodifiableEntrySet' 
          public
            type
              InnerUnmodifiableEntry = class;
              Arr1InnerUnmodifiableEntry = array of InnerUnmodifiableEntry;
              Arr2InnerUnmodifiableEntry = array of Arr1InnerUnmodifiableEntry;
              Arr3InnerUnmodifiableEntry = array of Arr2InnerUnmodifiableEntry;
              InnerUnmodifiableEntry = class external 'java.util' name 'UnmodifiableEntry' 
              end;

          end;

      end;

      InnerCheckedRandomAccessList = class external 'java.util' name 'CheckedRandomAccessList' 
      end;

      InnerSynchronizedRandomAccessList = class external 'java.util' name 'SynchronizedRandomAccessList' 
      end;

      InnerUnmodifiableRandomAccessList = class external 'java.util' name 'UnmodifiableRandomAccessList' 
      end;

      InnerCheckedSet = class external 'java.util' name 'CheckedSet' 
      end;

      InnerSynchronizedSet = class external 'java.util' name 'SynchronizedSet' 
      end;

      InnerUnmodifiableSet = class external 'java.util' name 'UnmodifiableSet' 
      end;

      InnerCheckedSortedMap = class external 'java.util' name 'CheckedSortedMap' 
      end;

      InnerSynchronizedSortedMap = class external 'java.util' name 'SynchronizedSortedMap' 
      end;

      InnerUnmodifiableSortedMap = class external 'java.util' name 'UnmodifiableSortedMap' 
      end;

      InnerCheckedSortedSet = class external 'java.util' name 'CheckedSortedSet' 
      end;

      InnerSynchronizedSortedSet = class external 'java.util' name 'SynchronizedSortedSet' 
      end;

      InnerUnmodifiableSortedSet = class external 'java.util' name 'UnmodifiableSortedSet' 
      end;

      InnerCopiesList = class external 'java.util' name 'CopiesList' 
      end;

      InnerEmptyList = class external 'java.util' name 'EmptyList' 
      end;

      InnerSingletonList = class external 'java.util' name 'SingletonList' 
      end;

      InnerEmptyMap = class external 'java.util' name 'EmptyMap' 
      end;

      InnerSingletonMap = class external 'java.util' name 'SingletonMap' 
      end;

      InnerEmptySet = class external 'java.util' name 'EmptySet' 
      end;

      InnerSetFromMap = class external 'java.util' name 'SetFromMap' 
      end;

      InnerSingletonSet = class external 'java.util' name 'SingletonSet' 
      end;

      InnerReverseComparator = class external 'java.util' name 'ReverseComparator' 
      end;

      InnerReverseComparator2 = class external 'java.util' name 'ReverseComparator2' 
      end;

      InnerSelfComparable = interface external 'java.util' name 'SelfComparable' 
      end;

  public
    final class var
      fEMPTY_SET: JUSet; external name 'EMPTY_SET';
      fEMPTY_LIST: JUList; external name 'EMPTY_LIST';
      fEMPTY_MAP: JUMap; external name 'EMPTY_MAP';
  public
    class procedure sort(para1: JUList); static; overload;
    class procedure sort(para1: JUList; para2: JUComparator); static; overload;
    class function binarySearch(para1: JUList; para2: JLObject): jint; static; overload;
    class function binarySearch(para1: JUList; para2: JLObject; para3: JUComparator): jint; static; overload;
    class procedure reverse(para1: JUList); static; overload;
    class procedure shuffle(para1: JUList); static; overload;
    class procedure shuffle(para1: JUList; para2: JURandom); static; overload;
    class procedure swap(para1: JUList; para2: jint; para3: jint); static; overload;
    class procedure fill(para1: JUList; para2: JLObject); static; overload;
    class procedure copy(para1: JUList; para2: JUList); static; overload;
    class function min(para1: JUCollection): JLObject; static; overload;
    class function min(para1: JUCollection; para2: JUComparator): JLObject; static; overload;
    class function max(para1: JUCollection): JLObject; static; overload;
    class function max(para1: JUCollection; para2: JUComparator): JLObject; static; overload;
    class procedure rotate(para1: JUList; para2: jint); static; overload;
    class function replaceAll(para1: JUList; para2: JLObject; para3: JLObject): jboolean; static; overload;
    class function indexOfSubList(para1: JUList; para2: JUList): jint; static; overload;
    class function lastIndexOfSubList(para1: JUList; para2: JUList): jint; static; overload;
    class function unmodifiableCollection(para1: JUCollection): JUCollection; static; overload;
    class function unmodifiableSet(para1: JUSet): JUSet; static; overload;
    class function unmodifiableSortedSet(para1: JUSortedSet): JUSortedSet; static; overload;
    class function unmodifiableList(para1: JUList): JUList; static; overload;
    class function unmodifiableMap(para1: JUMap): JUMap; static; overload;
    class function unmodifiableSortedMap(para1: JUSortedMap): JUSortedMap; static; overload;
    class function synchronizedCollection(para1: JUCollection): JUCollection; static; overload;
    class function synchronizedSet(para1: JUSet): JUSet; static; overload;
    class function synchronizedSortedSet(para1: JUSortedSet): JUSortedSet; static; overload;
    class function synchronizedList(para1: JUList): JUList; static; overload;
    class function synchronizedMap(para1: JUMap): JUMap; static; overload;
    class function synchronizedSortedMap(para1: JUSortedMap): JUSortedMap; static; overload;
    class function checkedCollection(para1: JUCollection; para2: JLClass): JUCollection; static; overload;
    class function checkedSet(para1: JUSet; para2: JLClass): JUSet; static; overload;
    class function checkedSortedSet(para1: JUSortedSet; para2: JLClass): JUSortedSet; static; overload;
    class function checkedList(para1: JUList; para2: JLClass): JUList; static; overload;
    class function checkedMap(para1: JUMap; para2: JLClass; para3: JLClass): JUMap; static; overload;
    class function checkedSortedMap(para1: JUSortedMap; para2: JLClass; para3: JLClass): JUSortedMap; static; overload;
    class function emptySet(): JUSet; static; overload; final;
    class function emptyList(): JUList; static; overload; final;
    class function emptyMap(): JUMap; static; overload; final;
    class function singleton(para1: JLObject): JUSet; static; overload;
    class function singletonList(para1: JLObject): JUList; static; overload;
    class function singletonMap(para1: JLObject; para2: JLObject): JUMap; static; overload;
    class function nCopies(para1: jint; para2: JLObject): JUList; static; overload;
    class function reverseOrder(): JUComparator; static; overload;
    class function reverseOrder(para1: JUComparator): JUComparator; static; overload;
    class function enumeration(para1: JUCollection): JUEnumeration; static; overload;
    class function list(para1: JUEnumeration): JUArrayList; static; overload;
    class function frequency(para1: JUCollection; para2: JLObject): jint; static; overload;
    class function disjoint(para1: JUCollection; para2: JUCollection): jboolean; static; overload;
    class function addAll(para1: JUCollection; para2: Arr1JLObject): jboolean; static; overload;
    class function addAll(para1: JUCollection; const para2: array of JLObject): jboolean; static; overload;
    class function newSetFromMap(para1: JUMap): JUSet; static; overload;
    class function asLifoQueue(para1: JUDeque): JUQueue; static; overload;
  end;

  JUCurrencyData = class external 'java.util' name 'CurrencyData' (JLObject)
  end;

  JUDictionary = class abstract external 'java.util' name 'Dictionary' (JLObject)
  public
    constructor create(); overload;
    function size(): jint; overload; virtual; abstract;
    function isEmpty(): jboolean; overload; virtual; abstract;
    function keys(): JUEnumeration; overload; virtual; abstract;
    function elements(): JUEnumeration; overload; virtual; abstract;
    function get(para1: JLObject): JLObject; overload; virtual; abstract;
    function put(para1: JLObject; para2: JLObject): JLObject; overload; virtual; abstract;
    function remove(para1: JLObject): JLObject; overload; virtual; abstract;
  end;

  JUEnumeration = interface external 'java.util' name 'Enumeration' 
    function hasMoreElements(): jboolean; overload;
    function nextElement(): JLObject; overload;
  end;

  JUEventListener = interface external 'java.util' name 'EventListener' 
  end;

  JUFormattable = interface external 'java.util' name 'Formattable' 
    procedure formatTo(para1: JUFormatter; para2: jint; para3: jint; para4: jint); overload;
  end;

  JUFormattableFlags = class external 'java.util' name 'FormattableFlags' (JLObject)
  public
    const
      LEFT_JUSTIFY = 1;
      UPPERCASE = 2;
      ALTERNATE = 4;
  end;

  JULocaleISOData = class external 'java.util' name 'LocaleISOData' (JLObject)
  end;

  JUObservable = class external 'java.util' name 'Observable' (JLObject)
  public
    constructor create(); overload;
    procedure addObserver(para1: JUObserver); overload; virtual;
    procedure deleteObserver(para1: JUObserver); overload; virtual;
    procedure notifyObservers(); overload; virtual;
    procedure notifyObservers(para1: JLObject); overload; virtual;
    procedure deleteObservers(); overload; virtual;
  strict protected
    procedure setChanged(); overload; virtual;
    procedure clearChanged(); overload; virtual;
  public
    function hasChanged(): jboolean; overload; virtual;
    function countObservers(): jint; overload; virtual;
  end;

  JUObserver = interface external 'java.util' name 'Observer' 
    procedure update(para1: JUObservable; para2: JLObject); overload;
  end;

  JURandomAccess = interface external 'java.util' name 'RandomAccess' 
  end;

  JUResourceBundle = class abstract external 'java.util' name 'ResourceBundle' (JLObject)
  public
    type
      InnerBundleReference = class;
      Arr1InnerBundleReference = array of InnerBundleReference;
      Arr2InnerBundleReference = array of Arr1InnerBundleReference;
      Arr3InnerBundleReference = array of Arr2InnerBundleReference;
      InnerNoFallbackControl = class;
      Arr1InnerNoFallbackControl = array of InnerNoFallbackControl;
      Arr2InnerNoFallbackControl = array of Arr1InnerNoFallbackControl;
      Arr3InnerNoFallbackControl = array of Arr2InnerNoFallbackControl;
      InnerSingleFormatControl = class;
      Arr1InnerSingleFormatControl = array of InnerSingleFormatControl;
      Arr2InnerSingleFormatControl = array of Arr1InnerSingleFormatControl;
      Arr3InnerSingleFormatControl = array of Arr2InnerSingleFormatControl;
      InnerCacheKeyReference = interface;
      Arr1InnerCacheKeyReference = array of InnerCacheKeyReference;
      Arr2InnerCacheKeyReference = array of Arr1InnerCacheKeyReference;
      Arr3InnerCacheKeyReference = array of Arr2InnerCacheKeyReference;
      InnerCacheKey = class;
      Arr1InnerCacheKey = array of InnerCacheKey;
      Arr2InnerCacheKey = array of Arr1InnerCacheKey;
      Arr3InnerCacheKey = array of Arr2InnerCacheKey;
      InnerLoaderReference = class;
      Arr1InnerLoaderReference = array of InnerLoaderReference;
      Arr2InnerLoaderReference = array of Arr1InnerLoaderReference;
      Arr3InnerLoaderReference = array of Arr2InnerLoaderReference;
      InnerRBClassLoader = class;
      Arr1InnerRBClassLoader = array of InnerRBClassLoader;
      Arr2InnerRBClassLoader = array of Arr1InnerRBClassLoader;
      Arr3InnerRBClassLoader = array of Arr2InnerRBClassLoader;
      InnerBundleReference = class sealed external 'java.util' name 'BundleReference' 
      end;

      InnerNoFallbackControl = class sealed external 'java.util' name 'NoFallbackControl' 
      end;

      InnerSingleFormatControl = class external 'java.util' name 'SingleFormatControl' 
      end;

      InnerCacheKeyReference = interface external 'java.util' name 'CacheKeyReference' 
      end;

      InnerCacheKey = class sealed external 'java.util' name 'CacheKey' 
      end;

      InnerLoaderReference = class sealed external 'java.util' name 'LoaderReference' 
      end;

      InnerRBClassLoader = class external 'java.util' name 'RBClassLoader' 
      end;

  public
    type
      InnerControl = class;
      Arr1InnerControl = array of InnerControl;
      Arr2InnerControl = array of Arr1InnerControl;
      Arr3InnerControl = array of Arr2InnerControl;
      InnerControl = class external 'java.util' name 'Control' (JLObject)
      public
        final class var
          fFORMAT_DEFAULT: JUList; external name 'FORMAT_DEFAULT';
          fFORMAT_CLASS: JUList; external name 'FORMAT_CLASS';
          fFORMAT_PROPERTIES: JUList; external name 'FORMAT_PROPERTIES';
      public
        const
          TTL_DONT_CACHE = jlong(-1);
          TTL_NO_EXPIRATION_CONTROL = jlong(-2);
      strict protected
        constructor create(); overload;
      public
        class function getControl(para1: JUList): JUResourceBundle.InnerControl; static; overload; final;
        class function getNoFallbackControl(para1: JUList): JUResourceBundle.InnerControl; static; overload; final;
        function getFormats(para1: JLString): JUList; overload; virtual;
        function getCandidateLocales(para1: JLString; para2: JULocale): JUList; overload; virtual;
        function getFallbackLocale(para1: JLString; para2: JULocale): JULocale; overload; virtual;
        function newBundle(para1: JLString; para2: JULocale; para3: JLString; para4: JLClassLoader; para5: jboolean): JUResourceBundle; overload; virtual;  // throws java.lang.IllegalAccessException, java.lang.InstantiationException, java.io.IOException
        function getTimeToLive(para1: JLString; para2: JULocale): jlong; overload; virtual;
        function needsReload(para1: JLString; para2: JULocale; para3: JLString; para4: JLClassLoader; para5: JUResourceBundle; para6: jlong): jboolean; overload; virtual;
        function toBundleName(para1: JLString; para2: JULocale): JLString; overload; virtual;
        function toResourceName(para1: JLString; para2: JLString): JLString; overload; virtual; final;
      end;

  strict protected
    var
      fparent: JUResourceBundle; external name 'parent';
  public
    constructor create(); overload;
    function getString(para1: JLString): JLString; overload; virtual; final;
    function getStringArray(para1: JLString): Arr1JLString; overload; virtual; final;
    function getObject(para1: JLString): JLObject; overload; virtual; final;
    function getLocale(): JULocale; overload; virtual;
  strict protected
    procedure setParent(para1: JUResourceBundle); overload; virtual;
  public
    class function getBundle(para1: JLString): JUResourceBundle; static; overload; final;
    class function getBundle(para1: JLString; para2: JUResourceBundle.InnerControl): JUResourceBundle; static; overload; final;
    class function getBundle(para1: JLString; para2: JULocale): JUResourceBundle; static; overload; final;
    class function getBundle(para1: JLString; para2: JULocale; para3: JUResourceBundle.InnerControl): JUResourceBundle; static; overload; final;
    class function getBundle(para1: JLString; para2: JULocale; para3: JLClassLoader): JUResourceBundle; static; overload;
    class function getBundle(para1: JLString; para2: JULocale; para3: JLClassLoader; para4: JUResourceBundle.InnerControl): JUResourceBundle; static; overload;
    class procedure clearCache(); static; overload; final;
    class procedure clearCache(para1: JLClassLoader); static; overload; final;
  strict protected
    function handleGetObject(para1: JLString): JLObject; overload; virtual; abstract;
  public
    function getKeys(): JUEnumeration; overload; virtual; abstract;
    function containsKey(para1: JLString): jboolean; overload; virtual;
    function keySet(): JUSet; overload; virtual;
  strict protected
    function handleKeySet(): JUSet; overload; virtual;
  end;

  JUTaskQueue = class external 'java.util' name 'TaskQueue' (JLObject)
  end;

  JUTimer = class external 'java.util' name 'Timer' (JLObject)
  public
    constructor create(); overload;
    constructor create(para1: jboolean); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: jboolean); overload;
    procedure schedule(para1: JUTimerTask; para2: jlong); overload; virtual;
    procedure schedule(para1: JUTimerTask; para2: JUDate); overload; virtual;
    procedure schedule(para1: JUTimerTask; para2: jlong; para3: jlong); overload; virtual;
    procedure schedule(para1: JUTimerTask; para2: JUDate; para3: jlong); overload; virtual;
    procedure scheduleAtFixedRate(para1: JUTimerTask; para2: jlong; para3: jlong); overload; virtual;
    procedure scheduleAtFixedRate(para1: JUTimerTask; para2: JUDate; para3: jlong); overload; virtual;
    procedure cancel(); overload; virtual;
    function purge(): jint; overload; virtual;
  end;

  JUXMLUtils = class external 'java.util' name 'XMLUtils' (JLObject)
  public
    type
      InnerEH = class;
      Arr1InnerEH = array of InnerEH;
      Arr2InnerEH = array of Arr1InnerEH;
      Arr3InnerEH = array of Arr2InnerEH;
      InnerResolver = class;
      Arr1InnerResolver = array of InnerResolver;
      Arr2InnerResolver = array of Arr1InnerResolver;
      Arr3InnerResolver = array of Arr2InnerResolver;
      InnerEH = class external 'java.util' name 'EH' 
      end;

      InnerResolver = class external 'java.util' name 'Resolver' 
      end;

  end;

  JUCCallable = interface external 'java.util.concurrent' name 'Callable' 
    function call(): JLObject; overload;  // throws java.lang.Exception
  end;

  JUCCompletionService = interface external 'java.util.concurrent' name 'CompletionService' 
    function submit(para1: JUCCallable): JUCFuture; overload;
    function submit(para1: JLRunnable; para2: JLObject): JUCFuture; overload;
    function take(): JUCFuture; overload;  // throws java.lang.InterruptedException
    function poll(): JUCFuture; overload;
    function poll(para1: jlong; para2: JUCTimeUnit): JUCFuture; overload;  // throws java.lang.InterruptedException
  end;

  JUCCountDownLatch = class external 'java.util.concurrent' name 'CountDownLatch' (JLObject)
  public
    type
      InnerSync = class;
      Arr1InnerSync = array of InnerSync;
      Arr2InnerSync = array of Arr1InnerSync;
      Arr3InnerSync = array of Arr2InnerSync;
      InnerSync = class sealed external 'java.util.concurrent' name 'Sync' 
      end;

  public
    constructor create(para1: jint); overload;
    procedure await(); overload; virtual;  // throws java.lang.InterruptedException
    function await(para1: jlong; para2: JUCTimeUnit): jboolean; overload; virtual;  // throws java.lang.InterruptedException
    procedure countDown(); overload; virtual;
    function getCount(): jlong; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JUCCyclicBarrier = class external 'java.util.concurrent' name 'CyclicBarrier' (JLObject)
  public
    type
      InnerGeneration = class;
      Arr1InnerGeneration = array of InnerGeneration;
      Arr2InnerGeneration = array of Arr1InnerGeneration;
      Arr3InnerGeneration = array of Arr2InnerGeneration;
      InnerGeneration = class external 'java.util.concurrent' name 'Generation' 
      end;

  public
    constructor create(para1: jint; para2: JLRunnable); overload;
    constructor create(para1: jint); overload;
    function getParties(): jint; overload; virtual;
    function await(): jint; overload; virtual;  // throws java.lang.InterruptedException, java.util.concurrent.BrokenBarrierException
    function await(para1: jlong; para2: JUCTimeUnit): jint; overload; virtual;  // throws java.lang.InterruptedException, java.util.concurrent.BrokenBarrierException, java.util.concurrent.TimeoutException
    function isBroken(): jboolean; overload; virtual;
    procedure reset(); overload; virtual;
    function getNumberWaiting(): jint; overload; virtual;
  end;

  JUCExchanger = class external 'java.util.concurrent' name 'Exchanger' (JLObject)
  public
    type
      InnerNode = class;
      Arr1InnerNode = array of InnerNode;
      Arr2InnerNode = array of Arr1InnerNode;
      Arr3InnerNode = array of Arr2InnerNode;
      InnerSlot = class;
      Arr1InnerSlot = array of InnerSlot;
      Arr2InnerSlot = array of Arr1InnerSlot;
      Arr3InnerSlot = array of Arr2InnerSlot;
      InnerNode = class sealed external 'java.util.concurrent' name 'Node' 
      end;

      InnerSlot = class sealed external 'java.util.concurrent' name 'Slot' 
      end;

  public
    constructor create(); overload;
    function exchange(para1: JLObject): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function exchange(para1: JLObject; para2: jlong; para3: JUCTimeUnit): JLObject; overload; virtual;  // throws java.lang.InterruptedException, java.util.concurrent.TimeoutException
  end;

  JUCExecutor = interface external 'java.util.concurrent' name 'Executor' 
    procedure execute(para1: JLRunnable); overload;
  end;

  JUCExecutors = class external 'java.util.concurrent' name 'Executors' (JLObject)
  public
    type
      InnerDefaultThreadFactory = class;
      Arr1InnerDefaultThreadFactory = array of InnerDefaultThreadFactory;
      Arr2InnerDefaultThreadFactory = array of Arr1InnerDefaultThreadFactory;
      Arr3InnerDefaultThreadFactory = array of Arr2InnerDefaultThreadFactory;
      InnerDelegatedExecutorService = class;
      Arr1InnerDelegatedExecutorService = array of InnerDelegatedExecutorService;
      Arr2InnerDelegatedExecutorService = array of Arr1InnerDelegatedExecutorService;
      Arr3InnerDelegatedExecutorService = array of Arr2InnerDelegatedExecutorService;
      InnerDelegatedScheduledExecutorService = class;
      Arr1InnerDelegatedScheduledExecutorService = array of InnerDelegatedScheduledExecutorService;
      Arr2InnerDelegatedScheduledExecutorService = array of Arr1InnerDelegatedScheduledExecutorService;
      Arr3InnerDelegatedScheduledExecutorService = array of Arr2InnerDelegatedScheduledExecutorService;
      InnerFinalizableDelegatedExecutorService = class;
      Arr1InnerFinalizableDelegatedExecutorService = array of InnerFinalizableDelegatedExecutorService;
      Arr2InnerFinalizableDelegatedExecutorService = array of Arr1InnerFinalizableDelegatedExecutorService;
      Arr3InnerFinalizableDelegatedExecutorService = array of Arr2InnerFinalizableDelegatedExecutorService;
      InnerPrivilegedThreadFactory = class;
      Arr1InnerPrivilegedThreadFactory = array of InnerPrivilegedThreadFactory;
      Arr2InnerPrivilegedThreadFactory = array of Arr1InnerPrivilegedThreadFactory;
      Arr3InnerPrivilegedThreadFactory = array of Arr2InnerPrivilegedThreadFactory;
      InnerPrivilegedCallable = class;
      Arr1InnerPrivilegedCallable = array of InnerPrivilegedCallable;
      Arr2InnerPrivilegedCallable = array of Arr1InnerPrivilegedCallable;
      Arr3InnerPrivilegedCallable = array of Arr2InnerPrivilegedCallable;
      InnerPrivilegedCallableUsingCurrentClassLoader = class;
      Arr1InnerPrivilegedCallableUsingCurrentClassLoader = array of InnerPrivilegedCallableUsingCurrentClassLoader;
      Arr2InnerPrivilegedCallableUsingCurrentClassLoader = array of Arr1InnerPrivilegedCallableUsingCurrentClassLoader;
      Arr3InnerPrivilegedCallableUsingCurrentClassLoader = array of Arr2InnerPrivilegedCallableUsingCurrentClassLoader;
      InnerRunnableAdapter = class;
      Arr1InnerRunnableAdapter = array of InnerRunnableAdapter;
      Arr2InnerRunnableAdapter = array of Arr1InnerRunnableAdapter;
      Arr3InnerRunnableAdapter = array of Arr2InnerRunnableAdapter;
      InnerDefaultThreadFactory = class external 'java.util.concurrent' name 'DefaultThreadFactory' 
      end;

      InnerDelegatedExecutorService = class external 'java.util.concurrent' name 'DelegatedExecutorService' 
      end;

      InnerDelegatedScheduledExecutorService = class external 'java.util.concurrent' name 'DelegatedScheduledExecutorService' 
      end;

      InnerFinalizableDelegatedExecutorService = class external 'java.util.concurrent' name 'FinalizableDelegatedExecutorService' 
      end;

      InnerPrivilegedThreadFactory = class external 'java.util.concurrent' name 'PrivilegedThreadFactory' 
      end;

      InnerPrivilegedCallable = class sealed external 'java.util.concurrent' name 'PrivilegedCallable' 
      end;

      InnerPrivilegedCallableUsingCurrentClassLoader = class sealed external 'java.util.concurrent' name 'PrivilegedCallableUsingCurrentClassLoader' 
      end;

      InnerRunnableAdapter = class sealed external 'java.util.concurrent' name 'RunnableAdapter' 
      end;

  public
    class function newFixedThreadPool(para1: jint): JUCExecutorService; static; overload;
    class function newFixedThreadPool(para1: jint; para2: JUCThreadFactory): JUCExecutorService; static; overload;
    class function newSingleThreadExecutor(): JUCExecutorService; static; overload;
    class function newSingleThreadExecutor(para1: JUCThreadFactory): JUCExecutorService; static; overload;
    class function newCachedThreadPool(): JUCExecutorService; static; overload;
    class function newCachedThreadPool(para1: JUCThreadFactory): JUCExecutorService; static; overload;
    class function newSingleThreadScheduledExecutor(): JUCScheduledExecutorService; static; overload;
    class function newSingleThreadScheduledExecutor(para1: JUCThreadFactory): JUCScheduledExecutorService; static; overload;
    class function newScheduledThreadPool(para1: jint): JUCScheduledExecutorService; static; overload;
    class function newScheduledThreadPool(para1: jint; para2: JUCThreadFactory): JUCScheduledExecutorService; static; overload;
    class function unconfigurableExecutorService(para1: JUCExecutorService): JUCExecutorService; static; overload;
    class function unconfigurableScheduledExecutorService(para1: JUCScheduledExecutorService): JUCScheduledExecutorService; static; overload;
    class function defaultThreadFactory(): JUCThreadFactory; static; overload;
    class function privilegedThreadFactory(): JUCThreadFactory; static; overload;
    class function callable(para1: JLRunnable; para2: JLObject): JUCCallable; static; overload;
    class function callable(para1: JLRunnable): JUCCallable; static; overload;
    class function callable(para1: JSPrivilegedAction): JUCCallable; static; overload;
    class function callable(para1: JSPrivilegedExceptionAction): JUCCallable; static; overload;
    class function privilegedCallable(para1: JUCCallable): JUCCallable; static; overload;
    class function privilegedCallableUsingCurrentClassLoader(para1: JUCCallable): JUCCallable; static; overload;
  end;

  JUCFuture = interface external 'java.util.concurrent' name 'Future' 
    function cancel(para1: jboolean): jboolean; overload;
    function isCancelled(): jboolean; overload;
    function isDone(): jboolean; overload;
    function get(): JLObject; overload;  // throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
    function get(para1: jlong; para2: JUCTimeUnit): JLObject; overload;  // throws java.lang.InterruptedException, java.util.concurrent.ExecutionException, java.util.concurrent.TimeoutException
  end;

  JUCRejectedExecutionHandler = interface external 'java.util.concurrent' name 'RejectedExecutionHandler' 
    procedure rejectedExecution(para1: JLRunnable; para2: JUCThreadPoolExecutor); overload;
  end;

  JUCThreadFactory = interface external 'java.util.concurrent' name 'ThreadFactory' 
    function newThread(para1: JLRunnable): JLThread; overload;
  end;

  JUCAAtomicIntegerFieldUpdater = class abstract external 'java.util.concurrent.atomic' name 'AtomicIntegerFieldUpdater' (JLObject)
  public
    type
      InnerAtomicIntegerFieldUpdaterImpl = class;
      Arr1InnerAtomicIntegerFieldUpdaterImpl = array of InnerAtomicIntegerFieldUpdaterImpl;
      Arr2InnerAtomicIntegerFieldUpdaterImpl = array of Arr1InnerAtomicIntegerFieldUpdaterImpl;
      Arr3InnerAtomicIntegerFieldUpdaterImpl = array of Arr2InnerAtomicIntegerFieldUpdaterImpl;
      InnerAtomicIntegerFieldUpdaterImpl = class external 'java.util.concurrent.atomic' name 'AtomicIntegerFieldUpdaterImpl' 
      end;

  public
    class function newUpdater(para1: JLClass; para2: JLString): JUCAAtomicIntegerFieldUpdater; static; overload;
  strict protected
    constructor create(); overload;
  public
    function compareAndSet(para1: JLObject; para2: jint; para3: jint): jboolean; overload; virtual; abstract;
    function weakCompareAndSet(para1: JLObject; para2: jint; para3: jint): jboolean; overload; virtual; abstract;
    procedure &set(para1: JLObject; para2: jint); overload; virtual; abstract;
    procedure lazySet(para1: JLObject; para2: jint); overload; virtual; abstract;
    function get(para1: JLObject): jint; overload; virtual; abstract;
    function getAndSet(para1: JLObject; para2: jint): jint; overload; virtual;
    function getAndIncrement(para1: JLObject): jint; overload; virtual;
    function getAndDecrement(para1: JLObject): jint; overload; virtual;
    function getAndAdd(para1: JLObject; para2: jint): jint; overload; virtual;
    function incrementAndGet(para1: JLObject): jint; overload; virtual;
    function decrementAndGet(para1: JLObject): jint; overload; virtual;
    function addAndGet(para1: JLObject; para2: jint): jint; overload; virtual;
  end;

  JUCAAtomicLongFieldUpdater = class abstract external 'java.util.concurrent.atomic' name 'AtomicLongFieldUpdater' (JLObject)
  public
    type
      InnerCASUpdater = class;
      Arr1InnerCASUpdater = array of InnerCASUpdater;
      Arr2InnerCASUpdater = array of Arr1InnerCASUpdater;
      Arr3InnerCASUpdater = array of Arr2InnerCASUpdater;
      InnerLockedUpdater = class;
      Arr1InnerLockedUpdater = array of InnerLockedUpdater;
      Arr2InnerLockedUpdater = array of Arr1InnerLockedUpdater;
      Arr3InnerLockedUpdater = array of Arr2InnerLockedUpdater;
      InnerCASUpdater = class external 'java.util.concurrent.atomic' name 'CASUpdater' 
      end;

      InnerLockedUpdater = class external 'java.util.concurrent.atomic' name 'LockedUpdater' 
      end;

  public
    class function newUpdater(para1: JLClass; para2: JLString): JUCAAtomicLongFieldUpdater; static; overload;
  strict protected
    constructor create(); overload;
  public
    function compareAndSet(para1: JLObject; para2: jlong; para3: jlong): jboolean; overload; virtual; abstract;
    function weakCompareAndSet(para1: JLObject; para2: jlong; para3: jlong): jboolean; overload; virtual; abstract;
    procedure &set(para1: JLObject; para2: jlong); overload; virtual; abstract;
    procedure lazySet(para1: JLObject; para2: jlong); overload; virtual; abstract;
    function get(para1: JLObject): jlong; overload; virtual; abstract;
    function getAndSet(para1: JLObject; para2: jlong): jlong; overload; virtual;
    function getAndIncrement(para1: JLObject): jlong; overload; virtual;
    function getAndDecrement(para1: JLObject): jlong; overload; virtual;
    function getAndAdd(para1: JLObject; para2: jlong): jlong; overload; virtual;
    function incrementAndGet(para1: JLObject): jlong; overload; virtual;
    function decrementAndGet(para1: JLObject): jlong; overload; virtual;
    function addAndGet(para1: JLObject; para2: jlong): jlong; overload; virtual;
  end;

  JUCAAtomicMarkableReference = class external 'java.util.concurrent.atomic' name 'AtomicMarkableReference' (JLObject)
  public
    type
      InnerReferenceBooleanPair = class;
      Arr1InnerReferenceBooleanPair = array of InnerReferenceBooleanPair;
      Arr2InnerReferenceBooleanPair = array of Arr1InnerReferenceBooleanPair;
      Arr3InnerReferenceBooleanPair = array of Arr2InnerReferenceBooleanPair;
      InnerReferenceBooleanPair = class external 'java.util.concurrent.atomic' name 'ReferenceBooleanPair' 
      end;

  public
    constructor create(para1: JLObject; para2: jboolean); overload;
    function getReference(): JLObject; overload; virtual;
    function isMarked(): jboolean; overload; virtual;
    function get(para1: Arr1jboolean): JLObject; overload; virtual;
    function get(var para1: array of jboolean): JLObject; overload; virtual;
    function weakCompareAndSet(para1: JLObject; para2: JLObject; para3: jboolean; para4: jboolean): jboolean; overload; virtual;
    function compareAndSet(para1: JLObject; para2: JLObject; para3: jboolean; para4: jboolean): jboolean; overload; virtual;
    procedure &set(para1: JLObject; para2: jboolean); overload; virtual;
    function attemptMark(para1: JLObject; para2: jboolean): jboolean; overload; virtual;
  end;

  JUCAAtomicReferenceFieldUpdater = class abstract external 'java.util.concurrent.atomic' name 'AtomicReferenceFieldUpdater' (JLObject)
  public
    type
      InnerAtomicReferenceFieldUpdaterImpl = class;
      Arr1InnerAtomicReferenceFieldUpdaterImpl = array of InnerAtomicReferenceFieldUpdaterImpl;
      Arr2InnerAtomicReferenceFieldUpdaterImpl = array of Arr1InnerAtomicReferenceFieldUpdaterImpl;
      Arr3InnerAtomicReferenceFieldUpdaterImpl = array of Arr2InnerAtomicReferenceFieldUpdaterImpl;
      InnerAtomicReferenceFieldUpdaterImpl = class sealed external 'java.util.concurrent.atomic' name 'AtomicReferenceFieldUpdaterImpl' 
      end;

  public
    class function newUpdater(para1: JLClass; para2: JLClass; para3: JLString): JUCAAtomicReferenceFieldUpdater; static; overload;
  strict protected
    constructor create(); overload;
  public
    function compareAndSet(para1: JLObject; para2: JLObject; para3: JLObject): jboolean; overload; virtual; abstract;
    function weakCompareAndSet(para1: JLObject; para2: JLObject; para3: JLObject): jboolean; overload; virtual; abstract;
    procedure &set(para1: JLObject; para2: JLObject); overload; virtual; abstract;
    procedure lazySet(para1: JLObject; para2: JLObject); overload; virtual; abstract;
    function get(para1: JLObject): JLObject; overload; virtual; abstract;
    function getAndSet(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
  end;

  JUCAAtomicStampedReference = class external 'java.util.concurrent.atomic' name 'AtomicStampedReference' (JLObject)
  public
    type
      InnerReferenceIntegerPair = class;
      Arr1InnerReferenceIntegerPair = array of InnerReferenceIntegerPair;
      Arr2InnerReferenceIntegerPair = array of Arr1InnerReferenceIntegerPair;
      Arr3InnerReferenceIntegerPair = array of Arr2InnerReferenceIntegerPair;
      InnerReferenceIntegerPair = class external 'java.util.concurrent.atomic' name 'ReferenceIntegerPair' 
      end;

  public
    constructor create(para1: JLObject; para2: jint); overload;
    function getReference(): JLObject; overload; virtual;
    function getStamp(): jint; overload; virtual;
    function get(para1: Arr1jint): JLObject; overload; virtual;
    function get(var para1: array of jint): JLObject; overload; virtual;
    function weakCompareAndSet(para1: JLObject; para2: JLObject; para3: jint; para4: jint): jboolean; overload; virtual;
    function compareAndSet(para1: JLObject; para2: JLObject; para3: jint; para4: jint): jboolean; overload; virtual;
    procedure &set(para1: JLObject; para2: jint); overload; virtual;
    function attemptStamp(para1: JLObject; para2: jint): jboolean; overload; virtual;
  end;

  JUCLCondition = interface external 'java.util.concurrent.locks' name 'Condition' 
    procedure await(); overload;  // throws java.lang.InterruptedException
    procedure awaitUninterruptibly(); overload;
    function awaitNanos(para1: jlong): jlong; overload;  // throws java.lang.InterruptedException
    function await(para1: jlong; para2: JUCTimeUnit): jboolean; overload;  // throws java.lang.InterruptedException
    function awaitUntil(para1: JUDate): jboolean; overload;  // throws java.lang.InterruptedException
    procedure signal(); overload;
    procedure signalAll(); overload;
  end;

  JUCLLock = interface external 'java.util.concurrent.locks' name 'Lock' 
    procedure lock(); overload;
    procedure lockInterruptibly(); overload;  // throws java.lang.InterruptedException
    function tryLock(): jboolean; overload;
    function tryLock(para1: jlong; para2: JUCTimeUnit): jboolean; overload;  // throws java.lang.InterruptedException
    procedure unlock(); overload;
    function newCondition(): JUCLCondition; overload;
  end;

  JUCLLockSupport = class external 'java.util.concurrent.locks' name 'LockSupport' (JLObject)
  public
    class procedure unpark(para1: JLThread); static; overload;
    class procedure park(para1: JLObject); static; overload;
    class procedure parkNanos(para1: JLObject; para2: jlong); static; overload;
    class procedure parkUntil(para1: JLObject; para2: jlong); static; overload;
    class function getBlocker(para1: JLThread): JLObject; static; overload;
    class procedure park(); static; overload;
    class procedure parkNanos(para1: jlong); static; overload;
    class procedure parkUntil(para1: jlong); static; overload;
  end;

  JUCLReadWriteLock = interface external 'java.util.concurrent.locks' name 'ReadWriteLock' 
    function readLock(): JUCLLock; overload;
    function writeLock(): JUCLLock; overload;
  end;

  JUJJarVerifier = class external 'java.util.jar' name 'JarVerifier' (JLObject)
  public
    type
      InnerVerifierCodeSource = class;
      Arr1InnerVerifierCodeSource = array of InnerVerifierCodeSource;
      Arr2InnerVerifierCodeSource = array of Arr1InnerVerifierCodeSource;
      Arr3InnerVerifierCodeSource = array of Arr2InnerVerifierCodeSource;
      InnerVerifierStream = class;
      Arr1InnerVerifierStream = array of InnerVerifierStream;
      Arr2InnerVerifierStream = array of Arr1InnerVerifierStream;
      Arr3InnerVerifierStream = array of Arr2InnerVerifierStream;
      InnerVerifierCodeSource = class external 'java.util.jar' name 'VerifierCodeSource' 
      end;

      InnerVerifierStream = class external 'java.util.jar' name 'VerifierStream' 
      end;

  public
    constructor create(para1: Arr1jbyte); overload;
    constructor create(const para1: array of jbyte); overload;
    procedure beginEntry(para1: JUJJarEntry; para2: SSUManifestEntryVerifier); overload; virtual;  // throws java.io.IOException
    procedure update(para1: jint; para2: SSUManifestEntryVerifier); overload; virtual;  // throws java.io.IOException
    procedure update(para1: jint; para2: Arr1jbyte; para3: jint; para4: jint; para5: SSUManifestEntryVerifier); overload; virtual;  // throws java.io.IOException
    procedure update(para1: jint; var para2: array of jbyte; para3: jint; para4: jint; para5: SSUManifestEntryVerifier); overload; virtual;  // throws java.io.IOException
    function getCerts(para1: JLString): Arr1JSCCertificate; overload; virtual;
    function getCerts(para1: JUJJarFile; para2: JUJJarEntry): Arr1JSCCertificate; overload; virtual;
    function getCodeSigners(para1: JLString): Arr1JSCodeSigner; overload; virtual;
    function getCodeSigners(para1: JUJJarFile; para2: JUJJarEntry): Arr1JSCodeSigner; overload; virtual;
    function entryNames(para1: JUJJarFile; para2: Arr1JSCodeSource): JUEnumeration; overload; virtual;
    function entryNames(para1: JUJJarFile; var para2: array of JSCodeSource): JUEnumeration; overload; virtual;
    function entries2(para1: JUJJarFile; para2: JUEnumeration): JUEnumeration; overload; virtual;
    function getCodeSources(para1: JUJJarFile; para2: JNURL): Arr1JSCodeSource; overload; virtual;
    function getCodeSource(para1: JNURL; para2: JLString): JSCodeSource; overload; virtual;
    function getCodeSource(para1: JNURL; para2: JUJJarFile; para3: JUJJarEntry): JSCodeSource; overload; virtual;
    procedure setEagerValidation(para1: jboolean); overload; virtual;
    function getManifestDigests(): JUList; overload; virtual;
  end;

  JUJPack200 = class abstract external 'java.util.jar' name 'Pack200' (JLObject)
  public
    type
      InnerPacker = interface;
      Arr1InnerPacker = array of InnerPacker;
      Arr2InnerPacker = array of Arr1InnerPacker;
      Arr3InnerPacker = array of Arr2InnerPacker;
      InnerUnpacker = interface;
      Arr1InnerUnpacker = array of InnerUnpacker;
      Arr2InnerUnpacker = array of Arr1InnerUnpacker;
      Arr3InnerUnpacker = array of Arr2InnerUnpacker;
      InnerPacker = interface external 'java.util.jar' name 'Packer' 
        const
          SEGMENT_LIMIT = 'pack.segment.limit';
          KEEP_FILE_ORDER = 'pack.keep.file.order';
          EFFORT = 'pack.effort';
          DEFLATE_HINT = 'pack.deflate.hint';
          MODIFICATION_TIME = 'pack.modification.time';
          PASS_FILE_PFX = 'pack.pass.file.';
          UNKNOWN_ATTRIBUTE = 'pack.unknown.attribute';
          CLASS_ATTRIBUTE_PFX = 'pack.class.attribute.';
          FIELD_ATTRIBUTE_PFX = 'pack.field.attribute.';
          METHOD_ATTRIBUTE_PFX = 'pack.method.attribute.';
          CODE_ATTRIBUTE_PFX = 'pack.code.attribute.';
          PROGRESS = 'pack.progress';
          KEEP = 'keep';
          PASS = 'pass';
          STRIP = 'strip';
          ERROR = 'error';
          &TRUE = 'true';
          &FALSE = 'false';
          LATEST = 'latest';
        function properties(): JUSortedMap; overload;
        procedure pack(para1: JUJJarFile; para2: JIOutputStream); overload;  // throws java.io.IOException
        procedure pack(para1: JUJJarInputStream; para2: JIOutputStream); overload;  // throws java.io.IOException
        procedure addPropertyChangeListener(para1: JBPropertyChangeListener); overload;
        procedure removePropertyChangeListener(para1: JBPropertyChangeListener); overload;
      end;

      InnerUnpacker = interface external 'java.util.jar' name 'Unpacker' 
        const
          KEEP = 'keep';
          &TRUE = 'true';
          &FALSE = 'false';
          DEFLATE_HINT = 'unpack.deflate.hint';
          PROGRESS = 'unpack.progress';
        function properties(): JUSortedMap; overload;
        procedure unpack(para1: JIInputStream; para2: JUJJarOutputStream); overload;  // throws java.io.IOException
        procedure unpack(para1: JIFile; para2: JUJJarOutputStream); overload;  // throws java.io.IOException
        procedure addPropertyChangeListener(para1: JBPropertyChangeListener); overload;
        procedure removePropertyChangeListener(para1: JBPropertyChangeListener); overload;
      end;

  public
    class function newPacker(): JUJPack200.InnerPacker; static; overload;
    class function newUnpacker(): JUJPack200.InnerUnpacker; static; overload;
  end;

  JULErrorManager = class external 'java.util.logging' name 'ErrorManager' (JLObject)
  public
    const
      GENERIC_FAILURE = 0;
      WRITE_FAILURE = 1;
      FLUSH_FAILURE = 2;
      CLOSE_FAILURE = 3;
      OPEN_FAILURE = 4;
      FORMAT_FAILURE = 5;
  public
    constructor create(); overload;
    procedure error(para1: JLString; para2: JLException; para3: jint); overload; virtual;
  end;

  JULFilter = interface external 'java.util.logging' name 'Filter' 
    function isLoggable(para1: JULLogRecord): jboolean; overload;
  end;

  JULFormatter = class abstract external 'java.util.logging' name 'Formatter' (JLObject)
  strict protected
    constructor create(); overload;
  public
    function format(para1: JULLogRecord): JLString; overload; virtual; abstract;
    function getHead(para1: JULHandler): JLString; overload; virtual;
    function getTail(para1: JULHandler): JLString; overload; virtual;
    function formatMessage(para1: JULLogRecord): JLString; overload; virtual;
  end;

  JULHandler = class abstract external 'java.util.logging' name 'Handler' (JLObject)
  strict protected
    constructor create(); overload;
  public
    procedure publish(para1: JULLogRecord); overload; virtual; abstract;
    procedure flush(); overload; virtual; abstract;
    procedure close(); overload; virtual; abstract;  // throws java.lang.SecurityException
    procedure setFormatter(para1: JULFormatter); overload; virtual;  // throws java.lang.SecurityException
    function getFormatter(): JULFormatter; overload; virtual;
    procedure setEncoding(para1: JLString); overload; virtual;  // throws java.lang.SecurityException, java.io.UnsupportedEncodingException
    function getEncoding(): JLString; overload; virtual;
    procedure setFilter(para1: JULFilter); overload; virtual;  // throws java.lang.SecurityException
    function getFilter(): JULFilter; overload; virtual;
    procedure setErrorManager(para1: JULErrorManager); overload; virtual;
    function getErrorManager(): JULErrorManager; overload; virtual;
  strict protected
    procedure reportError(para1: JLString; para2: JLException; para3: jint); overload; virtual;
  public
    procedure setLevel(para1: JULLevel); overload; virtual;  // throws java.lang.SecurityException
    function getLevel(): JULLevel; overload; virtual;
    function isLoggable(para1: JULLogRecord): jboolean; overload; virtual;
  end;

  JULLogManager = class external 'java.util.logging' name 'LogManager' (JLObject)
  public
    type
      InnerCleaner = class;
      Arr1InnerCleaner = array of InnerCleaner;
      Arr2InnerCleaner = array of Arr1InnerCleaner;
      Arr3InnerCleaner = array of Arr2InnerCleaner;
      InnerLogNode = class;
      Arr1InnerLogNode = array of InnerLogNode;
      Arr2InnerLogNode = array of Arr1InnerLogNode;
      Arr3InnerLogNode = array of Arr2InnerLogNode;
      InnerLoggerWeakRef = class;
      Arr1InnerLoggerWeakRef = array of InnerLoggerWeakRef;
      Arr2InnerLoggerWeakRef = array of Arr1InnerLoggerWeakRef;
      Arr3InnerLoggerWeakRef = array of Arr2InnerLoggerWeakRef;
      InnerRootLogger = class;
      Arr1InnerRootLogger = array of InnerRootLogger;
      Arr2InnerRootLogger = array of Arr1InnerRootLogger;
      Arr3InnerRootLogger = array of Arr2InnerRootLogger;
      InnerCleaner = class external 'java.util.logging' name 'Cleaner' 
      end;

      InnerLogNode = class external 'java.util.logging' name 'LogNode' 
      end;

      InnerLoggerWeakRef = class sealed external 'java.util.logging' name 'LoggerWeakRef' 
      end;

      InnerRootLogger = class external 'java.util.logging' name 'RootLogger' 
      end;

  public
    const
      LOGGING_MXBEAN_NAME = 'java.util.logging:type=Logging';
  strict protected
    constructor create(); overload;
  public
    class function getLogManager(): JULLogManager; static; overload;
    procedure addPropertyChangeListener(para1: JBPropertyChangeListener); overload; virtual;  // throws java.lang.SecurityException
    procedure removePropertyChangeListener(para1: JBPropertyChangeListener); overload; virtual;  // throws java.lang.SecurityException
    function addLogger(para1: JULLogger): jboolean; overload; virtual;
    function getLogger(para1: JLString): JULLogger; overload; virtual;
    function getLoggerNames(): JUEnumeration; overload; virtual;
    procedure readConfiguration(); overload; virtual;  // throws java.io.IOException, java.lang.SecurityException
    procedure reset(); overload; virtual;  // throws java.lang.SecurityException
    procedure readConfiguration(para1: JIInputStream); overload; virtual;  // throws java.io.IOException, java.lang.SecurityException
    function getProperty(para1: JLString): JLString; overload; virtual;
    procedure checkAccess(); overload; virtual;  // throws java.lang.SecurityException
    class function getLoggingMXBean(): JULLoggingMXBean; static; overload;
  end;

  JULLogger = class external 'java.util.logging' name 'Logger' (JLObject)
  public
    const
      GLOBAL_LOGGER_NAME = 'global';
  public
    final class var
      fglobal: JULLogger deprecated; external name 'global';
  strict protected
    constructor create(para1: JLString; para2: JLString); overload;
  public
    class function getLogger(para1: JLString): JULLogger; static; overload;
    class function getLogger(para1: JLString; para2: JLString): JULLogger; static; overload;
    class function getAnonymousLogger(): JULLogger; static; overload;
    class function getAnonymousLogger(para1: JLString): JULLogger; static; overload;
    function getResourceBundle(): JUResourceBundle; overload; virtual;
    function getResourceBundleName(): JLString; overload; virtual;
    procedure setFilter(para1: JULFilter); overload; virtual;  // throws java.lang.SecurityException
    function getFilter(): JULFilter; overload; virtual;
    procedure log(para1: JULLogRecord); overload; virtual;
    procedure log(para1: JULLevel; para2: JLString); overload; virtual;
    procedure log(para1: JULLevel; para2: JLString; para3: JLObject); overload; virtual;
    procedure log(para1: JULLevel; para2: JLString; para3: Arr1JLObject); overload; virtual;
    procedure log(para1: JULLevel; para2: JLString; var para3: array of JLObject); overload; virtual;
    procedure log(para1: JULLevel; para2: JLString; para3: JLThrowable); overload; virtual;
    procedure logp(para1: JULLevel; para2: JLString; para3: JLString; para4: JLString); overload; virtual;
    procedure logp(para1: JULLevel; para2: JLString; para3: JLString; para4: JLString; para5: JLObject); overload; virtual;
    procedure logp(para1: JULLevel; para2: JLString; para3: JLString; para4: JLString; para5: Arr1JLObject); overload; virtual;
    procedure logp(para1: JULLevel; para2: JLString; para3: JLString; para4: JLString; var para5: array of JLObject); overload; virtual;
    procedure logp(para1: JULLevel; para2: JLString; para3: JLString; para4: JLString; para5: JLThrowable); overload; virtual;
    procedure logrb(para1: JULLevel; para2: JLString; para3: JLString; para4: JLString; para5: JLString); overload; virtual;
    procedure logrb(para1: JULLevel; para2: JLString; para3: JLString; para4: JLString; para5: JLString; para6: JLObject); overload; virtual;
    procedure logrb(para1: JULLevel; para2: JLString; para3: JLString; para4: JLString; para5: JLString; para6: Arr1JLObject); overload; virtual;
    procedure logrb(para1: JULLevel; para2: JLString; para3: JLString; para4: JLString; para5: JLString; var para6: array of JLObject); overload; virtual;
    procedure logrb(para1: JULLevel; para2: JLString; para3: JLString; para4: JLString; para5: JLString; para6: JLThrowable); overload; virtual;
    procedure entering(para1: JLString; para2: JLString); overload; virtual;
    procedure entering(para1: JLString; para2: JLString; para3: JLObject); overload; virtual;
    procedure entering(para1: JLString; para2: JLString; para3: Arr1JLObject); overload; virtual;
    procedure entering(para1: JLString; para2: JLString; var para3: array of JLObject); overload; virtual;
    procedure exiting(para1: JLString; para2: JLString); overload; virtual;
    procedure exiting(para1: JLString; para2: JLString; para3: JLObject); overload; virtual;
    procedure throwing(para1: JLString; para2: JLString; para3: JLThrowable); overload; virtual;
    procedure severe(para1: JLString); overload; virtual;
    procedure warning(para1: JLString); overload; virtual;
    procedure info(para1: JLString); overload; virtual;
    procedure config(para1: JLString); overload; virtual;
    procedure fine(para1: JLString); overload; virtual;
    procedure finer(para1: JLString); overload; virtual;
    procedure finest(para1: JLString); overload; virtual;
    procedure setLevel(para1: JULLevel); overload; virtual;  // throws java.lang.SecurityException
    function getLevel(): JULLevel; overload; virtual;
    function isLoggable(para1: JULLevel): jboolean; overload; virtual;
    function getName(): JLString; overload; virtual;
    procedure addHandler(para1: JULHandler); overload; virtual;  // throws java.lang.SecurityException
    procedure removeHandler(para1: JULHandler); overload; virtual;  // throws java.lang.SecurityException
    function getHandlers(): Arr1JULHandler; overload; virtual;
    procedure setUseParentHandlers(para1: jboolean); overload; virtual;
    function getUseParentHandlers(): jboolean; overload; virtual;
    function getParent(): JULLogger; overload; virtual;
    procedure setParent(para1: JULLogger); overload; virtual;
  end;

  JULLoggingMXBean = interface external 'java.util.logging' name 'LoggingMXBean' 
    function getLoggerNames(): JUList; overload;
    function getLoggerLevel(para1: JLString): JLString; overload;
    procedure setLoggerLevel(para1: JLString; para2: JLString); overload;
    function getParentLoggerName(para1: JLString): JLString; overload;
  end;

  JUPBase64 = class external 'java.util.prefs' name 'Base64' (JLObject)
  public
    class procedure main(para1: Arr1JLString); static; overload;
    class procedure main(var para1: array of JLString); static; overload;
  end;

  JUPPreferences = class abstract external 'java.util.prefs' name 'Preferences' (JLObject)
  public
    const
      MAX_KEY_LENGTH = 80;
      MAX_VALUE_LENGTH = 8192;
      MAX_NAME_LENGTH = 80;
  public
    class function userNodeForPackage(para1: JLClass): JUPPreferences; static; overload;
    class function systemNodeForPackage(para1: JLClass): JUPPreferences; static; overload;
    class function userRoot(): JUPPreferences; static; overload;
    class function systemRoot(): JUPPreferences; static; overload;
  strict protected
    constructor create(); overload;
  public
    procedure put(para1: JLString; para2: JLString); overload; virtual; abstract;
    function get(para1: JLString; para2: JLString): JLString; overload; virtual; abstract;
    procedure remove(para1: JLString); overload; virtual; abstract;
    procedure clear(); overload; virtual; abstract;  // throws java.util.prefs.BackingStoreException
    procedure putInt(para1: JLString; para2: jint); overload; virtual; abstract;
    function getInt(para1: JLString; para2: jint): jint; overload; virtual; abstract;
    procedure putLong(para1: JLString; para2: jlong); overload; virtual; abstract;
    function getLong(para1: JLString; para2: jlong): jlong; overload; virtual; abstract;
    procedure putBoolean(para1: JLString; para2: jboolean); overload; virtual; abstract;
    function getBoolean(para1: JLString; para2: jboolean): jboolean; overload; virtual; abstract;
    procedure putFloat(para1: JLString; para2: jfloat); overload; virtual; abstract;
    function getFloat(para1: JLString; para2: jfloat): jfloat; overload; virtual; abstract;
    procedure putDouble(para1: JLString; para2: jdouble); overload; virtual; abstract;
    function getDouble(para1: JLString; para2: jdouble): jdouble; overload; virtual; abstract;
    procedure putByteArray(para1: JLString; para2: Arr1jbyte); overload; virtual; abstract;
    procedure putByteArray(para1: JLString; var para2: array of jbyte); overload; virtual; abstract;
    function getByteArray(para1: JLString; para2: Arr1jbyte): Arr1jbyte; overload; virtual; abstract;
    function getByteArray(para1: JLString; var para2: array of jbyte): Arr1jbyte; overload; virtual; abstract;
    function keys(): Arr1JLString; overload; virtual; abstract;  // throws java.util.prefs.BackingStoreException
    function childrenNames(): Arr1JLString; overload; virtual; abstract;  // throws java.util.prefs.BackingStoreException
    function parent(): JUPPreferences; overload; virtual; abstract;
    function node(para1: JLString): JUPPreferences; overload; virtual; abstract;
    function nodeExists(para1: JLString): jboolean; overload; virtual; abstract;  // throws java.util.prefs.BackingStoreException
    procedure removeNode(); overload; virtual; abstract;  // throws java.util.prefs.BackingStoreException
    function name(): JLString; overload; virtual; abstract;
    function absolutePath(): JLString; overload; virtual; abstract;
    function isUserNode(): jboolean; overload; virtual; abstract;
    function toString(): JLString; overload; virtual; abstract;
    procedure flush(); overload; virtual; abstract;  // throws java.util.prefs.BackingStoreException
    procedure sync(); overload; virtual; abstract;  // throws java.util.prefs.BackingStoreException
    procedure addPreferenceChangeListener(para1: JUPPreferenceChangeListener); overload; virtual; abstract;
    procedure removePreferenceChangeListener(para1: JUPPreferenceChangeListener); overload; virtual; abstract;
    procedure addNodeChangeListener(para1: JUPNodeChangeListener); overload; virtual; abstract;
    procedure removeNodeChangeListener(para1: JUPNodeChangeListener); overload; virtual; abstract;
    procedure exportNode(para1: JIOutputStream); overload; virtual; abstract;  // throws java.io.IOException, java.util.prefs.BackingStoreException
    procedure exportSubtree(para1: JIOutputStream); overload; virtual; abstract;  // throws java.io.IOException, java.util.prefs.BackingStoreException
    class procedure importPreferences(para1: JIInputStream); static; overload;  // throws java.io.IOException, java.util.prefs.InvalidPreferencesFormatException
  end;

  JUPPreferencesFactory = interface external 'java.util.prefs' name 'PreferencesFactory' 
    function systemRoot(): JUPPreferences; overload;
    function userRoot(): JUPPreferences; overload;
  end;

  JUPXmlSupport = class external 'java.util.prefs' name 'XmlSupport' (JLObject)
  public
    type
      InnerEH = class;
      Arr1InnerEH = array of InnerEH;
      Arr2InnerEH = array of Arr1InnerEH;
      Arr3InnerEH = array of Arr2InnerEH;
      InnerResolver = class;
      Arr1InnerResolver = array of InnerResolver;
      Arr2InnerResolver = array of Arr1InnerResolver;
      Arr3InnerResolver = array of Arr2InnerResolver;
      InnerEH = class external 'java.util.prefs' name 'EH' 
      end;

      InnerResolver = class external 'java.util.prefs' name 'Resolver' 
      end;

  end;

  JURASCII = class sealed external 'java.util.regex' name 'ASCII' (JLObject)
  end;

  JURMatchResult = interface external 'java.util.regex' name 'MatchResult' 
    function start(): jint; overload;
    function start(para1: jint): jint; overload;
    function &end(): jint; overload;
    function &end(para1: jint): jint; overload;
    function group(): JLString; overload;
    function group(para1: jint): JLString; overload;
    function groupCount(): jint; overload;
  end;

  JUSLocaleServiceProvider = class abstract external 'java.util.spi' name 'LocaleServiceProvider' (JLObject)
  strict protected
    constructor create(); overload;
  public
    function getAvailableLocales(): Arr1JULocale; overload; virtual; abstract;
  end;

  JUZChecksum = interface external 'java.util.zip' name 'Checksum' 
    procedure update(para1: jint); overload;
    procedure update(para1: Arr1jbyte; para2: jint; para3: jint); overload;
    procedure update(var para1: array of jbyte; para2: jint; para3: jint); overload;
    function getValue(): jlong; overload;
    procedure reset(); overload;
  end;

  JUZDeflater = class external 'java.util.zip' name 'Deflater' (JLObject)
  public
    const
      DEFLATED = 8;
      NO_COMPRESSION = 0;
      BEST_SPEED = 1;
      BEST_COMPRESSION = 9;
      DEFAULT_COMPRESSION = -1;
      FILTERED = 1;
      HUFFMAN_ONLY = 2;
      DEFAULT_STRATEGY = 0;
  public
    constructor create(para1: jint; para2: jboolean); overload;
    constructor create(para1: jint); overload;
    constructor create(); overload;
    procedure setInput(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;
    procedure setInput(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;
    procedure setInput(para1: Arr1jbyte); overload; virtual;
    procedure setInput(var para1: array of jbyte); overload; virtual;
    procedure setDictionary(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;
    procedure setDictionary(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;
    procedure setDictionary(para1: Arr1jbyte); overload; virtual;
    procedure setDictionary(var para1: array of jbyte); overload; virtual;
    procedure setStrategy(para1: jint); overload; virtual;
    procedure setLevel(para1: jint); overload; virtual;
    function needsInput(): jboolean; overload; virtual;
    procedure finish(); overload; virtual;
    function finished(): jboolean; overload; virtual;
    function deflate(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;
    function deflate(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;
    function deflate(para1: Arr1jbyte): jint; overload; virtual;
    function deflate(var para1: array of jbyte): jint; overload; virtual;
    function getAdler(): jint; overload; virtual;
    function getTotalIn(): jint; overload; virtual;
    function getBytesRead(): jlong; overload; virtual;
    function getTotalOut(): jint; overload; virtual;
    function getBytesWritten(): jlong; overload; virtual;
    procedure reset(); overload; virtual;
    procedure &end(); overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;
  end;

  JUZInflater = class external 'java.util.zip' name 'Inflater' (JLObject)
  public
    constructor create(para1: jboolean); overload;
    constructor create(); overload;
    procedure setInput(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;
    procedure setInput(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;
    procedure setInput(para1: Arr1jbyte); overload; virtual;
    procedure setInput(var para1: array of jbyte); overload; virtual;
    procedure setDictionary(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;
    procedure setDictionary(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;
    procedure setDictionary(para1: Arr1jbyte); overload; virtual;
    procedure setDictionary(var para1: array of jbyte); overload; virtual;
    function getRemaining(): jint; overload; virtual;
    function needsInput(): jboolean; overload; virtual;
    function needsDictionary(): jboolean; overload; virtual;
    function finished(): jboolean; overload; virtual;
    function inflate(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.util.zip.DataFormatException
    function inflate(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.util.zip.DataFormatException
    function inflate(para1: Arr1jbyte): jint; overload; virtual;  // throws java.util.zip.DataFormatException
    function inflate(var para1: array of jbyte): jint; overload; virtual;  // throws java.util.zip.DataFormatException
    function getAdler(): jint; overload; virtual;
    function getTotalIn(): jint; overload; virtual;
    function getBytesRead(): jlong; overload; virtual;
    function getTotalOut(): jint; overload; virtual;
    function getBytesWritten(): jlong; overload; virtual;
    procedure reset(); overload; virtual;
    procedure &end(); overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;
  end;

  JUZZStreamRef = class external 'java.util.zip' name 'ZStreamRef' (JLObject)
  end;

  JUZZipConstants = interface external 'java.util.zip' name 'ZipConstants' 
    const
      LOCSIG = jlong(67324752);
      EXTSIG = jlong(134695760);
      CENSIG = jlong(33639248);
      ENDSIG = jlong(101010256);
      LOCHDR = 30;
      EXTHDR = 16;
      CENHDR = 46;
      ENDHDR = 22;
      LOCVER = 4;
      LOCFLG = 6;
      LOCHOW = 8;
      LOCTIM = 10;
      LOCCRC = 14;
      LOCSIZ = 18;
      LOCLEN = 22;
      LOCNAM = 26;
      LOCEXT = 28;
      EXTCRC = 4;
      EXTSIZ = 8;
      EXTLEN = 12;
      CENVEM = 4;
      CENVER = 6;
      CENFLG = 8;
      CENHOW = 10;
      CENTIM = 12;
      CENCRC = 16;
      CENSIZ = 20;
      CENLEN = 24;
      CENNAM = 28;
      CENEXT = 30;
      CENCOM = 32;
      CENDSK = 34;
      CENATT = 36;
      CENATX = 38;
      CENOFF = 42;
      ENDSUB = 8;
      ENDTOT = 10;
      ENDSIZ = 12;
      ENDOFF = 16;
      ENDCOM = 20;
  end;

  JAAccessible = interface external 'javax.accessibility' name 'Accessible' 
    function getAccessibleContext(): JAAccessibleContext; overload;
  end;

  JAAccessibleAction = interface external 'javax.accessibility' name 'AccessibleAction' 
    final class var
      fTOGGLE_EXPAND: JLString; external name 'TOGGLE_EXPAND';
      fINCREMENT: JLString; external name 'INCREMENT';
      fDECREMENT: JLString; external name 'DECREMENT';
      fCLICK: JLString; external name 'CLICK';
      fTOGGLE_POPUP: JLString; external name 'TOGGLE_POPUP';
    function getAccessibleActionCount(): jint; overload;
    function getAccessibleActionDescription(para1: jint): JLString; overload;
    function doAccessibleAction(para1: jint): jboolean; overload;
  end;

  JAAccessibleAttributeSequence = class external 'javax.accessibility' name 'AccessibleAttributeSequence' (JLObject)
  public
    var
      fstartIndex: jint; external name 'startIndex';
      fendIndex: jint; external name 'endIndex';
      fattributes: JSTAttributeSet; external name 'attributes';
  public
    constructor create(para1: jint; para2: jint; para3: JSTAttributeSet); overload;
  end;

  JAAccessibleBundle = class abstract external 'javax.accessibility' name 'AccessibleBundle' (JLObject)
  strict protected
    var
      fkey: JLString; external name 'key';
  public
    constructor create(); overload;
  strict protected
    function toDisplayString(para1: JLString; para2: JULocale): JLString; overload; virtual;
  public
    function toDisplayString(para1: JULocale): JLString; overload; virtual;
    function toDisplayString(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JAAccessibleComponent = interface external 'javax.accessibility' name 'AccessibleComponent' 
    function getBackground(): JAColor; overload;
    procedure setBackground(para1: JAColor); overload;
    function getForeground(): JAColor; overload;
    procedure setForeground(para1: JAColor); overload;
    function getCursor(): JACursor; overload;
    procedure setCursor(para1: JACursor); overload;
    function getFont(): JAFont; overload;
    procedure setFont(para1: JAFont); overload;
    function getFontMetrics(para1: JAFont): JAFontMetrics; overload;
    function isEnabled(): jboolean; overload;
    procedure setEnabled(para1: jboolean); overload;
    function isVisible(): jboolean; overload;
    procedure setVisible(para1: jboolean); overload;
    function isShowing(): jboolean; overload;
    function contains(para1: JAPoint): jboolean; overload;
    function getLocationOnScreen(): JAPoint; overload;
    function getLocation(): JAPoint; overload;
    procedure setLocation(para1: JAPoint); overload;
    function getBounds(): JARectangle; overload;
    procedure setBounds(para1: JARectangle); overload;
    function getSize(): JADimension; overload;
    procedure setSize(para1: JADimension); overload;
    function getAccessibleAt(para1: JAPoint): JAAccessible; overload;
    function isFocusTraversable(): jboolean; overload;
    procedure requestFocus(); overload;
    procedure addFocusListener(para1: JAEFocusListener); overload;
    procedure removeFocusListener(para1: JAEFocusListener); overload;
  end;

  JAAccessibleContext = class abstract external 'javax.accessibility' name 'AccessibleContext' (JLObject)
  public
    const
      ACCESSIBLE_NAME_PROPERTY = 'AccessibleName';
      ACCESSIBLE_DESCRIPTION_PROPERTY = 'AccessibleDescription';
      ACCESSIBLE_STATE_PROPERTY = 'AccessibleState';
      ACCESSIBLE_VALUE_PROPERTY = 'AccessibleValue';
      ACCESSIBLE_SELECTION_PROPERTY = 'AccessibleSelection';
      ACCESSIBLE_CARET_PROPERTY = 'AccessibleCaret';
      ACCESSIBLE_VISIBLE_DATA_PROPERTY = 'AccessibleVisibleData';
      ACCESSIBLE_CHILD_PROPERTY = 'AccessibleChild';
      ACCESSIBLE_ACTIVE_DESCENDANT_PROPERTY = 'AccessibleActiveDescendant';
      ACCESSIBLE_TABLE_CAPTION_CHANGED = 'accessibleTableCaptionChanged';
      ACCESSIBLE_TABLE_SUMMARY_CHANGED = 'accessibleTableSummaryChanged';
      ACCESSIBLE_TABLE_MODEL_CHANGED = 'accessibleTableModelChanged';
      ACCESSIBLE_TABLE_ROW_HEADER_CHANGED = 'accessibleTableRowHeaderChanged';
      ACCESSIBLE_TABLE_ROW_DESCRIPTION_CHANGED = 'accessibleTableRowDescriptionChanged';
      ACCESSIBLE_TABLE_COLUMN_HEADER_CHANGED = 'accessibleTableColumnHeaderChanged';
      ACCESSIBLE_TABLE_COLUMN_DESCRIPTION_CHANGED = 'accessibleTableColumnDescriptionChanged';
      ACCESSIBLE_ACTION_PROPERTY = 'accessibleActionProperty';
      ACCESSIBLE_HYPERTEXT_OFFSET = 'AccessibleHypertextOffset';
      ACCESSIBLE_TEXT_PROPERTY = 'AccessibleText';
      ACCESSIBLE_INVALIDATE_CHILDREN = 'accessibleInvalidateChildren';
      ACCESSIBLE_TEXT_ATTRIBUTES_CHANGED = 'accessibleTextAttributesChanged';
      ACCESSIBLE_COMPONENT_BOUNDS_CHANGED = 'accessibleComponentBoundsChanged';
  strict protected
    var
      faccessibleParent: JAAccessible; external name 'accessibleParent';
      faccessibleName: JLString; external name 'accessibleName';
      faccessibleDescription: JLString; external name 'accessibleDescription';
  public
    constructor create(); overload;
    function getAccessibleName(): JLString; overload; virtual;
    procedure setAccessibleName(para1: JLString); overload; virtual;
    function getAccessibleDescription(): JLString; overload; virtual;
    procedure setAccessibleDescription(para1: JLString); overload; virtual;
    function getAccessibleRole(): JAAccessibleRole; overload; virtual; abstract;
    function getAccessibleStateSet(): JAAccessibleStateSet; overload; virtual; abstract;
    function getAccessibleParent(): JAAccessible; overload; virtual;
    procedure setAccessibleParent(para1: JAAccessible); overload; virtual;
    function getAccessibleIndexInParent(): jint; overload; virtual; abstract;
    function getAccessibleChildrenCount(): jint; overload; virtual; abstract;
    function getAccessibleChild(para1: jint): JAAccessible; overload; virtual; abstract;
    function getLocale(): JULocale; overload; virtual; abstract;  // throws java.awt.IllegalComponentStateException
    procedure addPropertyChangeListener(para1: JBPropertyChangeListener); overload; virtual;
    procedure removePropertyChangeListener(para1: JBPropertyChangeListener); overload; virtual;
    function getAccessibleAction(): JAAccessibleAction; overload; virtual;
    function getAccessibleComponent(): JAAccessibleComponent; overload; virtual;
    function getAccessibleSelection(): JAAccessibleSelection; overload; virtual;
    function getAccessibleText(): JAAccessibleText; overload; virtual;
    function getAccessibleEditableText(): JAAccessibleEditableText; overload; virtual;
    function getAccessibleValue(): JAAccessibleValue; overload; virtual;
    function getAccessibleIcon(): Arr1JAAccessibleIcon; overload; virtual;
    function getAccessibleRelationSet(): JAAccessibleRelationSet; overload; virtual;
    function getAccessibleTable(): JAAccessibleTable; overload; virtual;
    procedure firePropertyChange(para1: JLString; para2: JLObject; para3: JLObject); overload; virtual;
  end;

  JAAccessibleExtendedText = interface external 'javax.accessibility' name 'AccessibleExtendedText' 
    const
      LINE = 4;
      ATTRIBUTE_RUN = 5;
    function getTextRange(para1: jint; para2: jint): JLString; overload;
    function getTextSequenceAt(para1: jint; para2: jint): JAAccessibleTextSequence; overload;
    function getTextSequenceAfter(para1: jint; para2: jint): JAAccessibleTextSequence; overload;
    function getTextSequenceBefore(para1: jint; para2: jint): JAAccessibleTextSequence; overload;
    function getTextBounds(para1: jint; para2: jint): JARectangle; overload;
  end;

  JAAccessibleIcon = interface external 'javax.accessibility' name 'AccessibleIcon' 
    function getAccessibleIconDescription(): JLString; overload;
    procedure setAccessibleIconDescription(para1: JLString); overload;
    function getAccessibleIconWidth(): jint; overload;
    function getAccessibleIconHeight(): jint; overload;
  end;

  JAAccessibleKeyBinding = interface external 'javax.accessibility' name 'AccessibleKeyBinding' 
    function getAccessibleKeyBindingCount(): jint; overload;
    function getAccessibleKeyBinding(para1: jint): JLObject; overload;
  end;

  JAAccessibleRelationSet = class external 'javax.accessibility' name 'AccessibleRelationSet' (JLObject)
  strict protected
    var
      frelations: JUVector; external name 'relations';
  public
    constructor create(); overload;
    constructor create(para1: Arr1JAAccessibleRelation); overload;
    constructor create(const para1: array of JAAccessibleRelation); overload;
    function add(para1: JAAccessibleRelation): jboolean; overload; virtual;
    procedure addAll(para1: Arr1JAAccessibleRelation); overload; virtual;
    procedure addAll(var para1: array of JAAccessibleRelation); overload; virtual;
    function remove(para1: JAAccessibleRelation): jboolean; overload; virtual;
    procedure clear(); overload; virtual;
    function size(): jint; overload; virtual;
    function contains(para1: JLString): jboolean; overload; virtual;
    function get(para1: JLString): JAAccessibleRelation; overload; virtual;
    function toArray(): Arr1JAAccessibleRelation; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JAAccessibleSelection = interface external 'javax.accessibility' name 'AccessibleSelection' 
    function getAccessibleSelectionCount(): jint; overload;
    function getAccessibleSelection(para1: jint): JAAccessible; overload;
    function isAccessibleChildSelected(para1: jint): jboolean; overload;
    procedure addAccessibleSelection(para1: jint); overload;
    procedure removeAccessibleSelection(para1: jint); overload;
    procedure clearAccessibleSelection(); overload;
    procedure selectAllAccessibleSelection(); overload;
  end;

  JAAccessibleStateSet = class external 'javax.accessibility' name 'AccessibleStateSet' (JLObject)
  strict protected
    var
      fstates: JUVector; external name 'states';
  public
    constructor create(); overload;
    constructor create(para1: Arr1JAAccessibleState); overload;
    constructor create(const para1: array of JAAccessibleState); overload;
    function add(para1: JAAccessibleState): jboolean; overload; virtual;
    procedure addAll(para1: Arr1JAAccessibleState); overload; virtual;
    procedure addAll(var para1: array of JAAccessibleState); overload; virtual;
    function remove(para1: JAAccessibleState): jboolean; overload; virtual;
    procedure clear(); overload; virtual;
    function contains(para1: JAAccessibleState): jboolean; overload; virtual;
    function toArray(): Arr1JAAccessibleState; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JAAccessibleStreamable = interface external 'javax.accessibility' name 'AccessibleStreamable' 
    function getMimeTypes(): Arr1JADDataFlavor; overload;
    function getStream(para1: JADDataFlavor): JIInputStream; overload;
  end;

  JAAccessibleTable = interface external 'javax.accessibility' name 'AccessibleTable' 
    function getAccessibleCaption(): JAAccessible; overload;
    procedure setAccessibleCaption(para1: JAAccessible); overload;
    function getAccessibleSummary(): JAAccessible; overload;
    procedure setAccessibleSummary(para1: JAAccessible); overload;
    function getAccessibleRowCount(): jint; overload;
    function getAccessibleColumnCount(): jint; overload;
    function getAccessibleAt(para1: jint; para2: jint): JAAccessible; overload;
    function getAccessibleRowExtentAt(para1: jint; para2: jint): jint; overload;
    function getAccessibleColumnExtentAt(para1: jint; para2: jint): jint; overload;
    function getAccessibleRowHeader(): JAAccessibleTable; overload;
    procedure setAccessibleRowHeader(para1: JAAccessibleTable); overload;
    function getAccessibleColumnHeader(): JAAccessibleTable; overload;
    procedure setAccessibleColumnHeader(para1: JAAccessibleTable); overload;
    function getAccessibleRowDescription(para1: jint): JAAccessible; overload;
    procedure setAccessibleRowDescription(para1: jint; para2: JAAccessible); overload;
    function getAccessibleColumnDescription(para1: jint): JAAccessible; overload;
    procedure setAccessibleColumnDescription(para1: jint; para2: JAAccessible); overload;
    function isAccessibleSelected(para1: jint; para2: jint): jboolean; overload;
    function isAccessibleRowSelected(para1: jint): jboolean; overload;
    function isAccessibleColumnSelected(para1: jint): jboolean; overload;
    function getSelectedAccessibleRows(): Arr1jint; overload;
    function getSelectedAccessibleColumns(): Arr1jint; overload;
  end;

  JAAccessibleTableModelChange = interface external 'javax.accessibility' name 'AccessibleTableModelChange' 
    const
      INSERT = 1;
      UPDATE = 0;
      DELETE = -1;
    function getType(): jint; overload;
    function getFirstRow(): jint; overload;
    function getLastRow(): jint; overload;
    function getFirstColumn(): jint; overload;
    function getLastColumn(): jint; overload;
  end;

  JAAccessibleText = interface external 'javax.accessibility' name 'AccessibleText' 
    const
      CHARACTER = 1;
      WORD = 2;
      SENTENCE = 3;
    function getIndexAtPoint(para1: JAPoint): jint; overload;
    function getCharacterBounds(para1: jint): JARectangle; overload;
    function getCharCount(): jint; overload;
    function getCaretPosition(): jint; overload;
    function getAtIndex(para1: jint; para2: jint): JLString; overload;
    function getAfterIndex(para1: jint; para2: jint): JLString; overload;
    function getBeforeIndex(para1: jint; para2: jint): JLString; overload;
    function getCharacterAttribute(para1: jint): JSTAttributeSet; overload;
    function getSelectionStart(): jint; overload;
    function getSelectionEnd(): jint; overload;
    function getSelectedText(): JLString; overload;
  end;

  JAAccessibleTextSequence = class external 'javax.accessibility' name 'AccessibleTextSequence' (JLObject)
  public
    var
      fstartIndex: jint; external name 'startIndex';
      fendIndex: jint; external name 'endIndex';
      ftext: JLString; external name 'text';
  public
    constructor create(para1: jint; para2: jint; para3: JLString); overload;
  end;

  JAAccessibleValue = interface external 'javax.accessibility' name 'AccessibleValue' 
    function getCurrentAccessibleValue(): JLNumber; overload;
    function setCurrentAccessibleValue(para1: JLNumber): jboolean; overload;
    function getMinimumAccessibleValue(): JLNumber; overload;
    function getMaximumAccessibleValue(): JLNumber; overload;
  end;

  JACommandInfo = class external 'javax.activation' name 'CommandInfo' (JLObject)
  public
    constructor create(para1: JLString; para2: JLString); overload;
    function getCommandName(): JLString; overload; virtual;
    function getCommandClass(): JLString; overload; virtual;
    function getCommandObject(para1: JADataHandler; para2: JLClassLoader): JLObject; overload; virtual;  // throws java.io.IOException, java.lang.ClassNotFoundException
  end;

  JACommandMap = class abstract external 'javax.activation' name 'CommandMap' (JLObject)
  public
    constructor create(); overload;
    class function getDefaultCommandMap(): JACommandMap; static; overload;
    class procedure setDefaultCommandMap(para1: JACommandMap); static; overload;
    function getPreferredCommands(para1: JLString): Arr1JACommandInfo; overload; virtual; abstract;
    function getPreferredCommands(para1: JLString; para2: JADataSource): Arr1JACommandInfo; overload; virtual;
    function getAllCommands(para1: JLString): Arr1JACommandInfo; overload; virtual; abstract;
    function getAllCommands(para1: JLString; para2: JADataSource): Arr1JACommandInfo; overload; virtual;
    function getCommand(para1: JLString; para2: JLString): JACommandInfo; overload; virtual; abstract;
    function getCommand(para1: JLString; para2: JLString; para3: JADataSource): JACommandInfo; overload; virtual;
    function createDataContentHandler(para1: JLString): JADataContentHandler; overload; virtual; abstract;
    function createDataContentHandler(para1: JLString; para2: JADataSource): JADataContentHandler; overload; virtual;
    function getMimeTypes(): Arr1JLString; overload; virtual;
  end;

  JACommandObject = interface external 'javax.activation' name 'CommandObject' 
    procedure setCommandContext(para1: JLString; para2: JADataHandler); overload;  // throws java.io.IOException
  end;

  JADataContentHandler = interface external 'javax.activation' name 'DataContentHandler' 
    function getTransferDataFlavors(): Arr1JADDataFlavor; overload;
    function getTransferData(para1: JADDataFlavor; para2: JADataSource): JLObject; overload;  // throws java.awt.datatransfer.UnsupportedFlavorException, java.io.IOException
    function getContent(para1: JADataSource): JLObject; overload;  // throws java.io.IOException
    procedure writeTo(para1: JLObject; para2: JLString; para3: JIOutputStream); overload;  // throws java.io.IOException
  end;

  JADataContentHandlerFactory = interface external 'javax.activation' name 'DataContentHandlerFactory' 
    function createDataContentHandler(para1: JLString): JADataContentHandler; overload;
  end;

  JADataSource = interface external 'javax.activation' name 'DataSource' 
    function getInputStream(): JIInputStream; overload;  // throws java.io.IOException
    function getOutputStream(): JIOutputStream; overload;  // throws java.io.IOException
    function getContentType(): JLString; overload;
    function getName(): JLString; overload;
  end;

  JAFileTypeMap = class abstract external 'javax.activation' name 'FileTypeMap' (JLObject)
  public
    constructor create(); overload;
    function getContentType(para1: JIFile): JLString; overload; virtual; abstract;
    function getContentType(para1: JLString): JLString; overload; virtual; abstract;
    class procedure setDefaultFileTypeMap(para1: JAFileTypeMap); static; overload;
    class function getDefaultFileTypeMap(): JAFileTypeMap; static; overload;
  end;

  JAMimeTypeParameterList = class external 'javax.activation' name 'MimeTypeParameterList' (JLObject)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;  // throws javax.activation.MimeTypeParseException
  strict protected
    procedure parse(para1: JLString); overload; virtual;  // throws javax.activation.MimeTypeParseException
  public
    function size(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function get(para1: JLString): JLString; overload; virtual;
    procedure &set(para1: JLString; para2: JLString); overload; virtual;
    procedure remove(para1: JLString); overload; virtual;
    function getNames(): JUEnumeration; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JASecuritySupport = class external 'javax.activation' name 'SecuritySupport' (JLObject)
  public
    class function getContextClassLoader(): JLClassLoader; static; overload;
    class function getResourceAsStream(para1: JLClass; para2: JLString): JIInputStream; static; overload;  // throws java.io.IOException
    class function getResources(para1: JLClassLoader; para2: JLString): Arr1JNURL; static; overload;
    class function getSystemResources(para1: JLString): Arr1JNURL; static; overload;
    class function openStream(para1: JNURL): JIInputStream; static; overload;  // throws java.io.IOException
  end;

  JAPCompletion = interface external 'javax.annotation.processing' name 'Completion' 
    function getValue(): JLString; overload;
    function getMessage(): JLString; overload;
  end;

  JAPCompletions = class external 'javax.annotation.processing' name 'Completions' (JLObject)
  public
    type
      InnerSimpleCompletion = class;
      Arr1InnerSimpleCompletion = array of InnerSimpleCompletion;
      Arr2InnerSimpleCompletion = array of Arr1InnerSimpleCompletion;
      Arr3InnerSimpleCompletion = array of Arr2InnerSimpleCompletion;
      InnerSimpleCompletion = class external 'javax.annotation.processing' name 'SimpleCompletion' 
      end;

  public
    class function &of(para1: JLString; para2: JLString): JAPCompletion; static; overload;
    class function &of(para1: JLString): JAPCompletion; static; overload;
  end;

  JAPProcessingEnvironment = interface external 'javax.annotation.processing' name 'ProcessingEnvironment' 
    function getOptions(): JUMap; overload;
    function getMessager(): JAPMessager; overload;
    function getFiler(): JAPFiler; overload;
    function getElementUtils(): JLMUElements; overload;
    function getTypeUtils(): JLMUTypes; overload;
    function getSourceVersion(): JLMSourceVersion; overload;
    function getLocale(): JULocale; overload;
  end;

  JAPProcessor = interface external 'javax.annotation.processing' name 'Processor' 
    function getSupportedOptions(): JUSet; overload;
    function getSupportedAnnotationTypes(): JUSet; overload;
    function getSupportedSourceVersion(): JLMSourceVersion; overload;
    procedure init(para1: JAPProcessingEnvironment); overload;
    function process(para1: JUSet; para2: JAPRoundEnvironment): jboolean; overload;
    function getCompletions(para1: JLMEElement; para2: JLMEAnnotationMirror; para3: JLMEExecutableElement; para4: JLString): JLIterable; overload;
  end;

  JAPRoundEnvironment = interface external 'javax.annotation.processing' name 'RoundEnvironment' 
    function processingOver(): jboolean; overload;
    function errorRaised(): jboolean; overload;
    function getRootElements(): JUSet; overload;
    function getElementsAnnotatedWith(para1: JLMETypeElement): JUSet; overload;
    function getElementsAnnotatedWith(para1: JLClass): JUSet; overload;
  end;

  JCCipher = class external 'javax.crypto' name 'Cipher' (JLObject)
  public
    type
      Innerr = class;
      Arr1Innerr = array of Innerr;
      Arr2Innerr = array of Arr1Innerr;
      Arr3Innerr = array of Arr2Innerr;
      Innerr = class external 'javax.crypto' name 'r' 
      end;

  public
    const
      ENCRYPT_MODE = 1;
      DECRYPT_MODE = 2;
      WRAP_MODE = 3;
      UNWRAP_MODE = 4;
      PUBLIC_KEY = 1;
      PRIVATE_KEY = 2;
      SECRET_KEY = 3;
  strict protected
    constructor create(para1: JCCipherSpi; para2: JSProvider; para3: JLString); overload;
  public
    class function getInstance(para1: JLString): JCCipher; static; overload; final;  // throws java.security.NoSuchAlgorithmException, javax.crypto.NoSuchPaddingException
    class function getInstance(para1: JLString; para2: JLString): JCCipher; static; overload; final;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException, javax.crypto.NoSuchPaddingException
    class function getInstance(para1: JLString; para2: JSProvider): JCCipher; static; overload; final;  // throws java.security.NoSuchAlgorithmException, javax.crypto.NoSuchPaddingException
    function getProvider(): JSProvider; overload; virtual; final;
    function getAlgorithm(): JLString; overload; virtual; final;
    function getBlockSize(): jint; overload; virtual; final;
    function getOutputSize(para1: jint): jint; overload; virtual; final;
    function getIV(): Arr1jbyte; overload; virtual; final;
    function getParameters(): JSAlgorithmParameters; overload; virtual; final;
    function getExemptionMechanism(): JCExemptionMechanism; overload; virtual; final;
    procedure init(para1: jint; para2: JSKey); overload; virtual; final;  // throws java.security.InvalidKeyException
    procedure init(para1: jint; para2: JSKey; para3: JSSecureRandom); overload; virtual; final;  // throws java.security.InvalidKeyException
    procedure init(para1: jint; para2: JSKey; para3: JSSAlgorithmParameterSpec); overload; virtual; final;  // throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
    procedure init(para1: jint; para2: JSKey; para3: JSSAlgorithmParameterSpec; para4: JSSecureRandom); overload; virtual; final;  // throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
    procedure init(para1: jint; para2: JSKey; para3: JSAlgorithmParameters); overload; virtual; final;  // throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
    procedure init(para1: jint; para2: JSKey; para3: JSAlgorithmParameters; para4: JSSecureRandom); overload; virtual; final;  // throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
    procedure init(para1: jint; para2: JSCCertificate); overload; virtual; final;  // throws java.security.InvalidKeyException
    procedure init(para1: jint; para2: JSCCertificate; para3: JSSecureRandom); overload; virtual; final;  // throws java.security.InvalidKeyException
    function update(para1: Arr1jbyte): Arr1jbyte; overload; virtual; final;
    function update(var para1: array of jbyte): Arr1jbyte; overload; virtual; final;
    function update(para1: Arr1jbyte; para2: jint; para3: jint): Arr1jbyte; overload; virtual; final;
    function update(var para1: array of jbyte; para2: jint; para3: jint): Arr1jbyte; overload; virtual; final;
    function update(para1: Arr1jbyte; para2: jint; para3: jint; para4: Arr1jbyte): jint; overload; virtual; final;  // throws javax.crypto.ShortBufferException
    function update(var para1: array of jbyte; para2: jint; para3: jint; var para4: array of jbyte): jint; overload; virtual; final;  // throws javax.crypto.ShortBufferException
    function update(para1: Arr1jbyte; para2: jint; para3: jint; para4: Arr1jbyte; para5: jint): jint; overload; virtual; final;  // throws javax.crypto.ShortBufferException
    function update(var para1: array of jbyte; para2: jint; para3: jint; var para4: array of jbyte; para5: jint): jint; overload; virtual; final;  // throws javax.crypto.ShortBufferException
    function update(para1: JNByteBuffer; para2: JNByteBuffer): jint; overload; virtual; final;  // throws javax.crypto.ShortBufferException
    function doFinal(): Arr1jbyte; overload; virtual; final;  // throws javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    function doFinal(para1: Arr1jbyte; para2: jint): jint; overload; virtual; final;  // throws javax.crypto.IllegalBlockSizeException, javax.crypto.ShortBufferException, javax.crypto.BadPaddingException
    function doFinal(var para1: array of jbyte; para2: jint): jint; overload; virtual; final;  // throws javax.crypto.IllegalBlockSizeException, javax.crypto.ShortBufferException, javax.crypto.BadPaddingException
    function doFinal(para1: Arr1jbyte): Arr1jbyte; overload; virtual; final;  // throws javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    function doFinal(var para1: array of jbyte): Arr1jbyte; overload; virtual; final;  // throws javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    function doFinal(para1: Arr1jbyte; para2: jint; para3: jint): Arr1jbyte; overload; virtual; final;  // throws javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    function doFinal(var para1: array of jbyte; para2: jint; para3: jint): Arr1jbyte; overload; virtual; final;  // throws javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    function doFinal(para1: Arr1jbyte; para2: jint; para3: jint; para4: Arr1jbyte): jint; overload; virtual; final;  // throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    function doFinal(var para1: array of jbyte; para2: jint; para3: jint; var para4: array of jbyte): jint; overload; virtual; final;  // throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    function doFinal(para1: Arr1jbyte; para2: jint; para3: jint; para4: Arr1jbyte; para5: jint): jint; overload; virtual; final;  // throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    function doFinal(var para1: array of jbyte; para2: jint; para3: jint; var para4: array of jbyte; para5: jint): jint; overload; virtual; final;  // throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    function doFinal(para1: JNByteBuffer; para2: JNByteBuffer): jint; overload; virtual; final;  // throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    function wrap(para1: JSKey): Arr1jbyte; overload; virtual; final;  // throws javax.crypto.IllegalBlockSizeException, java.security.InvalidKeyException
    function unwrap(para1: Arr1jbyte; para2: JLString; para3: jint): JSKey; overload; virtual; final;  // throws java.security.InvalidKeyException, java.security.NoSuchAlgorithmException
    function unwrap(var para1: array of jbyte; para2: JLString; para3: jint): JSKey; overload; virtual; final;  // throws java.security.InvalidKeyException, java.security.NoSuchAlgorithmException
    class function getMaxAllowedKeyLength(para1: JLString): jint; static; overload; final;  // throws java.security.NoSuchAlgorithmException
    class function getMaxAllowedParameterSpec(para1: JLString): JSSAlgorithmParameterSpec; static; overload; final;  // throws java.security.NoSuchAlgorithmException
  end;

  JCCipherSpi = class abstract external 'javax.crypto' name 'CipherSpi' (JLObject)
  public
    constructor create(); overload;
  strict protected
    procedure engineSetMode(para1: JLString); overload; virtual; abstract;  // throws java.security.NoSuchAlgorithmException
    procedure engineSetPadding(para1: JLString); overload; virtual; abstract;  // throws javax.crypto.NoSuchPaddingException
    function engineGetBlockSize(): jint; overload; virtual; abstract;
    function engineGetOutputSize(para1: jint): jint; overload; virtual; abstract;
    function engineGetIV(): Arr1jbyte; overload; virtual; abstract;
    function engineGetParameters(): JSAlgorithmParameters; overload; virtual; abstract;
    procedure engineInit(para1: jint; para2: JSKey; para3: JSSecureRandom); overload; virtual; abstract;  // throws java.security.InvalidKeyException
    procedure engineInit(para1: jint; para2: JSKey; para3: JSSAlgorithmParameterSpec; para4: JSSecureRandom); overload; virtual; abstract;  // throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
    procedure engineInit(para1: jint; para2: JSKey; para3: JSAlgorithmParameters; para4: JSSecureRandom); overload; virtual; abstract;  // throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
    function engineUpdate(para1: Arr1jbyte; para2: jint; para3: jint): Arr1jbyte; overload; virtual; abstract;
    function engineUpdate(var para1: array of jbyte; para2: jint; para3: jint): Arr1jbyte; overload; virtual; abstract;
    function engineUpdate(para1: Arr1jbyte; para2: jint; para3: jint; para4: Arr1jbyte; para5: jint): jint; overload; virtual; abstract;  // throws javax.crypto.ShortBufferException
    function engineUpdate(var para1: array of jbyte; para2: jint; para3: jint; var para4: array of jbyte; para5: jint): jint; overload; virtual; abstract;  // throws javax.crypto.ShortBufferException
    function engineUpdate(para1: JNByteBuffer; para2: JNByteBuffer): jint; overload; virtual;  // throws javax.crypto.ShortBufferException
    function engineDoFinal(para1: Arr1jbyte; para2: jint; para3: jint): Arr1jbyte; overload; virtual; abstract;  // throws javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    function engineDoFinal(var para1: array of jbyte; para2: jint; para3: jint): Arr1jbyte; overload; virtual; abstract;  // throws javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    function engineDoFinal(para1: Arr1jbyte; para2: jint; para3: jint; para4: Arr1jbyte; para5: jint): jint; overload; virtual; abstract;  // throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    function engineDoFinal(var para1: array of jbyte; para2: jint; para3: jint; var para4: array of jbyte; para5: jint): jint; overload; virtual; abstract;  // throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    function engineDoFinal(para1: JNByteBuffer; para2: JNByteBuffer): jint; overload; virtual;  // throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    function engineWrap(para1: JSKey): Arr1jbyte; overload; virtual;  // throws javax.crypto.IllegalBlockSizeException, java.security.InvalidKeyException
    function engineUnwrap(para1: Arr1jbyte; para2: JLString; para3: jint): JSKey; overload; virtual;  // throws java.security.InvalidKeyException, java.security.NoSuchAlgorithmException
    function engineUnwrap(var para1: array of jbyte; para2: JLString; para3: jint): JSKey; overload; virtual;  // throws java.security.InvalidKeyException, java.security.NoSuchAlgorithmException
    function engineGetKeySize(para1: JSKey): jint; overload; virtual;  // throws java.security.InvalidKeyException
  end;

  JCEncryptedPrivateKeyInfo = class external 'javax.crypto' name 'EncryptedPrivateKeyInfo' (JLObject)
  public
    constructor create(para1: Arr1jbyte); overload;  // throws java.io.IOException
    constructor create(const para1: array of jbyte); overload;  // throws java.io.IOException
    constructor create(para1: JLString; para2: Arr1jbyte); overload;  // throws java.security.NoSuchAlgorithmException
    constructor create(para1: JLString; const para2: array of jbyte); overload;  // throws java.security.NoSuchAlgorithmException
    constructor create(para1: JSAlgorithmParameters; para2: Arr1jbyte); overload;  // throws java.security.NoSuchAlgorithmException
    constructor create(para1: JSAlgorithmParameters; const para2: array of jbyte); overload;  // throws java.security.NoSuchAlgorithmException
    function getAlgName(): JLString; overload; virtual;
    function getAlgParameters(): JSAlgorithmParameters; overload; virtual;
    function getEncryptedData(): Arr1jbyte; overload; virtual;
    function getKeySpec(para1: JCCipher): JSSPKCS8EncodedKeySpec; overload; virtual;  // throws java.security.spec.InvalidKeySpecException
    function getKeySpec(para1: JSKey): JSSPKCS8EncodedKeySpec; overload; virtual;  // throws java.security.NoSuchAlgorithmException, java.security.InvalidKeyException
    function getKeySpec(para1: JSKey; para2: JLString): JSSPKCS8EncodedKeySpec; overload; virtual;  // throws java.security.NoSuchProviderException, java.security.NoSuchAlgorithmException, java.security.InvalidKeyException
    function getKeySpec(para1: JSKey; para2: JSProvider): JSSPKCS8EncodedKeySpec; overload; virtual;  // throws java.security.NoSuchAlgorithmException, java.security.InvalidKeyException
    function getEncoded(): Arr1jbyte; overload; virtual;  // throws java.io.IOException
  end;

  JCExemptionMechanism = class external 'javax.crypto' name 'ExemptionMechanism' (JLObject)
  strict protected
    constructor create(para1: JCExemptionMechanismSpi; para2: JSProvider; para3: JLString); overload;
  public
    function getName(): JLString; overload; virtual; final;
    class function getInstance(para1: JLString): JCExemptionMechanism; static; overload; final;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JCExemptionMechanism; static; overload; final;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JCExemptionMechanism; static; overload; final;  // throws java.security.NoSuchAlgorithmException
    function getProvider(): JSProvider; overload; virtual; final;
    function isCryptoAllowed(para1: JSKey): jboolean; overload; virtual; final;  // throws javax.crypto.ExemptionMechanismException
    function getOutputSize(para1: jint): jint; overload; virtual; final;  // throws java.lang.IllegalStateException
    procedure init(para1: JSKey); overload; virtual; final;  // throws java.security.InvalidKeyException, javax.crypto.ExemptionMechanismException
    procedure init(para1: JSKey; para2: JSSAlgorithmParameterSpec); overload; virtual; final;  // throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException, javax.crypto.ExemptionMechanismException
    procedure init(para1: JSKey; para2: JSAlgorithmParameters); overload; virtual; final;  // throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException, javax.crypto.ExemptionMechanismException
    function genExemptionBlob(): Arr1jbyte; overload; virtual; final;  // throws java.lang.IllegalStateException, javax.crypto.ExemptionMechanismException
    function genExemptionBlob(para1: Arr1jbyte): jint; overload; virtual; final;  // throws java.lang.IllegalStateException, javax.crypto.ShortBufferException, javax.crypto.ExemptionMechanismException
    function genExemptionBlob(var para1: array of jbyte): jint; overload; virtual; final;  // throws java.lang.IllegalStateException, javax.crypto.ShortBufferException, javax.crypto.ExemptionMechanismException
    function genExemptionBlob(para1: Arr1jbyte; para2: jint): jint; overload; virtual; final;  // throws java.lang.IllegalStateException, javax.crypto.ShortBufferException, javax.crypto.ExemptionMechanismException
    function genExemptionBlob(var para1: array of jbyte; para2: jint): jint; overload; virtual; final;  // throws java.lang.IllegalStateException, javax.crypto.ShortBufferException, javax.crypto.ExemptionMechanismException
  strict protected
    procedure finalize(); overload; virtual;
  end;

  JCExemptionMechanismSpi = class abstract external 'javax.crypto' name 'ExemptionMechanismSpi' (JLObject)
  public
    constructor create(); overload;
  strict protected
    function engineGetOutputSize(para1: jint): jint; overload; virtual; abstract;
    procedure engineInit(para1: JSKey); overload; virtual; abstract;  // throws java.security.InvalidKeyException, javax.crypto.ExemptionMechanismException
    procedure engineInit(para1: JSKey; para2: JSSAlgorithmParameterSpec); overload; virtual; abstract;  // throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException, javax.crypto.ExemptionMechanismException
    procedure engineInit(para1: JSKey; para2: JSAlgorithmParameters); overload; virtual; abstract;  // throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException, javax.crypto.ExemptionMechanismException
    function engineGenExemptionBlob(): Arr1jbyte; overload; virtual; abstract;  // throws javax.crypto.ExemptionMechanismException
    function engineGenExemptionBlob(para1: Arr1jbyte; para2: jint): jint; overload; virtual; abstract;  // throws javax.crypto.ShortBufferException, javax.crypto.ExemptionMechanismException
    function engineGenExemptionBlob(var para1: array of jbyte; para2: jint): jint; overload; virtual; abstract;  // throws javax.crypto.ShortBufferException, javax.crypto.ExemptionMechanismException
  end;

  JCKeyAgreement = class external 'javax.crypto' name 'KeyAgreement' (JLObject)
  strict protected
    constructor create(para1: JCKeyAgreementSpi; para2: JSProvider; para3: JLString); overload;
  public
    function getAlgorithm(): JLString; overload; virtual; final;
    class function getInstance(para1: JLString): JCKeyAgreement; static; overload; final;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JCKeyAgreement; static; overload; final;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JCKeyAgreement; static; overload; final;  // throws java.security.NoSuchAlgorithmException
    function getProvider(): JSProvider; overload; virtual; final;
    procedure init(para1: JSKey); overload; virtual; final;  // throws java.security.InvalidKeyException
    procedure init(para1: JSKey; para2: JSSecureRandom); overload; virtual; final;  // throws java.security.InvalidKeyException
    procedure init(para1: JSKey; para2: JSSAlgorithmParameterSpec); overload; virtual; final;  // throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
    procedure init(para1: JSKey; para2: JSSAlgorithmParameterSpec; para3: JSSecureRandom); overload; virtual; final;  // throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
    function doPhase(para1: JSKey; para2: jboolean): JSKey; overload; virtual; final;  // throws java.security.InvalidKeyException, java.lang.IllegalStateException
    function generateSecret(): Arr1jbyte; overload; virtual; final;  // throws java.lang.IllegalStateException
    function generateSecret(para1: Arr1jbyte; para2: jint): jint; overload; virtual; final;  // throws java.lang.IllegalStateException, javax.crypto.ShortBufferException
    function generateSecret(var para1: array of jbyte; para2: jint): jint; overload; virtual; final;  // throws java.lang.IllegalStateException, javax.crypto.ShortBufferException
    function generateSecret(para1: JLString): JCSecretKey; overload; virtual; final;  // throws java.lang.IllegalStateException, java.security.NoSuchAlgorithmException, java.security.InvalidKeyException
  end;

  JCKeyAgreementSpi = class abstract external 'javax.crypto' name 'KeyAgreementSpi' (JLObject)
  public
    constructor create(); overload;
  strict protected
    procedure engineInit(para1: JSKey; para2: JSSecureRandom); overload; virtual; abstract;  // throws java.security.InvalidKeyException
    procedure engineInit(para1: JSKey; para2: JSSAlgorithmParameterSpec; para3: JSSecureRandom); overload; virtual; abstract;  // throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
    function engineDoPhase(para1: JSKey; para2: jboolean): JSKey; overload; virtual; abstract;  // throws java.security.InvalidKeyException, java.lang.IllegalStateException
    function engineGenerateSecret(): Arr1jbyte; overload; virtual; abstract;  // throws java.lang.IllegalStateException
    function engineGenerateSecret(para1: Arr1jbyte; para2: jint): jint; overload; virtual; abstract;  // throws java.lang.IllegalStateException, javax.crypto.ShortBufferException
    function engineGenerateSecret(var para1: array of jbyte; para2: jint): jint; overload; virtual; abstract;  // throws java.lang.IllegalStateException, javax.crypto.ShortBufferException
    function engineGenerateSecret(para1: JLString): JCSecretKey; overload; virtual; abstract;  // throws java.lang.IllegalStateException, java.security.NoSuchAlgorithmException, java.security.InvalidKeyException
  end;

  JCKeyGenerator = class external 'javax.crypto' name 'KeyGenerator' (JLObject)
  strict protected
    constructor create(para1: JCKeyGeneratorSpi; para2: JSProvider; para3: JLString); overload;
  public
    function getAlgorithm(): JLString; overload; virtual; final;
    class function getInstance(para1: JLString): JCKeyGenerator; static; overload; final;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JCKeyGenerator; static; overload; final;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JCKeyGenerator; static; overload; final;  // throws java.security.NoSuchAlgorithmException
    function getProvider(): JSProvider; overload; virtual; final;
    procedure init(para1: JSSecureRandom); overload; virtual; final;
    procedure init(para1: JSSAlgorithmParameterSpec); overload; virtual; final;  // throws java.security.InvalidAlgorithmParameterException
    procedure init(para1: JSSAlgorithmParameterSpec; para2: JSSecureRandom); overload; virtual; final;  // throws java.security.InvalidAlgorithmParameterException
    procedure init(para1: jint); overload; virtual; final;
    procedure init(para1: jint; para2: JSSecureRandom); overload; virtual; final;
    function generateKey(): JCSecretKey; overload; virtual; final;
  end;

  JCKeyGeneratorSpi = class abstract external 'javax.crypto' name 'KeyGeneratorSpi' (JLObject)
  public
    constructor create(); overload;
  strict protected
    procedure engineInit(para1: JSSecureRandom); overload; virtual; abstract;
    procedure engineInit(para1: JSSAlgorithmParameterSpec; para2: JSSecureRandom); overload; virtual; abstract;  // throws java.security.InvalidAlgorithmParameterException
    procedure engineInit(para1: jint; para2: JSSecureRandom); overload; virtual; abstract;
    function engineGenerateKey(): JCSecretKey; overload; virtual; abstract;
  end;

  JCMacSpi = class abstract external 'javax.crypto' name 'MacSpi' (JLObject)
  public
    constructor create(); overload;
  strict protected
    function engineGetMacLength(): jint; overload; virtual; abstract;
    procedure engineInit(para1: JSKey; para2: JSSAlgorithmParameterSpec); overload; virtual; abstract;  // throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
    procedure engineUpdate(para1: jbyte); overload; virtual; abstract;
    procedure engineUpdate(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual; abstract;
    procedure engineUpdate(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual; abstract;
    procedure engineUpdate(para1: JNByteBuffer); overload; virtual;
    function engineDoFinal(): Arr1jbyte; overload; virtual; abstract;
    procedure engineReset(); overload; virtual; abstract;
  public
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  JCSecretKeyFactory = class external 'javax.crypto' name 'SecretKeyFactory' (JLObject)
  strict protected
    constructor create(para1: JCSecretKeyFactorySpi; para2: JSProvider; para3: JLString); overload;
  public
    class function getInstance(para1: JLString): JCSecretKeyFactory; static; overload; final;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JCSecretKeyFactory; static; overload; final;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JCSecretKeyFactory; static; overload; final;  // throws java.security.NoSuchAlgorithmException
    function getProvider(): JSProvider; overload; virtual; final;
    function getAlgorithm(): JLString; overload; virtual; final;
    function generateSecret(para1: JSSKeySpec): JCSecretKey; overload; virtual; final;  // throws java.security.spec.InvalidKeySpecException
    function getKeySpec(para1: JCSecretKey; para2: JLClass): JSSKeySpec; overload; virtual; final;  // throws java.security.spec.InvalidKeySpecException
    function translateKey(para1: JCSecretKey): JCSecretKey; overload; virtual; final;  // throws java.security.InvalidKeyException
  end;

  JCSecretKeyFactorySpi = class abstract external 'javax.crypto' name 'SecretKeyFactorySpi' (JLObject)
  public
    constructor create(); overload;
  strict protected
    function engineGenerateSecret(para1: JSSKeySpec): JCSecretKey; overload; virtual; abstract;  // throws java.security.spec.InvalidKeySpecException
    function engineGetKeySpec(para1: JCSecretKey; para2: JLClass): JSSKeySpec; overload; virtual; abstract;  // throws java.security.spec.InvalidKeySpecException
    function engineTranslateKey(para1: JCSecretKey): JCSecretKey; overload; virtual; abstract;  // throws java.security.InvalidKeyException
  end;

  JCSunJCE_b = class sealed external 'javax.crypto' name 'SunJCE_b' (JLObject)
  end;

  JCSunJCE_c = class sealed external 'javax.crypto' name 'SunJCE_c' (JLObject)
  public
    type
      Inners = class;
      Arr1Inners = array of Inners;
      Arr2Inners = array of Arr1Inners;
      Arr3Inners = array of Arr2Inners;
      Inners = class external 'javax.crypto' name 's' 
      end;

  end;

  JCSunJCE_e = class sealed external 'javax.crypto' name 'SunJCE_e' (JLObject)
  public
    type
      Innerp = class;
      Arr1Innerp = array of Innerp;
      Arr2Innerp = array of Arr1Innerp;
      Arr3Innerp = array of Arr2Innerp;
      Innerq = class;
      Arr1Innerq = array of Innerq;
      Arr2Innerq = array of Arr1Innerq;
      Arr3Innerq = array of Arr2Innerq;
      Innero = class;
      Arr1Innero = array of Innero;
      Arr2Innero = array of Arr1Innero;
      Arr3Innero = array of Arr2Innero;
      Innerp = class sealed external 'javax.crypto' name 'p' 
      end;

      Innerq = class external 'javax.crypto' name 'q' 
      end;

      Innero = class external 'javax.crypto' name 'o' 
      end;

  end;

  JCIDHKey = interface external 'javax.crypto.interfaces' name 'DHKey' 
    function getParams(): JCSDHParameterSpec; overload;
  end;

  JCSPSource = class external 'javax.crypto.spec' name 'PSource' (JLObject)
  public
    type
      InnerPSpecified = class;
      Arr1InnerPSpecified = array of InnerPSpecified;
      Arr2InnerPSpecified = array of Arr1InnerPSpecified;
      Arr3InnerPSpecified = array of Arr2InnerPSpecified;
      InnerPSpecified = class sealed external 'javax.crypto.spec' name 'PSpecified' (JCSPSource)
      public
        final class var
          fDEFAULT: JCSPSource.InnerPSpecified; external name 'DEFAULT';
      public
        constructor create(para1: Arr1jbyte); overload;
        constructor create(const para1: array of jbyte); overload;
        function getValue(): Arr1jbyte; overload; virtual;
      end;

  strict protected
    constructor create(para1: JLString); overload;
  public
    function getAlgorithm(): JLString; overload; virtual;
  end;

  JIIIOImage = class external 'javax.imageio' name 'IIOImage' (JLObject)
  strict protected
    var
      fimage: JAIRenderedImage; external name 'image';
      fraster: JAIRaster; external name 'raster';
      fthumbnails: JUList; external name 'thumbnails';
      fmetadata: JIMIIOMetadata; external name 'metadata';
  public
    constructor create(para1: JAIRenderedImage; para2: JUList; para3: JIMIIOMetadata); overload;
    constructor create(para1: JAIRaster; para2: JUList; para3: JIMIIOMetadata); overload;
    function getRenderedImage(): JAIRenderedImage; overload; virtual;
    procedure setRenderedImage(para1: JAIRenderedImage); overload; virtual;
    function hasRaster(): jboolean; overload; virtual;
    function getRaster(): JAIRaster; overload; virtual;
    procedure setRaster(para1: JAIRaster); overload; virtual;
    function getNumThumbnails(): jint; overload; virtual;
    function getThumbnail(para1: jint): JAIBufferedImage; overload; virtual;
    function getThumbnails(): JUList; overload; virtual;
    procedure setThumbnails(para1: JUList); overload; virtual;
    function getMetadata(): JIMIIOMetadata; overload; virtual;
    procedure setMetadata(para1: JIMIIOMetadata); overload; virtual;
  end;

  JIIIOParam = class abstract external 'javax.imageio' name 'IIOParam' (JLObject)
  strict protected
    var
      fsourceRegion: JARectangle; external name 'sourceRegion';
      fsourceXSubsampling: jint; external name 'sourceXSubsampling';
      fsourceYSubsampling: jint; external name 'sourceYSubsampling';
      fsubsamplingXOffset: jint; external name 'subsamplingXOffset';
      fsubsamplingYOffset: jint; external name 'subsamplingYOffset';
      fsourceBands: Arr1jint; external name 'sourceBands';
      fdestinationType: JIImageTypeSpecifier; external name 'destinationType';
      fdestinationOffset: JAPoint; external name 'destinationOffset';
      fdefaultController: JIIIOParamController; external name 'defaultController';
      fcontroller: JIIIOParamController; external name 'controller';
  strict protected
    constructor create(); overload;
  public
    procedure setSourceRegion(para1: JARectangle); overload; virtual;
    function getSourceRegion(): JARectangle; overload; virtual;
    procedure setSourceSubsampling(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    function getSourceXSubsampling(): jint; overload; virtual;
    function getSourceYSubsampling(): jint; overload; virtual;
    function getSubsamplingXOffset(): jint; overload; virtual;
    function getSubsamplingYOffset(): jint; overload; virtual;
    procedure setSourceBands(para1: Arr1jint); overload; virtual;
    procedure setSourceBands(var para1: array of jint); overload; virtual;
    function getSourceBands(): Arr1jint; overload; virtual;
    procedure setDestinationType(para1: JIImageTypeSpecifier); overload; virtual;
    function getDestinationType(): JIImageTypeSpecifier; overload; virtual;
    procedure setDestinationOffset(para1: JAPoint); overload; virtual;
    function getDestinationOffset(): JAPoint; overload; virtual;
    procedure setController(para1: JIIIOParamController); overload; virtual;
    function getController(): JIIIOParamController; overload; virtual;
    function getDefaultController(): JIIIOParamController; overload; virtual;
    function hasController(): jboolean; overload; virtual;
    function activateController(): jboolean; overload; virtual;
  end;

  JIIIOParamController = interface external 'javax.imageio' name 'IIOParamController' 
    function activate(para1: JIIIOParam): jboolean; overload;
  end;

  JIImageIO = class sealed external 'javax.imageio' name 'ImageIO' (JLObject)
  public
    type
      InnerCacheInfo = class;
      Arr1InnerCacheInfo = array of InnerCacheInfo;
      Arr2InnerCacheInfo = array of Arr1InnerCacheInfo;
      Arr3InnerCacheInfo = array of Arr2InnerCacheInfo;
      InnerCanDecodeInputFilter = class;
      Arr1InnerCanDecodeInputFilter = array of InnerCanDecodeInputFilter;
      Arr2InnerCanDecodeInputFilter = array of Arr1InnerCanDecodeInputFilter;
      Arr3InnerCanDecodeInputFilter = array of Arr2InnerCanDecodeInputFilter;
      InnerCanEncodeImageAndFormatFilter = class;
      Arr1InnerCanEncodeImageAndFormatFilter = array of InnerCanEncodeImageAndFormatFilter;
      Arr2InnerCanEncodeImageAndFormatFilter = array of Arr1InnerCanEncodeImageAndFormatFilter;
      Arr3InnerCanEncodeImageAndFormatFilter = array of Arr2InnerCanEncodeImageAndFormatFilter;
      InnerContainsFilter = class;
      Arr1InnerContainsFilter = array of InnerContainsFilter;
      Arr2InnerContainsFilter = array of Arr1InnerContainsFilter;
      Arr3InnerContainsFilter = array of Arr2InnerContainsFilter;
      InnerTranscoderFilter = class;
      Arr1InnerTranscoderFilter = array of InnerTranscoderFilter;
      Arr2InnerTranscoderFilter = array of Arr1InnerTranscoderFilter;
      Arr3InnerTranscoderFilter = array of Arr2InnerTranscoderFilter;
      InnerImageReaderIterator = class;
      Arr1InnerImageReaderIterator = array of InnerImageReaderIterator;
      Arr2InnerImageReaderIterator = array of Arr1InnerImageReaderIterator;
      Arr3InnerImageReaderIterator = array of Arr2InnerImageReaderIterator;
      InnerImageTranscoderIterator = class;
      Arr1InnerImageTranscoderIterator = array of InnerImageTranscoderIterator;
      Arr2InnerImageTranscoderIterator = array of Arr1InnerImageTranscoderIterator;
      Arr3InnerImageTranscoderIterator = array of Arr2InnerImageTranscoderIterator;
      InnerImageWriterIterator = class;
      Arr1InnerImageWriterIterator = array of InnerImageWriterIterator;
      Arr2InnerImageWriterIterator = array of Arr1InnerImageWriterIterator;
      Arr3InnerImageWriterIterator = array of Arr2InnerImageWriterIterator;
      InnerSpiInfo = class;
      Arr1InnerSpiInfo = array of InnerSpiInfo;
      Arr2InnerSpiInfo = array of Arr1InnerSpiInfo;
      Arr3InnerSpiInfo = array of Arr2InnerSpiInfo;
      InnerCacheInfo = class external 'javax.imageio' name 'CacheInfo' 
      end;

      InnerCanDecodeInputFilter = class external 'javax.imageio' name 'CanDecodeInputFilter' 
      end;

      InnerCanEncodeImageAndFormatFilter = class external 'javax.imageio' name 'CanEncodeImageAndFormatFilter' 
      end;

      InnerContainsFilter = class external 'javax.imageio' name 'ContainsFilter' 
      end;

      InnerTranscoderFilter = class external 'javax.imageio' name 'TranscoderFilter' 
      end;

      InnerImageReaderIterator = class external 'javax.imageio' name 'ImageReaderIterator' 
      end;

      InnerImageTranscoderIterator = class external 'javax.imageio' name 'ImageTranscoderIterator' 
      end;

      InnerImageWriterIterator = class external 'javax.imageio' name 'ImageWriterIterator' 
      end;

      InnerSpiInfo = class abstract external 'javax.imageio' name 'SpiInfo' 
      end;

  public
    class procedure scanForPlugins(); static; overload;
    class procedure setUseCache(para1: jboolean); static; overload;
    class function getUseCache(): jboolean; static; overload;
    class procedure setCacheDirectory(para1: JIFile); static; overload;
    class function getCacheDirectory(): JIFile; static; overload;
    class function createImageInputStream(para1: JLObject): JISImageInputStream; static; overload;  // throws java.io.IOException
    class function createImageOutputStream(para1: JLObject): JISImageOutputStream; static; overload;  // throws java.io.IOException
    class function getReaderFormatNames(): Arr1JLString; static; overload;
    class function getReaderMIMETypes(): Arr1JLString; static; overload;
    class function getReaderFileSuffixes(): Arr1JLString; static; overload;
    class function getImageReaders(para1: JLObject): JUIterator; static; overload;
    class function getImageReadersByFormatName(para1: JLString): JUIterator; static; overload;
    class function getImageReadersBySuffix(para1: JLString): JUIterator; static; overload;
    class function getImageReadersByMIMEType(para1: JLString): JUIterator; static; overload;
    class function getWriterFormatNames(): Arr1JLString; static; overload;
    class function getWriterMIMETypes(): Arr1JLString; static; overload;
    class function getWriterFileSuffixes(): Arr1JLString; static; overload;
    class function getImageWritersByFormatName(para1: JLString): JUIterator; static; overload;
    class function getImageWritersBySuffix(para1: JLString): JUIterator; static; overload;
    class function getImageWritersByMIMEType(para1: JLString): JUIterator; static; overload;
    class function getImageWriter(para1: JIImageReader): JIImageWriter; static; overload;
    class function getImageReader(para1: JIImageWriter): JIImageReader; static; overload;
    class function getImageWriters(para1: JIImageTypeSpecifier; para2: JLString): JUIterator; static; overload;
    class function getImageTranscoders(para1: JIImageReader; para2: JIImageWriter): JUIterator; static; overload;
    class function read(para1: JIFile): JAIBufferedImage; static; overload;  // throws java.io.IOException
    class function read(para1: JIInputStream): JAIBufferedImage; static; overload;  // throws java.io.IOException
    class function read(para1: JNURL): JAIBufferedImage; static; overload;  // throws java.io.IOException
    class function read(para1: JISImageInputStream): JAIBufferedImage; static; overload;  // throws java.io.IOException
    class function write(para1: JAIRenderedImage; para2: JLString; para3: JISImageOutputStream): jboolean; static; overload;  // throws java.io.IOException
    class function write(para1: JAIRenderedImage; para2: JLString; para3: JIFile): jboolean; static; overload;  // throws java.io.IOException
    class function write(para1: JAIRenderedImage; para2: JLString; para3: JIOutputStream): jboolean; static; overload;  // throws java.io.IOException
  end;

  JIImageReader = class abstract external 'javax.imageio' name 'ImageReader' (JLObject)
  strict protected
    var
      foriginatingProvider: JISImageReaderSpi; external name 'originatingProvider';
      finput: JLObject; external name 'input';
      fseekForwardOnly: jboolean; external name 'seekForwardOnly';
      fignoreMetadata: jboolean; external name 'ignoreMetadata';
      fminIndex: jint; external name 'minIndex';
      favailableLocales: Arr1JULocale; external name 'availableLocales';
      flocale: JULocale; external name 'locale';
      fwarningListeners: JUList; external name 'warningListeners';
      fwarningLocales: JUList; external name 'warningLocales';
      fprogressListeners: JUList; external name 'progressListeners';
      fupdateListeners: JUList; external name 'updateListeners';
  strict protected
    constructor create(para1: JISImageReaderSpi); overload;
  public
    function getFormatName(): JLString; overload; virtual;  // throws java.io.IOException
    function getOriginatingProvider(): JISImageReaderSpi; overload; virtual;
    procedure setInput(para1: JLObject; para2: jboolean; para3: jboolean); overload; virtual;
    procedure setInput(para1: JLObject; para2: jboolean); overload; virtual;
    procedure setInput(para1: JLObject); overload; virtual;
    function getInput(): JLObject; overload; virtual;
    function isSeekForwardOnly(): jboolean; overload; virtual;
    function isIgnoringMetadata(): jboolean; overload; virtual;
    function getMinIndex(): jint; overload; virtual;
    function getAvailableLocales(): Arr1JULocale; overload; virtual;
    procedure setLocale(para1: JULocale); overload; virtual;
    function getLocale(): JULocale; overload; virtual;
    function getNumImages(para1: jboolean): jint; overload; virtual; abstract;  // throws java.io.IOException
    function getWidth(para1: jint): jint; overload; virtual; abstract;  // throws java.io.IOException
    function getHeight(para1: jint): jint; overload; virtual; abstract;  // throws java.io.IOException
    function isRandomAccessEasy(para1: jint): jboolean; overload; virtual;  // throws java.io.IOException
    function getAspectRatio(para1: jint): jfloat; overload; virtual;  // throws java.io.IOException
    function getRawImageType(para1: jint): JIImageTypeSpecifier; overload; virtual;  // throws java.io.IOException
    function getImageTypes(para1: jint): JUIterator; overload; virtual; abstract;  // throws java.io.IOException
    function getDefaultReadParam(): JIImageReadParam; overload; virtual;
    function getStreamMetadata(): JIMIIOMetadata; overload; virtual; abstract;  // throws java.io.IOException
    function getStreamMetadata(para1: JLString; para2: JUSet): JIMIIOMetadata; overload; virtual;  // throws java.io.IOException
    function getImageMetadata(para1: jint): JIMIIOMetadata; overload; virtual; abstract;  // throws java.io.IOException
    function getImageMetadata(para1: jint; para2: JLString; para3: JUSet): JIMIIOMetadata; overload; virtual;  // throws java.io.IOException
    function read(para1: jint): JAIBufferedImage; overload; virtual;  // throws java.io.IOException
    function read(para1: jint; para2: JIImageReadParam): JAIBufferedImage; overload; virtual; abstract;  // throws java.io.IOException
    function readAll(para1: jint; para2: JIImageReadParam): JIIIOImage; overload; virtual;  // throws java.io.IOException
    function readAll(para1: JUIterator): JUIterator; overload; virtual;  // throws java.io.IOException
    function canReadRaster(): jboolean; overload; virtual;
    function readRaster(para1: jint; para2: JIImageReadParam): JAIRaster; overload; virtual;  // throws java.io.IOException
    function isImageTiled(para1: jint): jboolean; overload; virtual;  // throws java.io.IOException
    function getTileWidth(para1: jint): jint; overload; virtual;  // throws java.io.IOException
    function getTileHeight(para1: jint): jint; overload; virtual;  // throws java.io.IOException
    function getTileGridXOffset(para1: jint): jint; overload; virtual;  // throws java.io.IOException
    function getTileGridYOffset(para1: jint): jint; overload; virtual;  // throws java.io.IOException
    function readTile(para1: jint; para2: jint; para3: jint): JAIBufferedImage; overload; virtual;  // throws java.io.IOException
    function readTileRaster(para1: jint; para2: jint; para3: jint): JAIRaster; overload; virtual;  // throws java.io.IOException
    function readAsRenderedImage(para1: jint; para2: JIImageReadParam): JAIRenderedImage; overload; virtual;  // throws java.io.IOException
    function readerSupportsThumbnails(): jboolean; overload; virtual;
    function hasThumbnails(para1: jint): jboolean; overload; virtual;  // throws java.io.IOException
    function getNumThumbnails(para1: jint): jint; overload; virtual;  // throws java.io.IOException
    function getThumbnailWidth(para1: jint; para2: jint): jint; overload; virtual;  // throws java.io.IOException
    function getThumbnailHeight(para1: jint; para2: jint): jint; overload; virtual;  // throws java.io.IOException
    function readThumbnail(para1: jint; para2: jint): JAIBufferedImage; overload; virtual;  // throws java.io.IOException
    procedure abort(); overload; virtual;
  strict protected
    function abortRequested(): jboolean; overload; virtual;
    procedure clearAbortRequest(); overload; virtual;
  public
    procedure addIIOReadWarningListener(para1: JIEIIOReadWarningListener); overload; virtual;
    procedure removeIIOReadWarningListener(para1: JIEIIOReadWarningListener); overload; virtual;
    procedure removeAllIIOReadWarningListeners(); overload; virtual;
    procedure addIIOReadProgressListener(para1: JIEIIOReadProgressListener); overload; virtual;
    procedure removeIIOReadProgressListener(para1: JIEIIOReadProgressListener); overload; virtual;
    procedure removeAllIIOReadProgressListeners(); overload; virtual;
    procedure addIIOReadUpdateListener(para1: JIEIIOReadUpdateListener); overload; virtual;
    procedure removeIIOReadUpdateListener(para1: JIEIIOReadUpdateListener); overload; virtual;
    procedure removeAllIIOReadUpdateListeners(); overload; virtual;
  strict protected
    procedure processSequenceStarted(para1: jint); overload; virtual;
    procedure processSequenceComplete(); overload; virtual;
    procedure processImageStarted(para1: jint); overload; virtual;
    procedure processImageProgress(para1: jfloat); overload; virtual;
    procedure processImageComplete(); overload; virtual;
    procedure processThumbnailStarted(para1: jint; para2: jint); overload; virtual;
    procedure processThumbnailProgress(para1: jfloat); overload; virtual;
    procedure processThumbnailComplete(); overload; virtual;
    procedure processReadAborted(); overload; virtual;
    procedure processPassStarted(para1: JAIBufferedImage; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: Arr1jint); overload; virtual;
    procedure processPassStarted(para1: JAIBufferedImage; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; var para9: array of jint); overload; virtual;
    procedure processImageUpdate(para1: JAIBufferedImage; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: Arr1jint); overload; virtual;
    procedure processImageUpdate(para1: JAIBufferedImage; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; var para8: array of jint); overload; virtual;
    procedure processPassComplete(para1: JAIBufferedImage); overload; virtual;
    procedure processThumbnailPassStarted(para1: JAIBufferedImage; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: Arr1jint); overload; virtual;
    procedure processThumbnailPassStarted(para1: JAIBufferedImage; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; var para9: array of jint); overload; virtual;
    procedure processThumbnailUpdate(para1: JAIBufferedImage; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: Arr1jint); overload; virtual;
    procedure processThumbnailUpdate(para1: JAIBufferedImage; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; var para8: array of jint); overload; virtual;
    procedure processThumbnailPassComplete(para1: JAIBufferedImage); overload; virtual;
    procedure processWarningOccurred(para1: JLString); overload; virtual;
    procedure processWarningOccurred(para1: JLString; para2: JLString); overload; virtual;
  public
    procedure reset(); overload; virtual;
    procedure dispose(); overload; virtual;
  strict protected
    class function getSourceRegion(para1: JIImageReadParam; para2: jint; para3: jint): JARectangle; static; overload;
    class procedure computeRegions(para1: JIImageReadParam; para2: jint; para3: jint; para4: JAIBufferedImage; para5: JARectangle; para6: JARectangle); static; overload;
    class procedure checkReadParamBandSettings(para1: JIImageReadParam; para2: jint; para3: jint); static; overload;
    class function getDestination(para1: JIImageReadParam; para2: JUIterator; para3: jint; para4: jint): JAIBufferedImage; static; overload;  // throws javax.imageio.IIOException
  end;

  JIImageTranscoder = interface external 'javax.imageio' name 'ImageTranscoder' 
    function convertStreamMetadata(para1: JIMIIOMetadata; para2: JIImageWriteParam): JIMIIOMetadata; overload;
    function convertImageMetadata(para1: JIMIIOMetadata; para2: JIImageTypeSpecifier; para3: JIImageWriteParam): JIMIIOMetadata; overload;
  end;

  JIImageTypeSpecifier = class external 'javax.imageio' name 'ImageTypeSpecifier' (JLObject)
  public
    type
      InnerBanded = class;
      Arr1InnerBanded = array of InnerBanded;
      Arr2InnerBanded = array of Arr1InnerBanded;
      Arr3InnerBanded = array of Arr2InnerBanded;
      InnerGrayscale = class;
      Arr1InnerGrayscale = array of InnerGrayscale;
      Arr2InnerGrayscale = array of Arr1InnerGrayscale;
      Arr3InnerGrayscale = array of Arr2InnerGrayscale;
      InnerIndexed = class;
      Arr1InnerIndexed = array of InnerIndexed;
      Arr2InnerIndexed = array of Arr1InnerIndexed;
      Arr3InnerIndexed = array of Arr2InnerIndexed;
      InnerInterleaved = class;
      Arr1InnerInterleaved = array of InnerInterleaved;
      Arr2InnerInterleaved = array of Arr1InnerInterleaved;
      Arr3InnerInterleaved = array of Arr2InnerInterleaved;
      InnerPacked = class;
      Arr1InnerPacked = array of InnerPacked;
      Arr2InnerPacked = array of Arr1InnerPacked;
      Arr3InnerPacked = array of Arr2InnerPacked;
      InnerBanded = class external 'javax.imageio' name 'Banded' 
      end;

      InnerGrayscale = class external 'javax.imageio' name 'Grayscale' 
      end;

      InnerIndexed = class external 'javax.imageio' name 'Indexed' 
      end;

      InnerInterleaved = class external 'javax.imageio' name 'Interleaved' 
      end;

      InnerPacked = class external 'javax.imageio' name 'Packed' 
      end;

  strict protected
    var
      fcolorModel: JAIColorModel; external name 'colorModel';
      fsampleModel: JAISampleModel; external name 'sampleModel';
  public
    constructor create(para1: JAIColorModel; para2: JAISampleModel); overload;
    constructor create(para1: JAIRenderedImage); overload;
    class function createPacked(para1: JACColorSpace; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jboolean): JIImageTypeSpecifier; static; overload;
    class function createInterleaved(para1: JACColorSpace; para2: Arr1jint; para3: jint; para4: jboolean; para5: jboolean): JIImageTypeSpecifier; static; overload;
    class function createInterleaved(para1: JACColorSpace; var para2: array of jint; para3: jint; para4: jboolean; para5: jboolean): JIImageTypeSpecifier; static; overload;
    class function createBanded(para1: JACColorSpace; para2: Arr1jint; para3: Arr1jint; para4: jint; para5: jboolean; para6: jboolean): JIImageTypeSpecifier; static; overload;
    class function createBanded(para1: JACColorSpace; var para2: array of jint; var para3: array of jint; para4: jint; para5: jboolean; para6: jboolean): JIImageTypeSpecifier; static; overload;
    class function createGrayscale(para1: jint; para2: jint; para3: jboolean): JIImageTypeSpecifier; static; overload;
    class function createGrayscale(para1: jint; para2: jint; para3: jboolean; para4: jboolean): JIImageTypeSpecifier; static; overload;
    class function createIndexed(para1: Arr1jbyte; para2: Arr1jbyte; para3: Arr1jbyte; para4: Arr1jbyte; para5: jint; para6: jint): JIImageTypeSpecifier; static; overload;
    class function createIndexed(var para1: array of jbyte; var para2: array of jbyte; var para3: array of jbyte; var para4: array of jbyte; para5: jint; para6: jint): JIImageTypeSpecifier; static; overload;
    class function createFromBufferedImageType(para1: jint): JIImageTypeSpecifier; static; overload;
    class function createFromRenderedImage(para1: JAIRenderedImage): JIImageTypeSpecifier; static; overload;
    function getBufferedImageType(): jint; overload; virtual;
    function getNumComponents(): jint; overload; virtual;
    function getNumBands(): jint; overload; virtual;
    function getBitsPerBand(para1: jint): jint; overload; virtual;
    function getSampleModel(): JAISampleModel; overload; virtual;
    function getSampleModel(para1: jint; para2: jint): JAISampleModel; overload; virtual;
    function getColorModel(): JAIColorModel; overload; virtual;
    function createBufferedImage(para1: jint; para2: jint): JAIBufferedImage; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JIMIIOMetadata = class abstract external 'javax.imageio.metadata' name 'IIOMetadata' (JLObject)
  strict protected
    var
      fstandardFormatSupported: jboolean; external name 'standardFormatSupported';
      fnativeMetadataFormatName: JLString; external name 'nativeMetadataFormatName';
      fnativeMetadataFormatClassName: JLString; external name 'nativeMetadataFormatClassName';
      fextraMetadataFormatNames: Arr1JLString; external name 'extraMetadataFormatNames';
      fextraMetadataFormatClassNames: Arr1JLString; external name 'extraMetadataFormatClassNames';
      fdefaultController: JIMIIOMetadataController; external name 'defaultController';
      fcontroller: JIMIIOMetadataController; external name 'controller';
  strict protected
    constructor create(); overload;
    constructor create(para1: jboolean; para2: JLString; para3: JLString; para4: Arr1JLString; para5: Arr1JLString); overload;
    constructor create(para1: jboolean; para2: JLString; para3: JLString; const para4: array of JLString; const para5: array of JLString); overload;
  public
    function isStandardMetadataFormatSupported(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual; abstract;
    function getNativeMetadataFormatName(): JLString; overload; virtual;
    function getExtraMetadataFormatNames(): Arr1JLString; overload; virtual;
    function getMetadataFormatNames(): Arr1JLString; overload; virtual;
    function getMetadataFormat(para1: JLString): JIMIIOMetadataFormat; overload; virtual;
    function getAsTree(para1: JLString): OWDNode; overload; virtual; abstract;
    procedure mergeTree(para1: JLString; para2: OWDNode); overload; virtual; abstract;  // throws javax.imageio.metadata.IIOInvalidTreeException
  strict protected
    function getStandardChromaNode(): JIMIIOMetadataNode; overload; virtual;
    function getStandardCompressionNode(): JIMIIOMetadataNode; overload; virtual;
    function getStandardDataNode(): JIMIIOMetadataNode; overload; virtual;
    function getStandardDimensionNode(): JIMIIOMetadataNode; overload; virtual;
    function getStandardDocumentNode(): JIMIIOMetadataNode; overload; virtual;
    function getStandardTextNode(): JIMIIOMetadataNode; overload; virtual;
    function getStandardTileNode(): JIMIIOMetadataNode; overload; virtual;
    function getStandardTransparencyNode(): JIMIIOMetadataNode; overload; virtual;
    function getStandardTree(): JIMIIOMetadataNode; overload; virtual; final;
  public
    procedure setFromTree(para1: JLString; para2: OWDNode); overload; virtual;  // throws javax.imageio.metadata.IIOInvalidTreeException
    procedure reset(); overload; virtual; abstract;
    procedure setController(para1: JIMIIOMetadataController); overload; virtual;
    function getController(): JIMIIOMetadataController; overload; virtual;
    function getDefaultController(): JIMIIOMetadataController; overload; virtual;
    function hasController(): jboolean; overload; virtual;
    function activateController(): jboolean; overload; virtual;
  end;

  JIMIIOMetadataController = interface external 'javax.imageio.metadata' name 'IIOMetadataController' 
    function activate(para1: JIMIIOMetadata): jboolean; overload;
  end;

  JIMIIOMetadataFormat = interface external 'javax.imageio.metadata' name 'IIOMetadataFormat' 
    const
      CHILD_POLICY_EMPTY = 0;
      CHILD_POLICY_ALL = 1;
      CHILD_POLICY_SOME = 2;
      CHILD_POLICY_CHOICE = 3;
      CHILD_POLICY_SEQUENCE = 4;
      CHILD_POLICY_REPEAT = 5;
      CHILD_POLICY_MAX = 5;
      VALUE_NONE = 0;
      VALUE_ARBITRARY = 1;
      VALUE_RANGE = 2;
      VALUE_RANGE_MIN_INCLUSIVE_MASK = 4;
      VALUE_RANGE_MAX_INCLUSIVE_MASK = 8;
      VALUE_RANGE_MIN_INCLUSIVE = 6;
      VALUE_RANGE_MAX_INCLUSIVE = 10;
      VALUE_RANGE_MIN_MAX_INCLUSIVE = 14;
      VALUE_ENUMERATION = 16;
      VALUE_LIST = 32;
      DATATYPE_STRING = 0;
      DATATYPE_BOOLEAN = 1;
      DATATYPE_INTEGER = 2;
      DATATYPE_FLOAT = 3;
      DATATYPE_DOUBLE = 4;
    function getRootName(): JLString; overload;
    function canNodeAppear(para1: JLString; para2: JIImageTypeSpecifier): jboolean; overload;
    function getElementMinChildren(para1: JLString): jint; overload;
    function getElementMaxChildren(para1: JLString): jint; overload;
    function getElementDescription(para1: JLString; para2: JULocale): JLString; overload;
    function getChildPolicy(para1: JLString): jint; overload;
    function getChildNames(para1: JLString): Arr1JLString; overload;
    function getAttributeNames(para1: JLString): Arr1JLString; overload;
    function getAttributeValueType(para1: JLString; para2: JLString): jint; overload;
    function getAttributeDataType(para1: JLString; para2: JLString): jint; overload;
    function isAttributeRequired(para1: JLString; para2: JLString): jboolean; overload;
    function getAttributeDefaultValue(para1: JLString; para2: JLString): JLString; overload;
    function getAttributeEnumerations(para1: JLString; para2: JLString): Arr1JLString; overload;
    function getAttributeMinValue(para1: JLString; para2: JLString): JLString; overload;
    function getAttributeMaxValue(para1: JLString; para2: JLString): JLString; overload;
    function getAttributeListMinLength(para1: JLString; para2: JLString): jint; overload;
    function getAttributeListMaxLength(para1: JLString; para2: JLString): jint; overload;
    function getAttributeDescription(para1: JLString; para2: JLString; para3: JULocale): JLString; overload;
    function getObjectValueType(para1: JLString): jint; overload;
    function getObjectClass(para1: JLString): JLClass; overload;
    function getObjectDefaultValue(para1: JLString): JLObject; overload;
    function getObjectEnumerations(para1: JLString): Arr1JLObject; overload;
    function getObjectMinValue(para1: JLString): JLComparable; overload;
    function getObjectMaxValue(para1: JLString): JLComparable; overload;
    function getObjectArrayMinLength(para1: JLString): jint; overload;
    function getObjectArrayMaxLength(para1: JLString): jint; overload;
  end;

  JIPJJPEGHuffmanTable = class external 'javax.imageio.plugins.jpeg' name 'JPEGHuffmanTable' (JLObject)
  public
    final class var
      fStdDCLuminance: JIPJJPEGHuffmanTable; external name 'StdDCLuminance';
      fStdDCChrominance: JIPJJPEGHuffmanTable; external name 'StdDCChrominance';
      fStdACLuminance: JIPJJPEGHuffmanTable; external name 'StdACLuminance';
      fStdACChrominance: JIPJJPEGHuffmanTable; external name 'StdACChrominance';
  public
    constructor create(para1: Arr1jshort; para2: Arr1jshort); overload;
    constructor create(const para1: array of jshort; const para2: array of jshort); overload;
    function getLengths(): Arr1jshort; overload; virtual;
    function getValues(): Arr1jshort; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JIPJJPEGQTable = class external 'javax.imageio.plugins.jpeg' name 'JPEGQTable' (JLObject)
  public
    final class var
      fK1Luminance: JIPJJPEGQTable; external name 'K1Luminance';
      fK1Div2Luminance: JIPJJPEGQTable; external name 'K1Div2Luminance';
      fK2Chrominance: JIPJJPEGQTable; external name 'K2Chrominance';
      fK2Div2Chrominance: JIPJJPEGQTable; external name 'K2Div2Chrominance';
  public
    constructor create(para1: Arr1jint); overload;
    constructor create(const para1: array of jint); overload;
    function getTable(): Arr1jint; overload; virtual;
    function getScaledInstance(para1: jfloat; para2: jboolean): JIPJJPEGQTable; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JISRegisterableService = interface external 'javax.imageio.spi' name 'RegisterableService' 
    procedure onRegistration(para1: JISServiceRegistry; para2: JLClass); overload;
    procedure onDeregistration(para1: JISServiceRegistry; para2: JLClass); overload;
  end;

  JISServiceRegistry = class external 'javax.imageio.spi' name 'ServiceRegistry' (JLObject)
  public
    type
      InnerFilter = interface;
      Arr1InnerFilter = array of InnerFilter;
      Arr2InnerFilter = array of Arr1InnerFilter;
      Arr3InnerFilter = array of Arr2InnerFilter;
      InnerFilter = interface external 'javax.imageio.spi' name 'Filter' 
        function filter(para1: JLObject): jboolean; overload;
      end;

  public
    constructor create(para1: JUIterator); overload;
    class function lookupProviders(para1: JLClass; para2: JLClassLoader): JUIterator; static; overload;
    class function lookupProviders(para1: JLClass): JUIterator; static; overload;
    function getCategories(): JUIterator; overload; virtual;
    function registerServiceProvider(para1: JLObject; para2: JLClass): jboolean; overload; virtual;
    procedure registerServiceProvider(para1: JLObject); overload; virtual;
    procedure registerServiceProviders(para1: JUIterator); overload; virtual;
    function deregisterServiceProvider(para1: JLObject; para2: JLClass): jboolean; overload; virtual;
    procedure deregisterServiceProvider(para1: JLObject); overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function getServiceProviders(para1: JLClass; para2: jboolean): JUIterator; overload; virtual;
    function getServiceProviders(para1: JLClass; para2: JISServiceRegistry.InnerFilter; para3: jboolean): JUIterator; overload; virtual;
    function getServiceProviderByClass(para1: JLClass): JLObject; overload; virtual;
    function setOrdering(para1: JLClass; para2: JLObject; para3: JLObject): jboolean; overload; virtual;
    function unsetOrdering(para1: JLClass; para2: JLObject; para3: JLObject): jboolean; overload; virtual;
    procedure deregisterAll(para1: JLClass); overload; virtual;
    procedure deregisterAll(); overload; virtual;
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  JISSubRegistry = class external 'javax.imageio.spi' name 'SubRegistry' (JLObject)
  public
    constructor create(para1: JISServiceRegistry; para2: JLClass); overload;
    function registerServiceProvider(para1: JLObject): jboolean; overload; virtual;
    function deregisterServiceProvider(para1: JLObject): jboolean; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function setOrdering(para1: JLObject; para2: JLObject): jboolean; overload; virtual;
    function unsetOrdering(para1: JLObject; para2: JLObject): jboolean; overload; virtual;
    function getServiceProviders(para1: jboolean): JUIterator; overload; virtual;
    function getServiceProviderByClass(para1: JLClass): JLObject; overload; virtual;
    procedure clear(); overload; virtual;
    procedure finalize(); overload; virtual;
  end;

  JISIIOByteBuffer = class external 'javax.imageio.stream' name 'IIOByteBuffer' (JLObject)
  public
    constructor create(para1: Arr1jbyte; para2: jint; para3: jint); overload;
    constructor create(const para1: array of jbyte; para2: jint; para3: jint); overload;
    function getData(): Arr1jbyte; overload; virtual;
    procedure setData(para1: Arr1jbyte); overload; virtual;
    procedure setData(var para1: array of jbyte); overload; virtual;
    function getOffset(): jint; overload; virtual;
    procedure setOffset(para1: jint); overload; virtual;
    function getLength(): jint; overload; virtual;
    procedure setLength(para1: jint); overload; virtual;
  end;

  JISMemoryCache = class external 'javax.imageio.stream' name 'MemoryCache' (JLObject)
  public
    function loadFromStream(para1: JIInputStream; para2: jlong): jlong; overload; virtual;  // throws java.io.IOException
    procedure writeToStream(para1: JIOutputStream; para2: jlong; para3: jlong); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint; para4: jlong); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint; para4: jlong); overload; virtual;  // throws java.io.IOException
    procedure write(para1: jint; para2: jlong); overload; virtual;  // throws java.io.IOException
    function getLength(): jlong; overload; virtual;
    function read(para1: jlong): jint; overload; virtual;  // throws java.io.IOException
    procedure read(para1: Arr1jbyte; para2: jint; para3: jint; para4: jlong); overload; virtual;  // throws java.io.IOException
    procedure read(var para1: array of jbyte; para2: jint; para3: jint; para4: jlong); overload; virtual;  // throws java.io.IOException
    procedure disposeBefore(para1: jlong); overload; virtual;
    procedure reset(); overload; virtual;
  end;

  JLMEAnnotationMirror = interface external 'javax.lang.model.element' name 'AnnotationMirror' 
    function getAnnotationType(): JLMTDeclaredType; overload;
    function getElementValues(): JUMap; overload;
  end;

  JLMEAnnotationValue = interface external 'javax.lang.model.element' name 'AnnotationValue' 
    function getValue(): JLObject; overload;
    function toString(): JLString; overload;
    function accept(para1: JLMEAnnotationValueVisitor; para2: JLObject): JLObject; overload;
  end;

  JLMEAnnotationValueVisitor = interface external 'javax.lang.model.element' name 'AnnotationValueVisitor' 
    function visit(para1: JLMEAnnotationValue; para2: JLObject): JLObject; overload;
    function visit(para1: JLMEAnnotationValue): JLObject; overload;
    function visitBoolean(para1: jboolean; para2: JLObject): JLObject; overload;
    function visitByte(para1: jbyte; para2: JLObject): JLObject; overload;
    function visitChar(para1: jchar; para2: JLObject): JLObject; overload;
    function visitDouble(para1: jdouble; para2: JLObject): JLObject; overload;
    function visitFloat(para1: jfloat; para2: JLObject): JLObject; overload;
    function visitInt(para1: jint; para2: JLObject): JLObject; overload;
    function visitLong(para1: jlong; para2: JLObject): JLObject; overload;
    function visitShort(para1: jshort; para2: JLObject): JLObject; overload;
    function visitString(para1: JLString; para2: JLObject): JLObject; overload;
    function visitType(para1: JLMTTypeMirror; para2: JLObject): JLObject; overload;
    function visitEnumConstant(para1: JLMEVariableElement; para2: JLObject): JLObject; overload;
    function visitAnnotation(para1: JLMEAnnotationMirror; para2: JLObject): JLObject; overload;
    function visitArray(para1: JUList; para2: JLObject): JLObject; overload;
    function visitUnknown(para1: JLMEAnnotationValue; para2: JLObject): JLObject; overload;
  end;

  JLMEElement = interface external 'javax.lang.model.element' name 'Element' 
    function asType(): JLMTTypeMirror; overload;
    function getKind(): JLMEElementKind; overload;
    function getAnnotationMirrors(): JUList; overload;
    function getAnnotation(para1: JLClass): JLAAnnotation; overload;
    function getModifiers(): JUSet; overload;
    function getSimpleName(): JLMEName; overload;
    function getEnclosingElement(): JLMEElement; overload;
    function getEnclosedElements(): JUList; overload;
    function equals(para1: JLObject): jboolean; overload;
    function hashCode(): jint; overload;
    function accept(para1: JLMEElementVisitor; para2: JLObject): JLObject; overload;
  end;

  JLMEElementVisitor = interface external 'javax.lang.model.element' name 'ElementVisitor' 
    function visit(para1: JLMEElement; para2: JLObject): JLObject; overload;
    function visit(para1: JLMEElement): JLObject; overload;
    function visitPackage(para1: JLMEPackageElement; para2: JLObject): JLObject; overload;
    function visitType(para1: JLMETypeElement; para2: JLObject): JLObject; overload;
    function visitVariable(para1: JLMEVariableElement; para2: JLObject): JLObject; overload;
    function visitExecutable(para1: JLMEExecutableElement; para2: JLObject): JLObject; overload;
    function visitTypeParameter(para1: JLMETypeParameterElement; para2: JLObject): JLObject; overload;
    function visitUnknown(para1: JLMEElement; para2: JLObject): JLObject; overload;
  end;

  JLMTTypeMirror = interface external 'javax.lang.model.type' name 'TypeMirror' 
    function getKind(): JLMTTypeKind; overload;
    function equals(para1: JLObject): jboolean; overload;
    function hashCode(): jint; overload;
    function toString(): JLString; overload;
    function accept(para1: JLMTTypeVisitor; para2: JLObject): JLObject; overload;
  end;

  JLMTTypeVisitor = interface external 'javax.lang.model.type' name 'TypeVisitor' 
    function visit(para1: JLMTTypeMirror; para2: JLObject): JLObject; overload;
    function visit(para1: JLMTTypeMirror): JLObject; overload;
    function visitPrimitive(para1: JLMTPrimitiveType; para2: JLObject): JLObject; overload;
    function visitNull(para1: JLMTNullType; para2: JLObject): JLObject; overload;
    function visitArray(para1: JLMTArrayType; para2: JLObject): JLObject; overload;
    function visitDeclared(para1: JLMTDeclaredType; para2: JLObject): JLObject; overload;
    function visitError(para1: JLMTErrorType; para2: JLObject): JLObject; overload;
    function visitTypeVariable(para1: JLMTTypeVariable; para2: JLObject): JLObject; overload;
    function visitWildcard(para1: JLMTWildcardType; para2: JLObject): JLObject; overload;
    function visitExecutable(para1: JLMTExecutableType; para2: JLObject): JLObject; overload;
    function visitNoType(para1: JLMTNoType; para2: JLObject): JLObject; overload;
    function visitUnknown(para1: JLMTTypeMirror; para2: JLObject): JLObject; overload;
  end;

  JLMUElementFilter = class external 'javax.lang.model.util' name 'ElementFilter' (JLObject)
  public
    class function fieldsIn(para1: JLIterable): JUList; static; overload;
    class function fieldsIn(para1: JUSet): JUSet; static; overload;
    class function constructorsIn(para1: JLIterable): JUList; static; overload;
    class function constructorsIn(para1: JUSet): JUSet; static; overload;
    class function methodsIn(para1: JLIterable): JUList; static; overload;
    class function methodsIn(para1: JUSet): JUSet; static; overload;
    class function typesIn(para1: JLIterable): JUList; static; overload;
    class function typesIn(para1: JUSet): JUSet; static; overload;
    class function packagesIn(para1: JLIterable): JUList; static; overload;
    class function packagesIn(para1: JUSet): JUSet; static; overload;
  end;

  JLMUElements = interface external 'javax.lang.model.util' name 'Elements' 
    function getPackageElement(para1: JLCharSequence): JLMEPackageElement; overload;
    function getTypeElement(para1: JLCharSequence): JLMETypeElement; overload;
    function getElementValuesWithDefaults(para1: JLMEAnnotationMirror): JUMap; overload;
    function getDocComment(para1: JLMEElement): JLString; overload;
    function isDeprecated(para1: JLMEElement): jboolean; overload;
    function getBinaryName(para1: JLMETypeElement): JLMEName; overload;
    function getPackageOf(para1: JLMEElement): JLMEPackageElement; overload;
    function getAllMembers(para1: JLMETypeElement): JUList; overload;
    function getAllAnnotationMirrors(para1: JLMEElement): JUList; overload;
    function hides(para1: JLMEElement; para2: JLMEElement): jboolean; overload;
    function overrides(para1: JLMEExecutableElement; para2: JLMEExecutableElement; para3: JLMETypeElement): jboolean; overload;
    function getConstantExpression(para1: JLObject): JLString; overload;
    procedure printElements(para1: JIWriter; para2: Arr1JLMEElement); overload;
    procedure printElements(para1: JIWriter; const para2: array of JLMEElement); overload;
    function getName(para1: JLCharSequence): JLMEName; overload;
  end;

  JLMUTypes = interface external 'javax.lang.model.util' name 'Types' 
    function asElement(para1: JLMTTypeMirror): JLMEElement; overload;
    function isSameType(para1: JLMTTypeMirror; para2: JLMTTypeMirror): jboolean; overload;
    function isSubtype(para1: JLMTTypeMirror; para2: JLMTTypeMirror): jboolean; overload;
    function isAssignable(para1: JLMTTypeMirror; para2: JLMTTypeMirror): jboolean; overload;
    function contains(para1: JLMTTypeMirror; para2: JLMTTypeMirror): jboolean; overload;
    function isSubsignature(para1: JLMTExecutableType; para2: JLMTExecutableType): jboolean; overload;
    function directSupertypes(para1: JLMTTypeMirror): JUList; overload;
    function erasure(para1: JLMTTypeMirror): JLMTTypeMirror; overload;
    function boxedClass(para1: JLMTPrimitiveType): JLMETypeElement; overload;
    function unboxedType(para1: JLMTTypeMirror): JLMTPrimitiveType; overload;
    function capture(para1: JLMTTypeMirror): JLMTTypeMirror; overload;
    function getPrimitiveType(para1: JLMTTypeKind): JLMTPrimitiveType; overload;
    function getNullType(): JLMTNullType; overload;
    function getNoType(para1: JLMTTypeKind): JLMTNoType; overload;
    function getArrayType(para1: JLMTTypeMirror): JLMTArrayType; overload;
    function getWildcardType(para1: JLMTTypeMirror; para2: JLMTTypeMirror): JLMTWildcardType; overload;
    function getDeclaredType(para1: JLMETypeElement; para2: Arr1JLMTTypeMirror): JLMTDeclaredType; overload;
    function getDeclaredType(para1: JLMETypeElement; const para2: array of JLMTTypeMirror): JLMTDeclaredType; overload;
    function getDeclaredType(para1: JLMTDeclaredType; para2: JLMETypeElement; para3: Arr1JLMTTypeMirror): JLMTDeclaredType; overload;
    function getDeclaredType(para1: JLMTDeclaredType; para2: JLMETypeElement; const para3: array of JLMTTypeMirror): JLMTDeclaredType; overload;
    function asMemberOf(para1: JLMTDeclaredType; para2: JLMEElement): JLMTTypeMirror; overload;
  end;

  JMDefaultLoaderRepository = class external 'javax.management' name 'DefaultLoaderRepository' (JLObject)
  public
    constructor create(); overload;
    class function loadClass(para1: JLString): JLClass; static; overload;  // throws java.lang.ClassNotFoundException
    class function loadClassWithout(para1: JLClassLoader; para2: JLString): JLClass; static; overload;  // throws java.lang.ClassNotFoundException
  end;

  JMDescriptorRead = interface external 'javax.management' name 'DescriptorRead' 
    function getDescriptor(): JMDescriptor; overload;
  end;

  JMDynamicMBean = interface external 'javax.management' name 'DynamicMBean' 
    function getAttribute(para1: JLString): JLObject; overload;  // throws javax.management.AttributeNotFoundException, javax.management.MBeanException, javax.management.ReflectionException
    procedure setAttribute(para1: JMAttribute); overload;  // throws javax.management.AttributeNotFoundException, javax.management.InvalidAttributeValueException, javax.management.MBeanException, javax.management.ReflectionException
    function getAttributes(para1: Arr1JLString): JMAttributeList; overload;
    function getAttributes(var para1: array of JLString): JMAttributeList; overload;
    function setAttributes(para1: JMAttributeList): JMAttributeList; overload;
    function invoke(para1: JLString; para2: Arr1JLObject; para3: Arr1JLString): JLObject; overload;  // throws javax.management.MBeanException, javax.management.ReflectionException
    function invoke(para1: JLString; var para2: array of JLObject; var para3: array of JLString): JLObject; overload;  // throws javax.management.MBeanException, javax.management.ReflectionException
    function getMBeanInfo(): JMMBeanInfo; overload;
  end;

  JMJMX = class external 'javax.management' name 'JMX' (JLObject)
  public
    const
      DEFAULT_VALUE_FIELD = 'defaultValue';
      IMMUTABLE_INFO_FIELD = 'immutableInfo';
      INTERFACE_CLASS_NAME_FIELD = 'interfaceClassName';
      LEGAL_VALUES_FIELD = 'legalValues';
      MAX_VALUE_FIELD = 'maxValue';
      MIN_VALUE_FIELD = 'minValue';
      MXBEAN_FIELD = 'mxbean';
      OPEN_TYPE_FIELD = 'openType';
      ORIGINAL_TYPE_FIELD = 'originalType';
  public
    class function newMBeanProxy(para1: JMMBeanServerConnection; para2: JMObjectName; para3: JLClass): JLObject; static; overload;
    class function newMBeanProxy(para1: JMMBeanServerConnection; para2: JMObjectName; para3: JLClass; para4: jboolean): JLObject; static; overload;
    class function newMXBeanProxy(para1: JMMBeanServerConnection; para2: JMObjectName; para3: JLClass): JLObject; static; overload;
    class function newMXBeanProxy(para1: JMMBeanServerConnection; para2: JMObjectName; para3: JLClass; para4: jboolean): JLObject; static; overload;
    class function isMXBeanInterface(para1: JLClass): jboolean; static; overload;
  end;

  JMMBeanRegistration = interface external 'javax.management' name 'MBeanRegistration' 
    function preRegister(para1: JMMBeanServer; para2: JMObjectName): JMObjectName; overload;  // throws java.lang.Exception
    procedure postRegister(para1: JLBoolean); overload;
    procedure preDeregister(); overload;  // throws java.lang.Exception
    procedure postDeregister(); overload;
  end;

  JMMBeanServerBuilder = class external 'javax.management' name 'MBeanServerBuilder' (JLObject)
  public
    constructor create(); overload;
    function newMBeanServerDelegate(): JMMBeanServerDelegate; overload; virtual;
    function newMBeanServer(para1: JLString; para2: JMMBeanServer; para3: JMMBeanServerDelegate): JMMBeanServer; overload; virtual;
  end;

  JMMBeanServerConnection = interface external 'javax.management' name 'MBeanServerConnection' 
    function createMBean(para1: JLString; para2: JMObjectName): JMObjectInstance; overload;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, java.io.IOException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JMObjectName): JMObjectInstance; overload;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, javax.management.InstanceNotFoundException, java.io.IOException
    function createMBean(para1: JLString; para2: JMObjectName; para3: Arr1JLObject; para4: Arr1JLString): JMObjectInstance; overload;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, java.io.IOException
    function createMBean(para1: JLString; para2: JMObjectName; var para3: array of JLObject; var para4: array of JLString): JMObjectInstance; overload;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, java.io.IOException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JMObjectName; para4: Arr1JLObject; para5: Arr1JLString): JMObjectInstance; overload;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, javax.management.InstanceNotFoundException, java.io.IOException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JMObjectName; var para4: array of JLObject; var para5: array of JLString): JMObjectInstance; overload;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, javax.management.InstanceNotFoundException, java.io.IOException
    procedure unregisterMBean(para1: JMObjectName); overload;  // throws javax.management.InstanceNotFoundException, javax.management.MBeanRegistrationException, java.io.IOException
    function getObjectInstance(para1: JMObjectName): JMObjectInstance; overload;  // throws javax.management.InstanceNotFoundException, java.io.IOException
    function queryMBeans(para1: JMObjectName; para2: JMQueryExp): JUSet; overload;  // throws java.io.IOException
    function queryNames(para1: JMObjectName; para2: JMQueryExp): JUSet; overload;  // throws java.io.IOException
    function isRegistered(para1: JMObjectName): jboolean; overload;  // throws java.io.IOException
    function getMBeanCount(): JLInteger; overload;  // throws java.io.IOException
    function getAttribute(para1: JMObjectName; para2: JLString): JLObject; overload;  // throws javax.management.MBeanException, javax.management.AttributeNotFoundException, javax.management.InstanceNotFoundException, javax.management.ReflectionException, java.io.IOException
    function getAttributes(para1: JMObjectName; para2: Arr1JLString): JMAttributeList; overload;  // throws javax.management.InstanceNotFoundException, javax.management.ReflectionException, java.io.IOException
    function getAttributes(para1: JMObjectName; var para2: array of JLString): JMAttributeList; overload;  // throws javax.management.InstanceNotFoundException, javax.management.ReflectionException, java.io.IOException
    procedure setAttribute(para1: JMObjectName; para2: JMAttribute); overload;  // throws javax.management.InstanceNotFoundException, javax.management.AttributeNotFoundException, javax.management.InvalidAttributeValueException, javax.management.MBeanException, javax.management.ReflectionException, java.io.IOException
    function setAttributes(para1: JMObjectName; para2: JMAttributeList): JMAttributeList; overload;  // throws javax.management.InstanceNotFoundException, javax.management.ReflectionException, java.io.IOException
    function invoke(para1: JMObjectName; para2: JLString; para3: Arr1JLObject; para4: Arr1JLString): JLObject; overload;  // throws javax.management.InstanceNotFoundException, javax.management.MBeanException, javax.management.ReflectionException, java.io.IOException
    function invoke(para1: JMObjectName; para2: JLString; var para3: array of JLObject; var para4: array of JLString): JLObject; overload;  // throws javax.management.InstanceNotFoundException, javax.management.MBeanException, javax.management.ReflectionException, java.io.IOException
    function getDefaultDomain(): JLString; overload;  // throws java.io.IOException
    function getDomains(): Arr1JLString; overload;  // throws java.io.IOException
    procedure addNotificationListener(para1: JMObjectName; para2: JMNotificationListener; para3: JMNotificationFilter; para4: JLObject); overload;  // throws javax.management.InstanceNotFoundException, java.io.IOException
    procedure addNotificationListener(para1: JMObjectName; para2: JMObjectName; para3: JMNotificationFilter; para4: JLObject); overload;  // throws javax.management.InstanceNotFoundException, java.io.IOException
    procedure removeNotificationListener(para1: JMObjectName; para2: JMObjectName); overload;  // throws javax.management.InstanceNotFoundException, javax.management.ListenerNotFoundException, java.io.IOException
    procedure removeNotificationListener(para1: JMObjectName; para2: JMObjectName; para3: JMNotificationFilter; para4: JLObject); overload;  // throws javax.management.InstanceNotFoundException, javax.management.ListenerNotFoundException, java.io.IOException
    procedure removeNotificationListener(para1: JMObjectName; para2: JMNotificationListener); overload;  // throws javax.management.InstanceNotFoundException, javax.management.ListenerNotFoundException, java.io.IOException
    procedure removeNotificationListener(para1: JMObjectName; para2: JMNotificationListener; para3: JMNotificationFilter; para4: JLObject); overload;  // throws javax.management.InstanceNotFoundException, javax.management.ListenerNotFoundException, java.io.IOException
    function getMBeanInfo(para1: JMObjectName): JMMBeanInfo; overload;  // throws javax.management.InstanceNotFoundException, javax.management.IntrospectionException, javax.management.ReflectionException, java.io.IOException
    function isInstanceOf(para1: JMObjectName; para2: JLString): jboolean; overload;  // throws javax.management.InstanceNotFoundException, java.io.IOException
  end;

  JMMBeanServerDelegateMBean = interface external 'javax.management' name 'MBeanServerDelegateMBean' 
    function getMBeanServerId(): JLString; overload;
    function getSpecificationName(): JLString; overload;
    function getSpecificationVersion(): JLString; overload;
    function getSpecificationVendor(): JLString; overload;
    function getImplementationName(): JLString; overload;
    function getImplementationVersion(): JLString; overload;
    function getImplementationVendor(): JLString; overload;
  end;

  JMMBeanServerFactory = class external 'javax.management' name 'MBeanServerFactory' (JLObject)
  public
    class procedure releaseMBeanServer(para1: JMMBeanServer); static; overload;
    class function createMBeanServer(): JMMBeanServer; static; overload;
    class function createMBeanServer(para1: JLString): JMMBeanServer; static; overload;
    class function newMBeanServer(): JMMBeanServer; static; overload;
    class function newMBeanServer(para1: JLString): JMMBeanServer; static; overload;
    class function findMBeanServer(para1: JLString): JUArrayList; static; overload;
    class function getClassLoaderRepository(para1: JMMBeanServer): JMLClassLoaderRepository; static; overload;
  end;

  JMNotificationBroadcaster = interface external 'javax.management' name 'NotificationBroadcaster' 
    procedure addNotificationListener(para1: JMNotificationListener; para2: JMNotificationFilter; para3: JLObject); overload;  // throws java.lang.IllegalArgumentException
    procedure removeNotificationListener(para1: JMNotificationListener); overload;  // throws javax.management.ListenerNotFoundException
    function getNotificationInfo(): Arr1JMMBeanNotificationInfo; overload;
  end;

  JMPersistentMBean = interface external 'javax.management' name 'PersistentMBean' 
    procedure load(); overload;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException, javax.management.InstanceNotFoundException
    procedure store(); overload;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException, javax.management.InstanceNotFoundException
  end;

  JMQuery = class external 'javax.management' name 'Query' (JLObject)
  public
    const
      GT = 0;
      LT = 1;
      GE = 2;
      LE = 3;
      EQ = 4;
      PLUS = 0;
      MINUS = 1;
      TIMES = 2;
      &DIV = 3;
  public
    constructor create(); overload;
    class function &and(para1: JMQueryExp; para2: JMQueryExp): JMQueryExp; static; overload;
    class function &or(para1: JMQueryExp; para2: JMQueryExp): JMQueryExp; static; overload;
    class function gt_(para1: JMValueExp; para2: JMValueExp): JMQueryExp; static; external name 'gt'; overload;
    class function geq(para1: JMValueExp; para2: JMValueExp): JMQueryExp; static; overload;
    class function leq(para1: JMValueExp; para2: JMValueExp): JMQueryExp; static; overload;
    class function lt_(para1: JMValueExp; para2: JMValueExp): JMQueryExp; static; external name 'lt'; overload;
    class function eq_(para1: JMValueExp; para2: JMValueExp): JMQueryExp; static; external name 'eq'; overload;
    class function between(para1: JMValueExp; para2: JMValueExp; para3: JMValueExp): JMQueryExp; static; overload;
    class function match(para1: JMAttributeValueExp; para2: JMStringValueExp): JMQueryExp; static; overload;
    class function attr(para1: JLString): JMAttributeValueExp; static; overload;
    class function attr(para1: JLString; para2: JLString): JMAttributeValueExp; static; overload;
    class function classattr(): JMAttributeValueExp; static; overload;
    class function &not(para1: JMQueryExp): JMQueryExp; static; overload;
    class function &in(para1: JMValueExp; para2: Arr1JMValueExp): JMQueryExp; static; overload;
    class function &in(para1: JMValueExp; var para2: array of JMValueExp): JMQueryExp; static; overload;
    class function value(para1: JLString): JMStringValueExp; static; overload;
    class function value(para1: JLNumber): JMValueExp; static; overload;
    class function value(para1: jint): JMValueExp; static; overload;
    class function value(para1: jlong): JMValueExp; static; overload;
    class function value(para1: jfloat): JMValueExp; static; overload;
    class function value(para1: jdouble): JMValueExp; static; overload;
    class function value(para1: jboolean): JMValueExp; static; overload;
    class function plus_(para1: JMValueExp; para2: JMValueExp): JMValueExp; static; external name 'plus'; overload;
    class function times_(para1: JMValueExp; para2: JMValueExp): JMValueExp; static; external name 'times'; overload;
    class function minus_(para1: JMValueExp; para2: JMValueExp): JMValueExp; static; external name 'minus'; overload;
    class function &div_(para1: JMValueExp; para2: JMValueExp): JMValueExp; static; external name 'div'; overload;
    class function initialSubString(para1: JMAttributeValueExp; para2: JMStringValueExp): JMQueryExp; static; overload;
    class function anySubString(para1: JMAttributeValueExp; para2: JMStringValueExp): JMQueryExp; static; overload;
    class function finalSubString(para1: JMAttributeValueExp; para2: JMStringValueExp): JMQueryExp; static; overload;
    class function isInstanceOf(para1: JMStringValueExp): JMQueryExp; static; overload;
  end;

  JMLClassLoaderRepository = interface external 'javax.management.loading' name 'ClassLoaderRepository' 
    function loadClass(para1: JLString): JLClass; overload;  // throws java.lang.ClassNotFoundException
    function loadClassWithout(para1: JLClassLoader; para2: JLString): JLClass; overload;  // throws java.lang.ClassNotFoundException
    function loadClassBefore(para1: JLClassLoader; para2: JLString): JLClass; overload;  // throws java.lang.ClassNotFoundException
  end;

  JMLDefaultLoaderRepository = class external 'javax.management.loading' name 'DefaultLoaderRepository' (JLObject)
  public
    constructor create(); overload;
    class function loadClass(para1: JLString): JLClass; static; overload;  // throws java.lang.ClassNotFoundException
    class function loadClassWithout(para1: JLClassLoader; para2: JLString): JLClass; static; overload;  // throws java.lang.ClassNotFoundException
  end;

  JMLMLetContent = class external 'javax.management.loading' name 'MLetContent' (JLObject)
  public
    constructor create(para1: JNURL; para2: JUMap; para3: JUList; para4: JUList); overload;
    function getAttributes(): JUMap; overload; virtual;
    function getDocumentBase(): JNURL; overload; virtual;
    function getCodeBase(): JNURL; overload; virtual;
    function getJarFiles(): JLString; overload; virtual;
    function getCode(): JLString; overload; virtual;
    function getSerializedObject(): JLString; overload; virtual;
    function getName(): JLString; overload; virtual;
    function getVersion(): JLString; overload; virtual;
    function getParameterTypes(): JUList; overload; virtual;
    function getParameterValues(): JUList; overload; virtual;
  end;

  JMLMLetMBean = interface external 'javax.management.loading' name 'MLetMBean' 
    function getMBeansFromURL(para1: JLString): JUSet; overload;  // throws javax.management.ServiceNotFoundException
    function getMBeansFromURL(para1: JNURL): JUSet; overload;  // throws javax.management.ServiceNotFoundException
    procedure addURL(para1: JNURL); overload;
    procedure addURL(para1: JLString); overload;  // throws javax.management.ServiceNotFoundException
    function getURLs(): Arr1JNURL; overload;
    function getResource(para1: JLString): JNURL; overload;
    function getResourceAsStream(para1: JLString): JIInputStream; overload;
    function getResources(para1: JLString): JUEnumeration; overload;  // throws java.io.IOException
    function getLibraryDirectory(): JLString; overload;
    procedure setLibraryDirectory(para1: JLString); overload;
  end;

  JMLMLetParser = class external 'javax.management.loading' name 'MLetParser' (JLObject)
  public
    constructor create(); overload;
    procedure skipSpace(para1: JIReader); overload; virtual;  // throws java.io.IOException
    function scanIdentifier(para1: JIReader): JLString; overload; virtual;  // throws java.io.IOException
    function scanTag(para1: JIReader): JUMap; overload; virtual;  // throws java.io.IOException
    function parse(para1: JNURL): JUList; overload; virtual;  // throws java.io.IOException
    function parseURL(para1: JLString): JUList; overload; virtual;  // throws java.io.IOException
  end;

  JMLPrivateClassLoader = interface external 'javax.management.loading' name 'PrivateClassLoader' 
  end;

  JMMModelMBeanInfo = interface external 'javax.management.modelmbean' name 'ModelMBeanInfo' 
    function getDescriptors(para1: JLString): Arr1JMDescriptor; overload;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
    procedure setDescriptors(para1: Arr1JMDescriptor); overload;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
    procedure setDescriptors(var para1: array of JMDescriptor); overload;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
    function getDescriptor(para1: JLString; para2: JLString): JMDescriptor; overload;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
    procedure setDescriptor(para1: JMDescriptor; para2: JLString); overload;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
    function getMBeanDescriptor(): JMDescriptor; overload;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
    procedure setMBeanDescriptor(para1: JMDescriptor); overload;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
    function getAttribute(para1: JLString): JMMModelMBeanAttributeInfo; overload;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
    function getOperation(para1: JLString): JMMModelMBeanOperationInfo; overload;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
    function getNotification(para1: JLString): JMMModelMBeanNotificationInfo; overload;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
    function clone(): JLObject; overload;
    function getAttributes(): Arr1JMMBeanAttributeInfo; overload;
    function getClassName(): JLString; overload;
    function getConstructors(): Arr1JMMBeanConstructorInfo; overload;
    function getDescription(): JLString; overload;
    function getNotifications(): Arr1JMMBeanNotificationInfo; overload;
    function getOperations(): Arr1JMMBeanOperationInfo; overload;
  end;

  JMMMonitorMBean = interface external 'javax.management.monitor' name 'MonitorMBean' 
    procedure start(); overload;
    procedure stop(); overload;
    procedure addObservedObject(para1: JMObjectName); overload;  // throws java.lang.IllegalArgumentException
    procedure removeObservedObject(para1: JMObjectName); overload;
    function containsObservedObject(para1: JMObjectName): jboolean; overload;
    function getObservedObjects(): Arr1JMObjectName; overload;
    function getObservedObject(): JMObjectName; overload;
    procedure setObservedObject(para1: JMObjectName); overload;
    function getObservedAttribute(): JLString; overload;
    procedure setObservedAttribute(para1: JLString); overload;
    function getGranularityPeriod(): jlong; overload;
    procedure setGranularityPeriod(para1: jlong); overload;  // throws java.lang.IllegalArgumentException
    function isActive(): jboolean; overload;
  end;

  JMOCompositeData = interface external 'javax.management.openmbean' name 'CompositeData' 
    function getCompositeType(): JMOCompositeType; overload;
    function get(para1: JLString): JLObject; overload;
    function getAll(para1: Arr1JLString): Arr1JLObject; overload;
    function getAll(var para1: array of JLString): Arr1JLObject; overload;
    function containsKey(para1: JLString): jboolean; overload;
    function containsValue(para1: JLObject): jboolean; overload;
    function values(): JUCollection; overload;
    function equals(para1: JLObject): jboolean; overload;
    function hashCode(): jint; overload;
    function toString(): JLString; overload;
  end;

  JMOCompositeDataView = interface external 'javax.management.openmbean' name 'CompositeDataView' 
    function toCompositeData(para1: JMOCompositeType): JMOCompositeData; overload;
  end;

  JMOOpenMBeanConstructorInfo = interface external 'javax.management.openmbean' name 'OpenMBeanConstructorInfo' 
    function getDescription(): JLString; overload;
    function getName(): JLString; overload;
    function getSignature(): Arr1JMMBeanParameterInfo; overload;
    function equals(para1: JLObject): jboolean; overload;
    function hashCode(): jint; overload;
    function toString(): JLString; overload;
  end;

  JMOOpenMBeanInfo = interface external 'javax.management.openmbean' name 'OpenMBeanInfo' 
    function getClassName(): JLString; overload;
    function getDescription(): JLString; overload;
    function getAttributes(): Arr1JMMBeanAttributeInfo; overload;
    function getOperations(): Arr1JMMBeanOperationInfo; overload;
    function getConstructors(): Arr1JMMBeanConstructorInfo; overload;
    function getNotifications(): Arr1JMMBeanNotificationInfo; overload;
    function equals(para1: JLObject): jboolean; overload;
    function hashCode(): jint; overload;
    function toString(): JLString; overload;
  end;

  JMOOpenMBeanOperationInfo = interface external 'javax.management.openmbean' name 'OpenMBeanOperationInfo' 
    function getDescription(): JLString; overload;
    function getName(): JLString; overload;
    function getSignature(): Arr1JMMBeanParameterInfo; overload;
    function getImpact(): jint; overload;
    function getReturnType(): JLString; overload;
    function getReturnOpenType(): JMOOpenType; overload;
    function equals(para1: JLObject): jboolean; overload;
    function hashCode(): jint; overload;
    function toString(): JLString; overload;
  end;

  JMOOpenMBeanParameterInfo = interface external 'javax.management.openmbean' name 'OpenMBeanParameterInfo' 
    function getDescription(): JLString; overload;
    function getName(): JLString; overload;
    function getOpenType(): JMOOpenType; overload;
    function getDefaultValue(): JLObject; overload;
    function getLegalValues(): JUSet; overload;
    function getMinValue(): JLComparable; overload;
    function getMaxValue(): JLComparable; overload;
    function hasDefaultValue(): jboolean; overload;
    function hasLegalValues(): jboolean; overload;
    function hasMinValue(): jboolean; overload;
    function hasMaxValue(): jboolean; overload;
    function isValue(para1: JLObject): jboolean; overload;
    function equals(para1: JLObject): jboolean; overload;
    function hashCode(): jint; overload;
    function toString(): JLString; overload;
  end;

  JMOTabularData = interface external 'javax.management.openmbean' name 'TabularData' 
    function getTabularType(): JMOTabularType; overload;
    function calculateIndex(para1: JMOCompositeData): Arr1JLObject; overload;
    function size(): jint; overload;
    function isEmpty(): jboolean; overload;
    function containsKey(para1: Arr1JLObject): jboolean; overload;
    function containsKey(var para1: array of JLObject): jboolean; overload;
    function containsValue(para1: JMOCompositeData): jboolean; overload;
    function get(para1: Arr1JLObject): JMOCompositeData; overload;
    function get(var para1: array of JLObject): JMOCompositeData; overload;
    procedure put(para1: JMOCompositeData); overload;
    function remove(para1: Arr1JLObject): JMOCompositeData; overload;
    function remove(var para1: array of JLObject): JMOCompositeData; overload;
    procedure putAll(para1: Arr1JMOCompositeData); overload;
    procedure putAll(var para1: array of JMOCompositeData); overload;
    procedure clear(); overload;
    function keySet(): JUSet; overload;
    function values(): JUCollection; overload;
    function equals(para1: JLObject): jboolean; overload;
    function hashCode(): jint; overload;
    function toString(): JLString; overload;
  end;

  JMRRelation = interface external 'javax.management.relation' name 'Relation' 
    function getRole(para1: JLString): JUList; overload;  // throws java.lang.IllegalArgumentException, javax.management.relation.RoleNotFoundException, javax.management.relation.RelationServiceNotRegisteredException
    function getRoles(para1: Arr1JLString): JMRRoleResult; overload;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationServiceNotRegisteredException
    function getRoles(var para1: array of JLString): JMRRoleResult; overload;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationServiceNotRegisteredException
    function getRoleCardinality(para1: JLString): JLInteger; overload;  // throws java.lang.IllegalArgumentException, javax.management.relation.RoleNotFoundException
    function getAllRoles(): JMRRoleResult; overload;  // throws javax.management.relation.RelationServiceNotRegisteredException
    function retrieveAllRoles(): JMRRoleList; overload;
    procedure setRole(para1: JMRRole); overload;  // throws java.lang.IllegalArgumentException, javax.management.relation.RoleNotFoundException, javax.management.relation.RelationTypeNotFoundException, javax.management.relation.InvalidRoleValueException, javax.management.relation.RelationServiceNotRegisteredException, javax.management.relation.RelationNotFoundException
    function setRoles(para1: JMRRoleList): JMRRoleResult; overload;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationServiceNotRegisteredException, javax.management.relation.RelationTypeNotFoundException, javax.management.relation.RelationNotFoundException
    procedure handleMBeanUnregistration(para1: JMObjectName; para2: JLString); overload;  // throws java.lang.IllegalArgumentException, javax.management.relation.RoleNotFoundException, javax.management.relation.InvalidRoleValueException, javax.management.relation.RelationServiceNotRegisteredException, javax.management.relation.RelationTypeNotFoundException, javax.management.relation.RelationNotFoundException
    function getReferencedMBeans(): JUMap; overload;
    function getRelationTypeName(): JLString; overload;
    function getRelationServiceName(): JMObjectName; overload;
    function getRelationId(): JLString; overload;
  end;

  JMRRelationServiceMBean = interface external 'javax.management.relation' name 'RelationServiceMBean' 
    procedure isActive(); overload;  // throws javax.management.relation.RelationServiceNotRegisteredException
    function getPurgeFlag(): jboolean; overload;
    procedure setPurgeFlag(para1: jboolean); overload;
    procedure createRelationType(para1: JLString; para2: Arr1JMRRoleInfo); overload;  // throws java.lang.IllegalArgumentException, javax.management.relation.InvalidRelationTypeException
    procedure createRelationType(para1: JLString; var para2: array of JMRRoleInfo); overload;  // throws java.lang.IllegalArgumentException, javax.management.relation.InvalidRelationTypeException
    procedure addRelationType(para1: JMRRelationType); overload;  // throws java.lang.IllegalArgumentException, javax.management.relation.InvalidRelationTypeException
    function getAllRelationTypeNames(): JUList; overload;
    function getRoleInfos(para1: JLString): JUList; overload;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationTypeNotFoundException
    function getRoleInfo(para1: JLString; para2: JLString): JMRRoleInfo; overload;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationTypeNotFoundException, javax.management.relation.RoleInfoNotFoundException
    procedure removeRelationType(para1: JLString); overload;  // throws javax.management.relation.RelationServiceNotRegisteredException, java.lang.IllegalArgumentException, javax.management.relation.RelationTypeNotFoundException
    procedure createRelation(para1: JLString; para2: JLString; para3: JMRRoleList); overload;  // throws javax.management.relation.RelationServiceNotRegisteredException, java.lang.IllegalArgumentException, javax.management.relation.RoleNotFoundException, javax.management.relation.InvalidRelationIdException, javax.management.relation.RelationTypeNotFoundException, javax.management.relation.InvalidRoleValueException
    procedure addRelation(para1: JMObjectName); overload;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationServiceNotRegisteredException, java.lang.NoSuchMethodException, javax.management.relation.InvalidRelationIdException, javax.management.InstanceNotFoundException, javax.management.relation.InvalidRelationServiceException, javax.management.relation.RelationTypeNotFoundException, javax.management.relation.RoleNotFoundException, javax.management.relation.InvalidRoleValueException
    function isRelationMBean(para1: JLString): JMObjectName; overload;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException
    function isRelation(para1: JMObjectName): JLString; overload;  // throws java.lang.IllegalArgumentException
    function hasRelation(para1: JLString): JLBoolean; overload;  // throws java.lang.IllegalArgumentException
    function getAllRelationIds(): JUList; overload;
    function checkRoleReading(para1: JLString; para2: JLString): JLInteger; overload;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationTypeNotFoundException
    function checkRoleWriting(para1: JMRRole; para2: JLString; para3: JLBoolean): JLInteger; overload;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationTypeNotFoundException
    procedure sendRelationCreationNotification(para1: JLString); overload;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException
    procedure sendRoleUpdateNotification(para1: JLString; para2: JMRRole; para3: JUList); overload;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException
    procedure sendRelationRemovalNotification(para1: JLString; para2: JUList); overload;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException
    procedure updateRoleMap(para1: JLString; para2: JMRRole; para3: JUList); overload;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationServiceNotRegisteredException, javax.management.relation.RelationNotFoundException
    procedure removeRelation(para1: JLString); overload;  // throws javax.management.relation.RelationServiceNotRegisteredException, java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException
    procedure purgeRelations(); overload;  // throws javax.management.relation.RelationServiceNotRegisteredException
    function findReferencingRelations(para1: JMObjectName; para2: JLString; para3: JLString): JUMap; overload;  // throws java.lang.IllegalArgumentException
    function findAssociatedMBeans(para1: JMObjectName; para2: JLString; para3: JLString): JUMap; overload;  // throws java.lang.IllegalArgumentException
    function findRelationsOfType(para1: JLString): JUList; overload;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationTypeNotFoundException
    function getRole(para1: JLString; para2: JLString): JUList; overload;  // throws javax.management.relation.RelationServiceNotRegisteredException, java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException, javax.management.relation.RoleNotFoundException
    function getRoles(para1: JLString; para2: Arr1JLString): JMRRoleResult; overload;  // throws javax.management.relation.RelationServiceNotRegisteredException, java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException
    function getRoles(para1: JLString; var para2: array of JLString): JMRRoleResult; overload;  // throws javax.management.relation.RelationServiceNotRegisteredException, java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException
    function getAllRoles(para1: JLString): JMRRoleResult; overload;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException, javax.management.relation.RelationServiceNotRegisteredException
    function getRoleCardinality(para1: JLString; para2: JLString): JLInteger; overload;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException, javax.management.relation.RoleNotFoundException
    procedure setRole(para1: JLString; para2: JMRRole); overload;  // throws javax.management.relation.RelationServiceNotRegisteredException, java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException, javax.management.relation.RoleNotFoundException, javax.management.relation.InvalidRoleValueException, javax.management.relation.RelationTypeNotFoundException
    function setRoles(para1: JLString; para2: JMRRoleList): JMRRoleResult; overload;  // throws javax.management.relation.RelationServiceNotRegisteredException, java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException
    function getReferencedMBeans(para1: JLString): JUMap; overload;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException
    function getRelationTypeName(para1: JLString): JLString; overload;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException
  end;

  JMRRoleStatus = class external 'javax.management.relation' name 'RoleStatus' (JLObject)
  public
    const
      NO_ROLE_WITH_NAME = 1;
      ROLE_NOT_READABLE = 2;
      ROLE_NOT_WRITABLE = 3;
      LESS_THAN_MIN_ROLE_DEGREE = 4;
      MORE_THAN_MAX_ROLE_DEGREE = 5;
      REF_MBEAN_OF_INCORRECT_CLASS = 6;
      REF_MBEAN_NOT_REGISTERED = 7;
  public
    constructor create(); overload;
    class function isRoleStatus(para1: jint): jboolean; static; overload;
  end;

  JMRJMXAddressable = interface external 'javax.management.remote' name 'JMXAddressable' 
    function getAddress(): JMRJMXServiceURL; overload;
  end;

  JMRJMXAuthenticator = interface external 'javax.management.remote' name 'JMXAuthenticator' 
    function authenticate(para1: JLObject): JSASubject; overload;
  end;

  JMRJMXConnectorFactory = class external 'javax.management.remote' name 'JMXConnectorFactory' (JLObject)
  public
    const
      DEFAULT_CLASS_LOADER = 'jmx.remote.default.class.loader';
      PROTOCOL_PROVIDER_PACKAGES = 'jmx.remote.protocol.provider.pkgs';
      PROTOCOL_PROVIDER_CLASS_LOADER = 'jmx.remote.protocol.provider.class.loader';
  public
    class function connect(para1: JMRJMXServiceURL): JMRJMXConnector; static; overload;  // throws java.io.IOException
    class function connect(para1: JMRJMXServiceURL; para2: JUMap): JMRJMXConnector; static; overload;  // throws java.io.IOException
    class function newJMXConnector(para1: JMRJMXServiceURL; para2: JUMap): JMRJMXConnector; static; overload;  // throws java.io.IOException
  end;

  JMRJMXConnectorProvider = interface external 'javax.management.remote' name 'JMXConnectorProvider' 
    function newJMXConnector(para1: JMRJMXServiceURL; para2: JUMap): JMRJMXConnector; overload;  // throws java.io.IOException
  end;

  JMRJMXConnectorServerFactory = class external 'javax.management.remote' name 'JMXConnectorServerFactory' (JLObject)
  public
    const
      DEFAULT_CLASS_LOADER = 'jmx.remote.default.class.loader';
      DEFAULT_CLASS_LOADER_NAME = 'jmx.remote.default.class.loader.name';
      PROTOCOL_PROVIDER_PACKAGES = 'jmx.remote.protocol.provider.pkgs';
      PROTOCOL_PROVIDER_CLASS_LOADER = 'jmx.remote.protocol.provider.class.loader';
  public
    class function newJMXConnectorServer(para1: JMRJMXServiceURL; para2: JUMap; para3: JMMBeanServer): JMRJMXConnectorServer; static; overload;  // throws java.io.IOException
  end;

  JMRJMXConnectorServerMBean = interface external 'javax.management.remote' name 'JMXConnectorServerMBean' 
    procedure start(); overload;  // throws java.io.IOException
    procedure stop(); overload;  // throws java.io.IOException
    function isActive(): jboolean; overload;
    procedure setMBeanServerForwarder(para1: JMRMBeanServerForwarder); overload;
    function getConnectionIds(): Arr1JLString; overload;
    function getAddress(): JMRJMXServiceURL; overload;
    function getAttributes(): JUMap; overload;
    function toJMXConnector(para1: JUMap): JMRJMXConnector; overload;  // throws java.io.IOException
  end;

  JMRJMXConnectorServerProvider = interface external 'javax.management.remote' name 'JMXConnectorServerProvider' 
    function newJMXConnectorServer(para1: JMRJMXServiceURL; para2: JUMap; para3: JMMBeanServer): JMRJMXConnectorServer; overload;  // throws java.io.IOException
  end;

  JMTTimerMBean = interface external 'javax.management.timer' name 'TimerMBean' 
    procedure start(); overload;
    procedure stop(); overload;
    function addNotification(para1: JLString; para2: JLString; para3: JLObject; para4: JUDate; para5: jlong; para6: jlong; para7: jboolean): JLInteger; overload;  // throws java.lang.IllegalArgumentException
    function addNotification(para1: JLString; para2: JLString; para3: JLObject; para4: JUDate; para5: jlong; para6: jlong): JLInteger; overload;  // throws java.lang.IllegalArgumentException
    function addNotification(para1: JLString; para2: JLString; para3: JLObject; para4: JUDate; para5: jlong): JLInteger; overload;  // throws java.lang.IllegalArgumentException
    function addNotification(para1: JLString; para2: JLString; para3: JLObject; para4: JUDate): JLInteger; overload;  // throws java.lang.IllegalArgumentException
    procedure removeNotification(para1: JLInteger); overload;  // throws javax.management.InstanceNotFoundException
    procedure removeNotifications(para1: JLString); overload;  // throws javax.management.InstanceNotFoundException
    procedure removeAllNotifications(); overload;
    function getNbNotifications(): jint; overload;
    function getAllNotificationIDs(): JUVector; overload;
    function getNotificationIDs(para1: JLString): JUVector; overload;
    function getNotificationType(para1: JLInteger): JLString; overload;
    function getNotificationMessage(para1: JLInteger): JLString; overload;
    function getNotificationUserData(para1: JLInteger): JLObject; overload;
    function getDate(para1: JLInteger): JUDate; overload;
    function getPeriod(para1: JLInteger): JLLong; overload;
    function getNbOccurences(para1: JLInteger): JLLong; overload;
    function getFixedRate(para1: JLInteger): JLBoolean; overload;
    function getSendPastNotifications(): jboolean; overload;
    procedure setSendPastNotifications(para1: jboolean); overload;
    function isActive(): jboolean; overload;
    function isEmpty(): jboolean; overload;
  end;

  JNContext = interface external 'javax.naming' name 'Context' 
    const
      INITIAL_CONTEXT_FACTORY = 'java.naming.factory.initial';
      OBJECT_FACTORIES = 'java.naming.factory.object';
      STATE_FACTORIES = 'java.naming.factory.state';
      URL_PKG_PREFIXES = 'java.naming.factory.url.pkgs';
      PROVIDER_URL = 'java.naming.provider.url';
      DNS_URL = 'java.naming.dns.url';
      AUTHORITATIVE = 'java.naming.authoritative';
      BATCHSIZE = 'java.naming.batchsize';
      REFERRAL = 'java.naming.referral';
      SECURITY_PROTOCOL = 'java.naming.security.protocol';
      SECURITY_AUTHENTICATION = 'java.naming.security.authentication';
      SECURITY_PRINCIPAL = 'java.naming.security.principal';
      SECURITY_CREDENTIALS = 'java.naming.security.credentials';
      LANGUAGE = 'java.naming.language';
      APPLET = 'java.naming.applet';
    function lookup(para1: JNName): JLObject; overload;  // throws javax.naming.NamingException
    function lookup(para1: JLString): JLObject; overload;  // throws javax.naming.NamingException
    procedure bind(para1: JNName; para2: JLObject); overload;  // throws javax.naming.NamingException
    procedure bind(para1: JLString; para2: JLObject); overload;  // throws javax.naming.NamingException
    procedure rebind(para1: JNName; para2: JLObject); overload;  // throws javax.naming.NamingException
    procedure rebind(para1: JLString; para2: JLObject); overload;  // throws javax.naming.NamingException
    procedure unbind(para1: JNName); overload;  // throws javax.naming.NamingException
    procedure unbind(para1: JLString); overload;  // throws javax.naming.NamingException
    procedure rename(para1: JNName; para2: JNName); overload;  // throws javax.naming.NamingException
    procedure rename(para1: JLString; para2: JLString); overload;  // throws javax.naming.NamingException
    function list(para1: JNName): JNNamingEnumeration; overload;  // throws javax.naming.NamingException
    function list(para1: JLString): JNNamingEnumeration; overload;  // throws javax.naming.NamingException
    function listBindings(para1: JNName): JNNamingEnumeration; overload;  // throws javax.naming.NamingException
    function listBindings(para1: JLString): JNNamingEnumeration; overload;  // throws javax.naming.NamingException
    procedure destroySubcontext(para1: JNName); overload;  // throws javax.naming.NamingException
    procedure destroySubcontext(para1: JLString); overload;  // throws javax.naming.NamingException
    function createSubcontext(para1: JNName): JNContext; overload;  // throws javax.naming.NamingException
    function createSubcontext(para1: JLString): JNContext; overload;  // throws javax.naming.NamingException
    function lookupLink(para1: JNName): JLObject; overload;  // throws javax.naming.NamingException
    function lookupLink(para1: JLString): JLObject; overload;  // throws javax.naming.NamingException
    function getNameParser(para1: JNName): JNNameParser; overload;  // throws javax.naming.NamingException
    function getNameParser(para1: JLString): JNNameParser; overload;  // throws javax.naming.NamingException
    function composeName(para1: JNName; para2: JNName): JNName; overload;  // throws javax.naming.NamingException
    function composeName(para1: JLString; para2: JLString): JLString; overload;  // throws javax.naming.NamingException
    function addToEnvironment(para1: JLString; para2: JLObject): JLObject; overload;  // throws javax.naming.NamingException
    function removeFromEnvironment(para1: JLString): JLObject; overload;  // throws javax.naming.NamingException
    function getEnvironment(): JUHashtable; overload;  // throws javax.naming.NamingException
    procedure close(); overload;  // throws javax.naming.NamingException
    function getNameInNamespace(): JLString; overload;  // throws javax.naming.NamingException
  end;

  JNNameImpl = class external 'javax.naming' name 'NameImpl' (JLObject)
  public
    function toString(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function compareTo(para1: JNNameImpl): jint; overload; virtual;
    function size(): jint; overload; virtual;
    function getAll(): JUEnumeration; overload; virtual;
    function get(para1: jint): JLString; overload; virtual;
    function getPrefix(para1: jint): JUEnumeration; overload; virtual;
    function getSuffix(para1: jint): JUEnumeration; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function startsWith(para1: jint; para2: JUEnumeration): jboolean; overload; virtual;
    function endsWith(para1: jint; para2: JUEnumeration): jboolean; overload; virtual;
    function addAll(para1: JUEnumeration): jboolean; overload; virtual;  // throws javax.naming.InvalidNameException
    function addAll(para1: jint; para2: JUEnumeration): jboolean; overload; virtual;  // throws javax.naming.InvalidNameException
    procedure add(para1: JLString); overload; virtual;  // throws javax.naming.InvalidNameException
    procedure add(para1: jint; para2: JLString); overload; virtual;  // throws javax.naming.InvalidNameException
    function remove(para1: jint): JLObject; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JNNameParser = interface external 'javax.naming' name 'NameParser' 
    function parse(para1: JLString): JNName; overload;  // throws javax.naming.NamingException
  end;

  JNReferenceable = interface external 'javax.naming' name 'Referenceable' 
    function getReference(): JNReference; overload;  // throws javax.naming.NamingException
  end;

  JNLControlFactory = class abstract external 'javax.naming.ldap' name 'ControlFactory' (JLObject)
  strict protected
    constructor create(); overload;
  public
    function getControlInstance(para1: JNLControl): JNLControl; overload; virtual; abstract;  // throws javax.naming.NamingException
    class function getControlInstance(para1: JNLControl; para2: JNContext; para3: JUHashtable): JNLControl; static; overload;  // throws javax.naming.NamingException
  end;

  JNLHasControls = interface external 'javax.naming.ldap' name 'HasControls' 
    function getControls(): Arr1JNLControl; overload;  // throws javax.naming.NamingException
  end;

  JNLRfc2253Parser = class sealed external 'javax.naming.ldap' name 'Rfc2253Parser' (JLObject)
  end;

  JNLSortKey = class external 'javax.naming.ldap' name 'SortKey' (JLObject)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: jboolean; para3: JLString); overload;
    function getAttributeID(): JLString; overload; virtual;
    function isAscending(): jboolean; overload; virtual;
    function getMatchingRuleID(): JLString; overload; virtual;
  end;

  JNSDirContextNamePair = class external 'javax.naming.spi' name 'DirContextNamePair' (JLObject)
  end;

  JNSDirContextStringPair = class external 'javax.naming.spi' name 'DirContextStringPair' (JLObject)
  end;

  JNSInitialContextFactory = interface external 'javax.naming.spi' name 'InitialContextFactory' 
    function getInitialContext(para1: JUHashtable): JNContext; overload;  // throws javax.naming.NamingException
  end;

  JNSInitialContextFactoryBuilder = interface external 'javax.naming.spi' name 'InitialContextFactoryBuilder' 
    function createInitialContextFactory(para1: JUHashtable): JNSInitialContextFactory; overload;  // throws javax.naming.NamingException
  end;

  JNSNamingManager = class external 'javax.naming.spi' name 'NamingManager' (JLObject)
  public
    const
      CPE = 'java.naming.spi.CannotProceedException';
  public
    class procedure setObjectFactoryBuilder(para1: JNSObjectFactoryBuilder); static; overload;  // throws javax.naming.NamingException
    class function getObjectInstance(para1: JLObject; para2: JNName; para3: JNContext; para4: JUHashtable): JLObject; static; overload;  // throws java.lang.Exception
    class function getURLContext(para1: JLString; para2: JUHashtable): JNContext; static; overload;  // throws javax.naming.NamingException
    class function getInitialContext(para1: JUHashtable): JNContext; static; overload;  // throws javax.naming.NamingException
    class procedure setInitialContextFactoryBuilder(para1: JNSInitialContextFactoryBuilder); static; overload;  // throws javax.naming.NamingException
    class function hasInitialContextFactoryBuilder(): jboolean; static; overload;
    class function getContinuationContext(para1: JNCannotProceedException): JNContext; static; overload;  // throws javax.naming.NamingException
    class function getStateToBind(para1: JLObject; para2: JNName; para3: JNContext; para4: JUHashtable): JLObject; static; overload;  // throws javax.naming.NamingException
  end;

  JNSObjectFactory = interface external 'javax.naming.spi' name 'ObjectFactory' 
    function getObjectInstance(para1: JLObject; para2: JNName; para3: JNContext; para4: JUHashtable): JLObject; overload;  // throws java.lang.Exception
  end;

  JNSObjectFactoryBuilder = interface external 'javax.naming.spi' name 'ObjectFactoryBuilder' 
    function createObjectFactory(para1: JLObject; para2: JUHashtable): JNSObjectFactory; overload;  // throws javax.naming.NamingException
  end;

  JNSResolver = interface external 'javax.naming.spi' name 'Resolver' 
    function resolveToClass(para1: JNName; para2: JLClass): JNSResolveResult; overload;  // throws javax.naming.NamingException
    function resolveToClass(para1: JLString; para2: JLClass): JNSResolveResult; overload;  // throws javax.naming.NamingException
  end;

  JNSStateFactory = interface external 'javax.naming.spi' name 'StateFactory' 
    function getStateToBind(para1: JLObject; para2: JNName; para3: JNContext; para4: JUHashtable): JLObject; overload;  // throws javax.naming.NamingException
  end;

  JNServerSocketFactory = class abstract external 'javax.net' name 'ServerSocketFactory' (JLObject)
  strict protected
    constructor create(); overload;
  public
    class function getDefault(): JNServerSocketFactory; static; overload;
    function createServerSocket(): JNServerSocket; overload; virtual;  // throws java.io.IOException
    function createServerSocket(para1: jint): JNServerSocket; overload; virtual; abstract;  // throws java.io.IOException
    function createServerSocket(para1: jint; para2: jint): JNServerSocket; overload; virtual; abstract;  // throws java.io.IOException
    function createServerSocket(para1: jint; para2: jint; para3: JNInetAddress): JNServerSocket; overload; virtual; abstract;  // throws java.io.IOException
  end;

  JNSocketFactory = class abstract external 'javax.net' name 'SocketFactory' (JLObject)
  strict protected
    constructor create(); overload;
  public
    class function getDefault(): JNSocketFactory; static; overload;
    function createSocket(): JNSocket; overload; virtual;  // throws java.io.IOException
    function createSocket(para1: JLString; para2: jint): JNSocket; overload; virtual; abstract;  // throws java.io.IOException, java.net.UnknownHostException
    function createSocket(para1: JLString; para2: jint; para3: JNInetAddress; para4: jint): JNSocket; overload; virtual; abstract;  // throws java.io.IOException, java.net.UnknownHostException
    function createSocket(para1: JNInetAddress; para2: jint): JNSocket; overload; virtual; abstract;  // throws java.io.IOException
    function createSocket(para1: JNInetAddress; para2: jint; para3: JNInetAddress; para4: jint): JNSocket; overload; virtual; abstract;  // throws java.io.IOException
  end;

  JNSHostnameVerifier = interface external 'javax.net.ssl' name 'HostnameVerifier' 
    function verify(para1: JLString; para2: JNSSSLSession): jboolean; overload;
  end;

  JNSKeyManager = interface external 'javax.net.ssl' name 'KeyManager' 
  end;

  JNSKeyManagerFactory = class external 'javax.net.ssl' name 'KeyManagerFactory' (JLObject)
  public
    class function getDefaultAlgorithm(): JLString; static; overload; final;
  strict protected
    constructor create(para1: JNSKeyManagerFactorySpi; para2: JSProvider; para3: JLString); overload;
  public
    function getAlgorithm(): JLString; overload; virtual; final;
    class function getInstance(para1: JLString): JNSKeyManagerFactory; static; overload; final;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JNSKeyManagerFactory; static; overload; final;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JNSKeyManagerFactory; static; overload; final;  // throws java.security.NoSuchAlgorithmException
    function getProvider(): JSProvider; overload; virtual; final;
    procedure init(para1: JSKeyStore; para2: Arr1jchar); overload; virtual; final;  // throws java.security.KeyStoreException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException
    procedure init(para1: JSKeyStore; var para2: array of jchar); overload; virtual; final;  // throws java.security.KeyStoreException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException
    procedure init(para1: JNSManagerFactoryParameters); overload; virtual; final;  // throws java.security.InvalidAlgorithmParameterException
    function getKeyManagers(): Arr1JNSKeyManager; overload; virtual; final;
  end;

  JNSKeyManagerFactorySpi = class abstract external 'javax.net.ssl' name 'KeyManagerFactorySpi' (JLObject)
  public
    constructor create(); overload;
  strict protected
    procedure engineInit(para1: JSKeyStore; para2: Arr1jchar); overload; virtual; abstract;  // throws java.security.KeyStoreException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException
    procedure engineInit(para1: JSKeyStore; var para2: array of jchar); overload; virtual; abstract;  // throws java.security.KeyStoreException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException
    procedure engineInit(para1: JNSManagerFactoryParameters); overload; virtual; abstract;  // throws java.security.InvalidAlgorithmParameterException
    function engineGetKeyManagers(): Arr1JNSKeyManager; overload; virtual; abstract;
  end;

  JNSManagerFactoryParameters = interface external 'javax.net.ssl' name 'ManagerFactoryParameters' 
  end;

  JNSSSLContext = class external 'javax.net.ssl' name 'SSLContext' (JLObject)
  strict protected
    constructor create(para1: JNSSSLContextSpi; para2: JSProvider; para3: JLString); overload;
  public
    class function getDefault(): JNSSSLContext; static; overload;  // throws java.security.NoSuchAlgorithmException
    class procedure setDefault(para1: JNSSSLContext); static; overload;
    class function getInstance(para1: JLString): JNSSSLContext; static; overload;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JNSSSLContext; static; overload;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JNSSSLContext; static; overload;  // throws java.security.NoSuchAlgorithmException
    function getProtocol(): JLString; overload; virtual; final;
    function getProvider(): JSProvider; overload; virtual; final;
    procedure init(para1: Arr1JNSKeyManager; para2: Arr1JNSTrustManager; para3: JSSecureRandom); overload; virtual; final;  // throws java.security.KeyManagementException
    procedure init(var para1: array of JNSKeyManager; var para2: array of JNSTrustManager; para3: JSSecureRandom); overload; virtual; final;  // throws java.security.KeyManagementException
    function getSocketFactory(): JNSSSLSocketFactory; overload; virtual; final;
    function getServerSocketFactory(): JNSSSLServerSocketFactory; overload; virtual; final;
    function createSSLEngine(): JNSSSLEngine; overload; virtual; final;
    function createSSLEngine(para1: JLString; para2: jint): JNSSSLEngine; overload; virtual; final;
    function getServerSessionContext(): JNSSSLSessionContext; overload; virtual; final;
    function getClientSessionContext(): JNSSSLSessionContext; overload; virtual; final;
    function getDefaultSSLParameters(): JNSSSLParameters; overload; virtual; final;
    function getSupportedSSLParameters(): JNSSSLParameters; overload; virtual; final;
  end;

  JNSSSLContextSpi = class abstract external 'javax.net.ssl' name 'SSLContextSpi' (JLObject)
  public
    constructor create(); overload;
  strict protected
    procedure engineInit(para1: Arr1JNSKeyManager; para2: Arr1JNSTrustManager; para3: JSSecureRandom); overload; virtual; abstract;  // throws java.security.KeyManagementException
    procedure engineInit(var para1: array of JNSKeyManager; var para2: array of JNSTrustManager; para3: JSSecureRandom); overload; virtual; abstract;  // throws java.security.KeyManagementException
    function engineGetSocketFactory(): JNSSSLSocketFactory; overload; virtual; abstract;
    function engineGetServerSocketFactory(): JNSSSLServerSocketFactory; overload; virtual; abstract;
    function engineCreateSSLEngine(): JNSSSLEngine; overload; virtual; abstract;
    function engineCreateSSLEngine(para1: JLString; para2: jint): JNSSSLEngine; overload; virtual; abstract;
    function engineGetServerSessionContext(): JNSSSLSessionContext; overload; virtual; abstract;
    function engineGetClientSessionContext(): JNSSSLSessionContext; overload; virtual; abstract;
    function engineGetDefaultSSLParameters(): JNSSSLParameters; overload; virtual;
    function engineGetSupportedSSLParameters(): JNSSSLParameters; overload; virtual;
  end;

  JNSSSLParameters = class external 'javax.net.ssl' name 'SSLParameters' (JLObject)
  public
    constructor create(); overload;
    constructor create(para1: Arr1JLString); overload;
    constructor create(const para1: array of JLString); overload;
    constructor create(para1: Arr1JLString; para2: Arr1JLString); overload;
    constructor create(const para1: array of JLString; const para2: array of JLString); overload;
    function getCipherSuites(): Arr1JLString; overload; virtual;
    procedure setCipherSuites(para1: Arr1JLString); overload; virtual;
    procedure setCipherSuites(var para1: array of JLString); overload; virtual;
    function getProtocols(): Arr1JLString; overload; virtual;
    procedure setProtocols(para1: Arr1JLString); overload; virtual;
    procedure setProtocols(var para1: array of JLString); overload; virtual;
    function getWantClientAuth(): jboolean; overload; virtual;
    procedure setWantClientAuth(para1: jboolean); overload; virtual;
    function getNeedClientAuth(): jboolean; overload; virtual;
    procedure setNeedClientAuth(para1: jboolean); overload; virtual;
  end;

  JNSSSLSession = interface external 'javax.net.ssl' name 'SSLSession' 
    function getId(): Arr1jbyte; overload;
    function getSessionContext(): JNSSSLSessionContext; overload;
    function getCreationTime(): jlong; overload;
    function getLastAccessedTime(): jlong; overload;
    procedure invalidate(); overload;
    function isValid(): jboolean; overload;
    procedure putValue(para1: JLString; para2: JLObject); overload;
    function getValue(para1: JLString): JLObject; overload;
    procedure removeValue(para1: JLString); overload;
    function getValueNames(): Arr1JLString; overload;
    function getPeerCertificates(): Arr1JSCCertificate; overload;  // throws javax.net.ssl.SSLPeerUnverifiedException
    function getLocalCertificates(): Arr1JSCCertificate; overload;
    function getPeerCertificateChain(): Arr1JxSCX509Certificate; overload;  // throws javax.net.ssl.SSLPeerUnverifiedException
    function getPeerPrincipal(): JSPrincipal; overload;  // throws javax.net.ssl.SSLPeerUnverifiedException
    function getLocalPrincipal(): JSPrincipal; overload;
    function getCipherSuite(): JLString; overload;
    function getProtocol(): JLString; overload;
    function getPeerHost(): JLString; overload;
    function getPeerPort(): jint; overload;
    function getPacketBufferSize(): jint; overload;
    function getApplicationBufferSize(): jint; overload;
  end;

  JNSSSLSessionContext = interface external 'javax.net.ssl' name 'SSLSessionContext' 
    function getSession(para1: Arr1jbyte): JNSSSLSession; overload;
    function getSession(var para1: array of jbyte): JNSSSLSession; overload;
    function getIds(): JUEnumeration; overload;
    procedure setSessionTimeout(para1: jint); overload;  // throws java.lang.IllegalArgumentException
    function getSessionTimeout(): jint; overload;
    procedure setSessionCacheSize(para1: jint); overload;  // throws java.lang.IllegalArgumentException
    function getSessionCacheSize(): jint; overload;
  end;

  JNSTrustManager = interface external 'javax.net.ssl' name 'TrustManager' 
  end;

  JNSTrustManagerFactory = class external 'javax.net.ssl' name 'TrustManagerFactory' (JLObject)
  public
    class function getDefaultAlgorithm(): JLString; static; overload; final;
  strict protected
    constructor create(para1: JNSTrustManagerFactorySpi; para2: JSProvider; para3: JLString); overload;
  public
    function getAlgorithm(): JLString; overload; virtual; final;
    class function getInstance(para1: JLString): JNSTrustManagerFactory; static; overload; final;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JNSTrustManagerFactory; static; overload; final;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JNSTrustManagerFactory; static; overload; final;  // throws java.security.NoSuchAlgorithmException
    function getProvider(): JSProvider; overload; virtual; final;
    procedure init(para1: JSKeyStore); overload; virtual; final;  // throws java.security.KeyStoreException
    procedure init(para1: JNSManagerFactoryParameters); overload; virtual; final;  // throws java.security.InvalidAlgorithmParameterException
    function getTrustManagers(): Arr1JNSTrustManager; overload; virtual; final;
  end;

  JNSTrustManagerFactorySpi = class abstract external 'javax.net.ssl' name 'TrustManagerFactorySpi' (JLObject)
  public
    constructor create(); overload;
  strict protected
    procedure engineInit(para1: JSKeyStore); overload; virtual; abstract;  // throws java.security.KeyStoreException
    procedure engineInit(para1: JNSManagerFactoryParameters); overload; virtual; abstract;  // throws java.security.InvalidAlgorithmParameterException
    function engineGetTrustManagers(): Arr1JNSTrustManager; overload; virtual; abstract;
  end;

  JPAttributeException = interface external 'javax.print' name 'AttributeException' 
    function getUnsupportedAttributes(): Arr1JLClass; overload;
    function getUnsupportedValues(): Arr1JPAAttribute; overload;
  end;

  JPDoc = interface external 'javax.print' name 'Doc' 
    function getDocFlavor(): JPDocFlavor; overload;
    function getPrintData(): JLObject; overload;  // throws java.io.IOException
    function getAttributes(): JPADocAttributeSet; overload;
    function getReaderForText(): JIReader; overload;  // throws java.io.IOException
    function getStreamForBytes(): JIInputStream; overload;  // throws java.io.IOException
  end;

  JPDocPrintJob = interface external 'javax.print' name 'DocPrintJob' 
    function getPrintService(): JPPrintService; overload;
    function getAttributes(): JPAPrintJobAttributeSet; overload;
    procedure addPrintJobListener(para1: JPEPrintJobListener); overload;
    procedure removePrintJobListener(para1: JPEPrintJobListener); overload;
    procedure addPrintJobAttributeListener(para1: JPEPrintJobAttributeListener; para2: JPAPrintJobAttributeSet); overload;
    procedure removePrintJobAttributeListener(para1: JPEPrintJobAttributeListener); overload;
    procedure print(para1: JPDoc; para2: JPAPrintRequestAttributeSet); overload;  // throws javax.print.PrintException
  end;

  JPFlavorException = interface external 'javax.print' name 'FlavorException' 
    function getUnsupportedFlavors(): Arr1JPDocFlavor; overload;
  end;

  JPMultiDoc = interface external 'javax.print' name 'MultiDoc' 
    function getDoc(): JPDoc; overload;  // throws java.io.IOException
    function next(): JPMultiDoc; overload;  // throws java.io.IOException
  end;

  JPPrintService = interface external 'javax.print' name 'PrintService' 
    function getName(): JLString; overload;
    function createPrintJob(): JPDocPrintJob; overload;
    procedure addPrintServiceAttributeListener(para1: JPEPrintServiceAttributeListener); overload;
    procedure removePrintServiceAttributeListener(para1: JPEPrintServiceAttributeListener); overload;
    function getAttributes(): JPAPrintServiceAttributeSet; overload;
    function getAttribute(para1: JLClass): JPAPrintServiceAttribute; overload;
    function getSupportedDocFlavors(): Arr1JPDocFlavor; overload;
    function isDocFlavorSupported(para1: JPDocFlavor): jboolean; overload;
    function getSupportedAttributeCategories(): Arr1JLClass; overload;
    function isAttributeCategorySupported(para1: JLClass): jboolean; overload;
    function getDefaultAttributeValue(para1: JLClass): JLObject; overload;
    function getSupportedAttributeValues(para1: JLClass; para2: JPDocFlavor; para3: JPAAttributeSet): JLObject; overload;
    function isAttributeValueSupported(para1: JPAAttribute; para2: JPDocFlavor; para3: JPAAttributeSet): jboolean; overload;
    function getUnsupportedAttributes(para1: JPDocFlavor; para2: JPAAttributeSet): JPAAttributeSet; overload;
    function getServiceUIFactory(): JPServiceUIFactory; overload;
    function equals(para1: JLObject): jboolean; overload;
    function hashCode(): jint; overload;
  end;

  JPPrintServiceLookup = class abstract external 'javax.print' name 'PrintServiceLookup' (JLObject)
  public
    type
      InnerServices = class;
      Arr1InnerServices = array of InnerServices;
      Arr2InnerServices = array of Arr1InnerServices;
      Arr3InnerServices = array of Arr2InnerServices;
      InnerServices = class external 'javax.print' name 'Services' 
      end;

  public
    constructor create(); overload;
    class function lookupPrintServices(para1: JPDocFlavor; para2: JPAAttributeSet): Arr1JPPrintService; static; overload; final;
    class function lookupMultiDocPrintServices(para1: Arr1JPDocFlavor; para2: JPAAttributeSet): Arr1JPMultiDocPrintService; static; overload; final;
    class function lookupMultiDocPrintServices(var para1: array of JPDocFlavor; para2: JPAAttributeSet): Arr1JPMultiDocPrintService; static; overload; final;
    class function lookupDefaultPrintService(): JPPrintService; static; overload; final;
    class function registerServiceProvider(para1: JPPrintServiceLookup): jboolean; static; overload;
    class function registerService(para1: JPPrintService): jboolean; static; overload;
    function getPrintServices(para1: JPDocFlavor; para2: JPAAttributeSet): Arr1JPPrintService; overload; virtual; abstract;
    function getPrintServices(): Arr1JPPrintService; overload; virtual; abstract;
    function getMultiDocPrintServices(para1: Arr1JPDocFlavor; para2: JPAAttributeSet): Arr1JPMultiDocPrintService; overload; virtual; abstract;
    function getMultiDocPrintServices(var para1: array of JPDocFlavor; para2: JPAAttributeSet): Arr1JPMultiDocPrintService; overload; virtual; abstract;
    function getDefaultPrintService(): JPPrintService; overload; virtual; abstract;
  end;

  JPServiceUI = class external 'javax.print' name 'ServiceUI' (JLObject)
  public
    constructor create(); overload;
    class function printDialog(para1: JAGraphicsConfiguration; para2: jint; para3: jint; para4: Arr1JPPrintService; para5: JPPrintService; para6: JPDocFlavor; para7: JPAPrintRequestAttributeSet): JPPrintService; static; overload;  // throws java.awt.HeadlessException
    class function printDialog(para1: JAGraphicsConfiguration; para2: jint; para3: jint; var para4: array of JPPrintService; para5: JPPrintService; para6: JPDocFlavor; para7: JPAPrintRequestAttributeSet): JPPrintService; static; overload;  // throws java.awt.HeadlessException
  end;

  JPServiceUIFactory = class abstract external 'javax.print' name 'ServiceUIFactory' (JLObject)
  public
    const
      JCOMPONENT_UI = 'javax.swing.JComponent';
      PANEL_UI = 'java.awt.Panel';
      DIALOG_UI = 'java.awt.Dialog';
      JDIALOG_UI = 'javax.swing.JDialog';
      ABOUT_UIROLE = 1;
      ADMIN_UIROLE = 2;
      MAIN_UIROLE = 3;
      RESERVED_UIROLE = 99;
  public
    constructor create(); overload;
    function getUI(para1: jint; para2: JLString): JLObject; overload; virtual; abstract;
    function getUIClassNamesForRole(para1: jint): Arr1JLString; overload; virtual; abstract;
  end;

  JPStreamPrintServiceFactory = class abstract external 'javax.print' name 'StreamPrintServiceFactory' (JLObject)
  public
    type
      InnerServices = class;
      Arr1InnerServices = array of InnerServices;
      Arr2InnerServices = array of Arr1InnerServices;
      Arr3InnerServices = array of Arr2InnerServices;
      InnerServices = class external 'javax.print' name 'Services' 
      end;

  public
    constructor create(); overload;
    class function lookupStreamPrintServiceFactories(para1: JPDocFlavor; para2: JLString): Arr1JPStreamPrintServiceFactory; static; overload;
    function getOutputFormat(): JLString; overload; virtual; abstract;
    function getSupportedDocFlavors(): Arr1JPDocFlavor; overload; virtual; abstract;
    function getPrintService(para1: JIOutputStream): JPStreamPrintService; overload; virtual; abstract;
  end;

  JPURIException = interface external 'javax.print' name 'URIException' 
    const
      URIInaccessible = 1;
      URISchemeNotSupported = 2;
      URIOtherProblem = -1;
    function getUnsupportedURI(): JNURI; overload;
    function getReason(): jint; overload;
  end;

  JPAAttributeSet = interface external 'javax.print.attribute' name 'AttributeSet' 
    function get(para1: JLClass): JPAAttribute; overload;
    function add(para1: JPAAttribute): jboolean; overload;
    function remove(para1: JLClass): jboolean; overload;
    function remove(para1: JPAAttribute): jboolean; overload;
    function containsKey(para1: JLClass): jboolean; overload;
    function containsValue(para1: JPAAttribute): jboolean; overload;
    function addAll(para1: JPAAttributeSet): jboolean; overload;
    function size(): jint; overload;
    function toArray(): Arr1JPAAttribute; overload;
    procedure clear(); overload;
    function isEmpty(): jboolean; overload;
    function equals(para1: JLObject): jboolean; overload;
    function hashCode(): jint; overload;
  end;

  JPAAttributeSetUtilities = class sealed external 'javax.print.attribute' name 'AttributeSetUtilities' (JLObject)
  public
    type
      InnerSynchronizedAttributeSet = class;
      Arr1InnerSynchronizedAttributeSet = array of InnerSynchronizedAttributeSet;
      Arr2InnerSynchronizedAttributeSet = array of Arr1InnerSynchronizedAttributeSet;
      Arr3InnerSynchronizedAttributeSet = array of Arr2InnerSynchronizedAttributeSet;
      InnerUnmodifiableAttributeSet = class;
      Arr1InnerUnmodifiableAttributeSet = array of InnerUnmodifiableAttributeSet;
      Arr2InnerUnmodifiableAttributeSet = array of Arr1InnerUnmodifiableAttributeSet;
      Arr3InnerUnmodifiableAttributeSet = array of Arr2InnerUnmodifiableAttributeSet;
      InnerSynchronizedDocAttributeSet = class;
      Arr1InnerSynchronizedDocAttributeSet = array of InnerSynchronizedDocAttributeSet;
      Arr2InnerSynchronizedDocAttributeSet = array of Arr1InnerSynchronizedDocAttributeSet;
      Arr3InnerSynchronizedDocAttributeSet = array of Arr2InnerSynchronizedDocAttributeSet;
      InnerUnmodifiableDocAttributeSet = class;
      Arr1InnerUnmodifiableDocAttributeSet = array of InnerUnmodifiableDocAttributeSet;
      Arr2InnerUnmodifiableDocAttributeSet = array of Arr1InnerUnmodifiableDocAttributeSet;
      Arr3InnerUnmodifiableDocAttributeSet = array of Arr2InnerUnmodifiableDocAttributeSet;
      InnerSynchronizedPrintJobAttributeSet = class;
      Arr1InnerSynchronizedPrintJobAttributeSet = array of InnerSynchronizedPrintJobAttributeSet;
      Arr2InnerSynchronizedPrintJobAttributeSet = array of Arr1InnerSynchronizedPrintJobAttributeSet;
      Arr3InnerSynchronizedPrintJobAttributeSet = array of Arr2InnerSynchronizedPrintJobAttributeSet;
      InnerUnmodifiablePrintJobAttributeSet = class;
      Arr1InnerUnmodifiablePrintJobAttributeSet = array of InnerUnmodifiablePrintJobAttributeSet;
      Arr2InnerUnmodifiablePrintJobAttributeSet = array of Arr1InnerUnmodifiablePrintJobAttributeSet;
      Arr3InnerUnmodifiablePrintJobAttributeSet = array of Arr2InnerUnmodifiablePrintJobAttributeSet;
      InnerSynchronizedPrintRequestAttributeSet = class;
      Arr1InnerSynchronizedPrintRequestAttributeSet = array of InnerSynchronizedPrintRequestAttributeSet;
      Arr2InnerSynchronizedPrintRequestAttributeSet = array of Arr1InnerSynchronizedPrintRequestAttributeSet;
      Arr3InnerSynchronizedPrintRequestAttributeSet = array of Arr2InnerSynchronizedPrintRequestAttributeSet;
      InnerUnmodifiablePrintRequestAttributeSet = class;
      Arr1InnerUnmodifiablePrintRequestAttributeSet = array of InnerUnmodifiablePrintRequestAttributeSet;
      Arr2InnerUnmodifiablePrintRequestAttributeSet = array of Arr1InnerUnmodifiablePrintRequestAttributeSet;
      Arr3InnerUnmodifiablePrintRequestAttributeSet = array of Arr2InnerUnmodifiablePrintRequestAttributeSet;
      InnerSynchronizedPrintServiceAttributeSet = class;
      Arr1InnerSynchronizedPrintServiceAttributeSet = array of InnerSynchronizedPrintServiceAttributeSet;
      Arr2InnerSynchronizedPrintServiceAttributeSet = array of Arr1InnerSynchronizedPrintServiceAttributeSet;
      Arr3InnerSynchronizedPrintServiceAttributeSet = array of Arr2InnerSynchronizedPrintServiceAttributeSet;
      InnerUnmodifiablePrintServiceAttributeSet = class;
      Arr1InnerUnmodifiablePrintServiceAttributeSet = array of InnerUnmodifiablePrintServiceAttributeSet;
      Arr2InnerUnmodifiablePrintServiceAttributeSet = array of Arr1InnerUnmodifiablePrintServiceAttributeSet;
      Arr3InnerUnmodifiablePrintServiceAttributeSet = array of Arr2InnerUnmodifiablePrintServiceAttributeSet;
      InnerSynchronizedAttributeSet = class external 'javax.print.attribute' name 'SynchronizedAttributeSet' 
      end;

      InnerUnmodifiableAttributeSet = class external 'javax.print.attribute' name 'UnmodifiableAttributeSet' 
      end;

      InnerSynchronizedDocAttributeSet = class external 'javax.print.attribute' name 'SynchronizedDocAttributeSet' 
      end;

      InnerUnmodifiableDocAttributeSet = class external 'javax.print.attribute' name 'UnmodifiableDocAttributeSet' 
      end;

      InnerSynchronizedPrintJobAttributeSet = class external 'javax.print.attribute' name 'SynchronizedPrintJobAttributeSet' 
      end;

      InnerUnmodifiablePrintJobAttributeSet = class external 'javax.print.attribute' name 'UnmodifiablePrintJobAttributeSet' 
      end;

      InnerSynchronizedPrintRequestAttributeSet = class external 'javax.print.attribute' name 'SynchronizedPrintRequestAttributeSet' 
      end;

      InnerUnmodifiablePrintRequestAttributeSet = class external 'javax.print.attribute' name 'UnmodifiablePrintRequestAttributeSet' 
      end;

      InnerSynchronizedPrintServiceAttributeSet = class external 'javax.print.attribute' name 'SynchronizedPrintServiceAttributeSet' 
      end;

      InnerUnmodifiablePrintServiceAttributeSet = class external 'javax.print.attribute' name 'UnmodifiablePrintServiceAttributeSet' 
      end;

  public
    class function unmodifiableView(para1: JPAAttributeSet): JPAAttributeSet; static; overload;
    class function unmodifiableView(para1: JPADocAttributeSet): JPADocAttributeSet; static; overload;
    class function unmodifiableView(para1: JPAPrintRequestAttributeSet): JPAPrintRequestAttributeSet; static; overload;
    class function unmodifiableView(para1: JPAPrintJobAttributeSet): JPAPrintJobAttributeSet; static; overload;
    class function unmodifiableView(para1: JPAPrintServiceAttributeSet): JPAPrintServiceAttributeSet; static; overload;
    class function synchronizedView(para1: JPAAttributeSet): JPAAttributeSet; static; overload;
    class function synchronizedView(para1: JPADocAttributeSet): JPADocAttributeSet; static; overload;
    class function synchronizedView(para1: JPAPrintRequestAttributeSet): JPAPrintRequestAttributeSet; static; overload;
    class function synchronizedView(para1: JPAPrintJobAttributeSet): JPAPrintJobAttributeSet; static; overload;
    class function synchronizedView(para1: JPAPrintServiceAttributeSet): JPAPrintServiceAttributeSet; static; overload;
    class function verifyAttributeCategory(para1: JLObject; para2: JLClass): JLClass; static; overload;
    class function verifyAttributeValue(para1: JLObject; para2: JLClass): JPAAttribute; static; overload;
    class procedure verifyCategoryForValue(para1: JLClass; para2: JPAAttribute); static; overload;
  end;

  JPEPrintJobAttributeListener = interface external 'javax.print.event' name 'PrintJobAttributeListener' 
    procedure attributeUpdate(para1: JPEPrintJobAttributeEvent); overload;
  end;

  JPEPrintJobListener = interface external 'javax.print.event' name 'PrintJobListener' 
    procedure printDataTransferCompleted(para1: JPEPrintJobEvent); overload;
    procedure printJobCompleted(para1: JPEPrintJobEvent); overload;
    procedure printJobFailed(para1: JPEPrintJobEvent); overload;
    procedure printJobCanceled(para1: JPEPrintJobEvent); overload;
    procedure printJobNoMoreEvents(para1: JPEPrintJobEvent); overload;
    procedure printJobRequiresAttention(para1: JPEPrintJobEvent); overload;
  end;

  JPEPrintServiceAttributeListener = interface external 'javax.print.event' name 'PrintServiceAttributeListener' 
    procedure attributeUpdate(para1: JPEPrintServiceAttributeEvent); overload;
  end;

  JRCPortableRemoteObjectDelegate = interface external 'javax.rmi.CORBA' name 'PortableRemoteObjectDelegate' 
    procedure exportObject(para1: JRRemote); overload;  // throws java.rmi.RemoteException
    function toStub(para1: JRRemote): JRRemote; overload;  // throws java.rmi.NoSuchObjectException
    procedure unexportObject(para1: JRRemote); overload;  // throws java.rmi.NoSuchObjectException
    function narrow(para1: JLObject; para2: JLClass): JLObject; overload;  // throws java.lang.ClassCastException
    procedure connect(para1: JRRemote; para2: JRRemote); overload;  // throws java.rmi.RemoteException
  end;

  JRCStubDelegate = interface external 'javax.rmi.CORBA' name 'StubDelegate' 
    function hashCode(para1: JRCStub): jint; overload;
    function equals(para1: JRCStub; para2: JLObject): jboolean; overload;
    function toString(para1: JRCStub): JLString; overload;
    procedure connect(para1: JRCStub; para2: OOCORB); overload;  // throws java.rmi.RemoteException
    procedure readObject(para1: JRCStub; para2: JIObjectInputStream); overload;  // throws java.io.IOException, java.lang.ClassNotFoundException
    procedure writeObject(para1: JRCStub; para2: JIObjectOutputStream); overload;  // throws java.io.IOException
  end;

  JRCUtil = class external 'javax.rmi.CORBA' name 'Util' (JLObject)
  public
    class function mapSystemException(para1: OOCSystemException): JRRemoteException; static; overload;
    class procedure writeAny(para1: OOCPOutputStream; para2: JLObject); static; overload;
    class function readAny(para1: OOCPInputStream): JLObject; static; overload;
    class procedure writeRemoteObject(para1: OOCPOutputStream; para2: JLObject); static; overload;
    class procedure writeAbstractObject(para1: OOCPOutputStream; para2: JLObject); static; overload;
    class procedure registerTarget(para1: JRCTie; para2: JRRemote); static; overload;
    class procedure unexportObject(para1: JRRemote); static; overload;  // throws java.rmi.NoSuchObjectException
    class function getTie(para1: JRRemote): JRCTie; static; overload;
    class function createValueHandler(): JRCValueHandler; static; overload;
    class function getCodebase(para1: JLClass): JLString; static; overload;
    class function loadClass(para1: JLString; para2: JLString; para3: JLClassLoader): JLClass; static; overload;  // throws java.lang.ClassNotFoundException
    class function isLocal(para1: JRCStub): jboolean; static; overload;  // throws java.rmi.RemoteException
    class function wrapException(para1: JLThrowable): JRRemoteException; static; overload;
    class function copyObjects(para1: Arr1JLObject; para2: OOCORB): Arr1JLObject; static; overload;  // throws java.rmi.RemoteException
    class function copyObjects(var para1: array of JLObject; para2: OOCORB): Arr1JLObject; static; overload;  // throws java.rmi.RemoteException
    class function copyObject(para1: JLObject; para2: OOCORB): JLObject; static; overload;  // throws java.rmi.RemoteException
  end;

  JRCUtilDelegate = interface external 'javax.rmi.CORBA' name 'UtilDelegate' 
    function mapSystemException(para1: OOCSystemException): JRRemoteException; overload;
    procedure writeAny(para1: OOCPOutputStream; para2: JLObject); overload;
    function readAny(para1: OOCPInputStream): JLObject; overload;
    procedure writeRemoteObject(para1: OOCPOutputStream; para2: JLObject); overload;
    procedure writeAbstractObject(para1: OOCPOutputStream; para2: JLObject); overload;
    procedure registerTarget(para1: JRCTie; para2: JRRemote); overload;
    procedure unexportObject(para1: JRRemote); overload;  // throws java.rmi.NoSuchObjectException
    function getTie(para1: JRRemote): JRCTie; overload;
    function createValueHandler(): JRCValueHandler; overload;
    function getCodebase(para1: JLClass): JLString; overload;
    function loadClass(para1: JLString; para2: JLString; para3: JLClassLoader): JLClass; overload;  // throws java.lang.ClassNotFoundException
    function isLocal(para1: JRCStub): jboolean; overload;  // throws java.rmi.RemoteException
    function wrapException(para1: JLThrowable): JRRemoteException; overload;
    function copyObject(para1: JLObject; para2: OOCORB): JLObject; overload;  // throws java.rmi.RemoteException
    function copyObjects(para1: Arr1JLObject; para2: OOCORB): Arr1JLObject; overload;  // throws java.rmi.RemoteException
    function copyObjects(var para1: array of JLObject; para2: OOCORB): Arr1JLObject; overload;  // throws java.rmi.RemoteException
  end;

  JRCValueHandler = interface external 'javax.rmi.CORBA' name 'ValueHandler' 
    procedure writeValue(para1: OOCPOutputStream; para2: JISerializable); overload;
    function readValue(para1: OOCPInputStream; para2: jint; para3: JLClass; para4: JLString; para5: OOSRunTime): JISerializable; overload;
    function getRMIRepositoryID(para1: JLClass): JLString; overload;
    function isCustomMarshaled(para1: JLClass): jboolean; overload;
    function getRunTimeCodeBase(): OOSRunTime; overload;
    function writeReplace(para1: JISerializable): JISerializable; overload;
  end;

  JRPortableRemoteObject = class external 'javax.rmi' name 'PortableRemoteObject' (JLObject)
  strict protected
    constructor create(); overload;  // throws java.rmi.RemoteException
  public
    class procedure exportObject(para1: JRRemote); static; overload;  // throws java.rmi.RemoteException
    class function toStub(para1: JRRemote): JRRemote; static; overload;  // throws java.rmi.NoSuchObjectException
    class procedure unexportObject(para1: JRRemote); static; overload;  // throws java.rmi.NoSuchObjectException
    class function narrow(para1: JLObject; para2: JLClass): JLObject; static; overload;  // throws java.lang.ClassCastException
    class procedure connect(para1: JRRemote; para2: JRRemote); static; overload;  // throws java.rmi.RemoteException
  end;

  JSCompilable = interface external 'javax.script' name 'Compilable' 
    function compile(para1: JLString): JSCompiledScript; overload;  // throws javax.script.ScriptException
    function compile(para1: JIReader): JSCompiledScript; overload;  // throws javax.script.ScriptException
  end;

  JSCompiledScript = class abstract external 'javax.script' name 'CompiledScript' (JLObject)
  public
    constructor create(); overload;
    function eval(para1: JSScriptContext): JLObject; overload; virtual; abstract;  // throws javax.script.ScriptException
    function eval(para1: JSBindings): JLObject; overload; virtual;  // throws javax.script.ScriptException
    function eval(): JLObject; overload; virtual;  // throws javax.script.ScriptException
    function getEngine(): JSScriptEngine; overload; virtual; abstract;
  end;

  JSInvocable = interface external 'javax.script' name 'Invocable' 
    function invokeMethod(para1: JLObject; para2: JLString; para3: Arr1JLObject): JLObject; overload;  // throws javax.script.ScriptException, java.lang.NoSuchMethodException
    function invokeMethod(para1: JLObject; para2: JLString; const para3: array of JLObject): JLObject; overload;  // throws javax.script.ScriptException, java.lang.NoSuchMethodException
    function invokeFunction(para1: JLString; para2: Arr1JLObject): JLObject; overload;  // throws javax.script.ScriptException, java.lang.NoSuchMethodException
    function invokeFunction(para1: JLString; const para2: array of JLObject): JLObject; overload;  // throws javax.script.ScriptException, java.lang.NoSuchMethodException
    function getInterface(para1: JLClass): JLObject; overload;
    function getInterface(para1: JLObject; para2: JLClass): JLObject; overload;
  end;

  JSScriptContext = interface external 'javax.script' name 'ScriptContext' 
    const
      ENGINE_SCOPE = 100;
      GLOBAL_SCOPE = 200;
    procedure setBindings(para1: JSBindings; para2: jint); overload;
    function getBindings(para1: jint): JSBindings; overload;
    procedure setAttribute(para1: JLString; para2: JLObject; para3: jint); overload;
    function getAttribute(para1: JLString; para2: jint): JLObject; overload;
    function removeAttribute(para1: JLString; para2: jint): JLObject; overload;
    function getAttribute(para1: JLString): JLObject; overload;
    function getAttributesScope(para1: JLString): jint; overload;
    function getWriter(): JIWriter; overload;
    function getErrorWriter(): JIWriter; overload;
    procedure setWriter(para1: JIWriter); overload;
    procedure setErrorWriter(para1: JIWriter); overload;
    function getReader(): JIReader; overload;
    procedure setReader(para1: JIReader); overload;
    function getScopes(): JUList; overload;
  end;

  JSScriptEngine = interface external 'javax.script' name 'ScriptEngine' 
    const
      ARGV = 'javax.script.argv';
      FILENAME = 'javax.script.filename';
      ENGINE = 'javax.script.engine';
      ENGINE_VERSION = 'javax.script.engine_version';
      NAME = 'javax.script.name';
      LANGUAGE = 'javax.script.language';
      LANGUAGE_VERSION = 'javax.script.language_version';
    function eval(para1: JLString; para2: JSScriptContext): JLObject; overload;  // throws javax.script.ScriptException
    function eval(para1: JIReader; para2: JSScriptContext): JLObject; overload;  // throws javax.script.ScriptException
    function eval(para1: JLString): JLObject; overload;  // throws javax.script.ScriptException
    function eval(para1: JIReader): JLObject; overload;  // throws javax.script.ScriptException
    function eval(para1: JLString; para2: JSBindings): JLObject; overload;  // throws javax.script.ScriptException
    function eval(para1: JIReader; para2: JSBindings): JLObject; overload;  // throws javax.script.ScriptException
    procedure put(para1: JLString; para2: JLObject); overload;
    function get(para1: JLString): JLObject; overload;
    function getBindings(para1: jint): JSBindings; overload;
    procedure setBindings(para1: JSBindings; para2: jint); overload;
    function createBindings(): JSBindings; overload;
    function getContext(): JSScriptContext; overload;
    procedure setContext(para1: JSScriptContext); overload;
    function getFactory(): JSScriptEngineFactory; overload;
  end;

  JSScriptEngineFactory = interface external 'javax.script' name 'ScriptEngineFactory' 
    function getEngineName(): JLString; overload;
    function getEngineVersion(): JLString; overload;
    function getExtensions(): JUList; overload;
    function getMimeTypes(): JUList; overload;
    function getNames(): JUList; overload;
    function getLanguageName(): JLString; overload;
    function getLanguageVersion(): JLString; overload;
    function getParameter(para1: JLString): JLObject; overload;
    function getMethodCallSyntax(para1: JLString; para2: JLString; para3: Arr1JLString): JLString; overload;
    function getMethodCallSyntax(para1: JLString; para2: JLString; const para3: array of JLString): JLString; overload;
    function getOutputStatement(para1: JLString): JLString; overload;
    function getProgram(para1: Arr1JLString): JLString; overload;
    function getProgram(const para1: array of JLString): JLString; overload;
    function getScriptEngine(): JSScriptEngine; overload;
  end;

  JSScriptEngineManager = class external 'javax.script' name 'ScriptEngineManager' (JLObject)
  public
    constructor create(); overload;
    constructor create(para1: JLClassLoader); overload;
    procedure setBindings(para1: JSBindings); overload; virtual;
    function getBindings(): JSBindings; overload; virtual;
    procedure put(para1: JLString; para2: JLObject); overload; virtual;
    function get(para1: JLString): JLObject; overload; virtual;
    function getEngineByName(para1: JLString): JSScriptEngine; overload; virtual;
    function getEngineByExtension(para1: JLString): JSScriptEngine; overload; virtual;
    function getEngineByMimeType(para1: JLString): JSScriptEngine; overload; virtual;
    function getEngineFactories(): JUList; overload; virtual;
    procedure registerEngineName(para1: JLString; para2: JSScriptEngineFactory); overload; virtual;
    procedure registerEngineMimeType(para1: JLString; para2: JSScriptEngineFactory); overload; virtual;
    procedure registerEngineExtension(para1: JLString; para2: JSScriptEngineFactory); overload; virtual;
  end;

  JSADestroyable = interface external 'javax.security.auth' name 'Destroyable' 
    procedure destroy(); overload;  // throws javax.security.auth.DestroyFailedException
    function isDestroyed(): jboolean; overload;
  end;

  JSAPolicy = class abstract external 'javax.security.auth' name 'Policy' (JLObject)
  strict protected
    constructor create(); overload;
  public
    class function getPolicy(): JSAPolicy; static; overload;
    class procedure setPolicy(para1: JSAPolicy); static; overload;
    function getPermissions(para1: JSASubject; para2: JSCodeSource): JSPermissionCollection; overload; virtual; abstract;
    procedure refresh(); overload; virtual; abstract;
  end;

  JSARefreshable = interface external 'javax.security.auth' name 'Refreshable' 
    function isCurrent(): jboolean; overload;
    procedure refresh(); overload;  // throws javax.security.auth.RefreshFailedException
  end;

  JSACCallback = interface external 'javax.security.auth.callback' name 'Callback' 
  end;

  JSACCallbackHandler = interface external 'javax.security.auth.callback' name 'CallbackHandler' 
    procedure handle(para1: Arr1JSACCallback); overload;  // throws java.io.IOException, javax.security.auth.callback.UnsupportedCallbackException
    procedure handle(var para1: array of JSACCallback); overload;  // throws java.io.IOException, javax.security.auth.callback.UnsupportedCallbackException
  end;

  JSALAppConfigurationEntry = class external 'javax.security.auth.login' name 'AppConfigurationEntry' (JLObject)
  public
    type
      InnerLoginModuleControlFlag = class;
      Arr1InnerLoginModuleControlFlag = array of InnerLoginModuleControlFlag;
      Arr2InnerLoginModuleControlFlag = array of Arr1InnerLoginModuleControlFlag;
      Arr3InnerLoginModuleControlFlag = array of Arr2InnerLoginModuleControlFlag;
      InnerLoginModuleControlFlag = class external 'javax.security.auth.login' name 'LoginModuleControlFlag' (JLObject)
      public
        final class var
          fREQUIRED: JSALAppConfigurationEntry.InnerLoginModuleControlFlag; external name 'REQUIRED';
          fREQUISITE: JSALAppConfigurationEntry.InnerLoginModuleControlFlag; external name 'REQUISITE';
          fSUFFICIENT: JSALAppConfigurationEntry.InnerLoginModuleControlFlag; external name 'SUFFICIENT';
          fOPTIONAL: JSALAppConfigurationEntry.InnerLoginModuleControlFlag; external name 'OPTIONAL';
      public
        function toString(): JLString; overload; virtual;
      end;

  public
    constructor create(para1: JLString; para2: JSALAppConfigurationEntry.InnerLoginModuleControlFlag; para3: JUMap); overload;
    function getLoginModuleName(): JLString; overload; virtual;
    function getControlFlag(): JSALAppConfigurationEntry.InnerLoginModuleControlFlag; overload; virtual;
    function getOptions(): JUMap; overload; virtual;
  end;

  JSALConfiguration = class abstract external 'javax.security.auth.login' name 'Configuration' (JLObject)
  public
    type
      InnerConfigDelegate = class;
      Arr1InnerConfigDelegate = array of InnerConfigDelegate;
      Arr2InnerConfigDelegate = array of Arr1InnerConfigDelegate;
      Arr3InnerConfigDelegate = array of Arr2InnerConfigDelegate;
      InnerConfigDelegate = class external 'javax.security.auth.login' name 'ConfigDelegate' 
      end;

  public
    type
      InnerParameters = interface;
      Arr1InnerParameters = array of InnerParameters;
      Arr2InnerParameters = array of Arr1InnerParameters;
      Arr3InnerParameters = array of Arr2InnerParameters;
      InnerParameters = interface external 'javax.security.auth.login' name 'Parameters' 
      end;

  strict protected
    constructor create(); overload;
  public
    class function getConfiguration(): JSALConfiguration; static; overload;
    class procedure setConfiguration(para1: JSALConfiguration); static; overload;
    class function getInstance(para1: JLString; para2: JSALConfiguration.InnerParameters): JSALConfiguration; static; overload;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JSALConfiguration.InnerParameters; para3: JLString): JSALConfiguration; static; overload;  // throws java.security.NoSuchProviderException, java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JSALConfiguration.InnerParameters; para3: JSProvider): JSALConfiguration; static; overload;  // throws java.security.NoSuchAlgorithmException
    function getProvider(): JSProvider; overload; virtual;
    function getType(): JLString; overload; virtual;
    function getParameters(): JSALConfiguration.InnerParameters; overload; virtual;
    function getAppConfigurationEntry(para1: JLString): Arr1JSALAppConfigurationEntry; overload; virtual; abstract;
    procedure refresh(); overload; virtual;
  end;

  JSALConfigurationSpi = class abstract external 'javax.security.auth.login' name 'ConfigurationSpi' (JLObject)
  public
    constructor create(); overload;
  strict protected
    function engineGetAppConfigurationEntry(para1: JLString): Arr1JSALAppConfigurationEntry; overload; virtual; abstract;
    procedure engineRefresh(); overload; virtual;
  end;

  JSALLoginContext = class external 'javax.security.auth.login' name 'LoginContext' (JLObject)
  public
    type
      InnerModuleInfo = class;
      Arr1InnerModuleInfo = array of InnerModuleInfo;
      Arr2InnerModuleInfo = array of Arr1InnerModuleInfo;
      Arr3InnerModuleInfo = array of Arr2InnerModuleInfo;
      InnerSecureCallbackHandler = class;
      Arr1InnerSecureCallbackHandler = array of InnerSecureCallbackHandler;
      Arr2InnerSecureCallbackHandler = array of Arr1InnerSecureCallbackHandler;
      Arr3InnerSecureCallbackHandler = array of Arr2InnerSecureCallbackHandler;
      InnerModuleInfo = class external 'javax.security.auth.login' name 'ModuleInfo' 
      end;

      InnerSecureCallbackHandler = class external 'javax.security.auth.login' name 'SecureCallbackHandler' 
      end;

  public
    constructor create(para1: JLString); overload;  // throws javax.security.auth.login.LoginException
    constructor create(para1: JLString; para2: JSASubject); overload;  // throws javax.security.auth.login.LoginException
    constructor create(para1: JLString; para2: JSACCallbackHandler); overload;  // throws javax.security.auth.login.LoginException
    constructor create(para1: JLString; para2: JSASubject; para3: JSACCallbackHandler); overload;  // throws javax.security.auth.login.LoginException
    constructor create(para1: JLString; para2: JSASubject; para3: JSACCallbackHandler; para4: JSALConfiguration); overload;  // throws javax.security.auth.login.LoginException
    procedure login(); overload; virtual;  // throws javax.security.auth.login.LoginException
    procedure logout(); overload; virtual;  // throws javax.security.auth.login.LoginException
    function getSubject(): JSASubject; overload; virtual;
  end;

  JSASLoginModule = interface external 'javax.security.auth.spi' name 'LoginModule' 
    procedure initialize(para1: JSASubject; para2: JSACCallbackHandler; para3: JUMap; para4: JUMap); overload;
    function login(): jboolean; overload;  // throws javax.security.auth.login.LoginException
    function commit(): jboolean; overload;  // throws javax.security.auth.login.LoginException
    function abort(): jboolean; overload;  // throws javax.security.auth.login.LoginException
    function logout(): jboolean; overload;  // throws javax.security.auth.login.LoginException
  end;

  JxSCCertificate = class abstract external 'javax.security.cert' name 'Certificate' (JLObject)
  public
    constructor create(); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function getEncoded(): Arr1jbyte; overload; virtual; abstract;  // throws javax.security.cert.CertificateEncodingException
    procedure verify(para1: JSPublicKey); overload; virtual; abstract;  // throws javax.security.cert.CertificateException, java.security.NoSuchAlgorithmException, java.security.InvalidKeyException, java.security.NoSuchProviderException, java.security.SignatureException
    procedure verify(para1: JSPublicKey; para2: JLString); overload; virtual; abstract;  // throws javax.security.cert.CertificateException, java.security.NoSuchAlgorithmException, java.security.InvalidKeyException, java.security.NoSuchProviderException, java.security.SignatureException
    function toString(): JLString; overload; virtual; abstract;
    function getPublicKey(): JSPublicKey; overload; virtual; abstract;
  end;

  JSSSasl = class external 'javax.security.sasl' name 'Sasl' (JLObject)
  public
    const
      QOP = 'javax.security.sasl.qop';
      STRENGTH = 'javax.security.sasl.strength';
      SERVER_AUTH = 'javax.security.sasl.server.authentication';
      MAX_BUFFER = 'javax.security.sasl.maxbuffer';
      RAW_SEND_SIZE = 'javax.security.sasl.rawsendsize';
      REUSE = 'javax.security.sasl.reuse';
      POLICY_NOPLAINTEXT = 'javax.security.sasl.policy.noplaintext';
      POLICY_NOACTIVE = 'javax.security.sasl.policy.noactive';
      POLICY_NODICTIONARY = 'javax.security.sasl.policy.nodictionary';
      POLICY_NOANONYMOUS = 'javax.security.sasl.policy.noanonymous';
      POLICY_FORWARD_SECRECY = 'javax.security.sasl.policy.forward';
      POLICY_PASS_CREDENTIALS = 'javax.security.sasl.policy.credentials';
      CREDENTIALS = 'javax.security.sasl.credentials';
  public
    class function createSaslClient(para1: Arr1JLString; para2: JLString; para3: JLString; para4: JLString; para5: JUMap; para6: JSACCallbackHandler): JSSSaslClient; static; overload;  // throws javax.security.sasl.SaslException
    class function createSaslClient(var para1: array of JLString; para2: JLString; para3: JLString; para4: JLString; para5: JUMap; para6: JSACCallbackHandler): JSSSaslClient; static; overload;  // throws javax.security.sasl.SaslException
    class function createSaslServer(para1: JLString; para2: JLString; para3: JLString; para4: JUMap; para5: JSACCallbackHandler): JSSSaslServer; static; overload;  // throws javax.security.sasl.SaslException
    class function getSaslClientFactories(): JUEnumeration; static; overload;
    class function getSaslServerFactories(): JUEnumeration; static; overload;
  end;

  JSSSaslClient = interface external 'javax.security.sasl' name 'SaslClient' 
    function getMechanismName(): JLString; overload;
    function hasInitialResponse(): jboolean; overload;
    function evaluateChallenge(para1: Arr1jbyte): Arr1jbyte; overload;  // throws javax.security.sasl.SaslException
    function evaluateChallenge(var para1: array of jbyte): Arr1jbyte; overload;  // throws javax.security.sasl.SaslException
    function isComplete(): jboolean; overload;
    function unwrap(para1: Arr1jbyte; para2: jint; para3: jint): Arr1jbyte; overload;  // throws javax.security.sasl.SaslException
    function unwrap(var para1: array of jbyte; para2: jint; para3: jint): Arr1jbyte; overload;  // throws javax.security.sasl.SaslException
    function wrap(para1: Arr1jbyte; para2: jint; para3: jint): Arr1jbyte; overload;  // throws javax.security.sasl.SaslException
    function wrap(var para1: array of jbyte; para2: jint; para3: jint): Arr1jbyte; overload;  // throws javax.security.sasl.SaslException
    function getNegotiatedProperty(para1: JLString): JLObject; overload;
    procedure dispose(); overload;  // throws javax.security.sasl.SaslException
  end;

  JSSSaslClientFactory = interface external 'javax.security.sasl' name 'SaslClientFactory' 
    function createSaslClient(para1: Arr1JLString; para2: JLString; para3: JLString; para4: JLString; para5: JUMap; para6: JSACCallbackHandler): JSSSaslClient; overload;  // throws javax.security.sasl.SaslException
    function createSaslClient(var para1: array of JLString; para2: JLString; para3: JLString; para4: JLString; para5: JUMap; para6: JSACCallbackHandler): JSSSaslClient; overload;  // throws javax.security.sasl.SaslException
    function getMechanismNames(para1: JUMap): Arr1JLString; overload;
  end;

  JSSSaslServer = interface external 'javax.security.sasl' name 'SaslServer' 
    function getMechanismName(): JLString; overload;
    function evaluateResponse(para1: Arr1jbyte): Arr1jbyte; overload;  // throws javax.security.sasl.SaslException
    function evaluateResponse(var para1: array of jbyte): Arr1jbyte; overload;  // throws javax.security.sasl.SaslException
    function isComplete(): jboolean; overload;
    function getAuthorizationID(): JLString; overload;
    function unwrap(para1: Arr1jbyte; para2: jint; para3: jint): Arr1jbyte; overload;  // throws javax.security.sasl.SaslException
    function unwrap(var para1: array of jbyte; para2: jint; para3: jint): Arr1jbyte; overload;  // throws javax.security.sasl.SaslException
    function wrap(para1: Arr1jbyte; para2: jint; para3: jint): Arr1jbyte; overload;  // throws javax.security.sasl.SaslException
    function wrap(var para1: array of jbyte; para2: jint; para3: jint): Arr1jbyte; overload;  // throws javax.security.sasl.SaslException
    function getNegotiatedProperty(para1: JLString): JLObject; overload;
    procedure dispose(); overload;  // throws javax.security.sasl.SaslException
  end;

  JSSSaslServerFactory = interface external 'javax.security.sasl' name 'SaslServerFactory' 
    function createSaslServer(para1: JLString; para2: JLString; para3: JLString; para4: JUMap; para5: JSACCallbackHandler): JSSSaslServer; overload;  // throws javax.security.sasl.SaslException
    function getMechanismNames(para1: JUMap): Arr1JLString; overload;
  end;

  JSCard = class abstract external 'javax.smartcardio' name 'Card' (JLObject)
  strict protected
    constructor create(); overload;
  public
    function getATR(): JSATR; overload; virtual; abstract;
    function getProtocol(): JLString; overload; virtual; abstract;
    function getBasicChannel(): JSCardChannel; overload; virtual; abstract;
    function openLogicalChannel(): JSCardChannel; overload; virtual; abstract;  // throws javax.smartcardio.CardException
    procedure beginExclusive(); overload; virtual; abstract;  // throws javax.smartcardio.CardException
    procedure endExclusive(); overload; virtual; abstract;  // throws javax.smartcardio.CardException
    function transmitControlCommand(para1: jint; para2: Arr1jbyte): Arr1jbyte; overload; virtual; abstract;  // throws javax.smartcardio.CardException
    function transmitControlCommand(para1: jint; var para2: array of jbyte): Arr1jbyte; overload; virtual; abstract;  // throws javax.smartcardio.CardException
    procedure disconnect(para1: jboolean); overload; virtual; abstract;  // throws javax.smartcardio.CardException
  end;

  JSCardChannel = class abstract external 'javax.smartcardio' name 'CardChannel' (JLObject)
  strict protected
    constructor create(); overload;
  public
    function getCard(): JSCard; overload; virtual; abstract;
    function getChannelNumber(): jint; overload; virtual; abstract;
    function transmit(para1: JSCommandAPDU): JSResponseAPDU; overload; virtual; abstract;  // throws javax.smartcardio.CardException
    function transmit(para1: JNByteBuffer; para2: JNByteBuffer): jint; overload; virtual; abstract;  // throws javax.smartcardio.CardException
    procedure close(); overload; virtual; abstract;  // throws javax.smartcardio.CardException
  end;

  JSCardTerminal = class abstract external 'javax.smartcardio' name 'CardTerminal' (JLObject)
  strict protected
    constructor create(); overload;
  public
    function getName(): JLString; overload; virtual; abstract;
    function connect(para1: JLString): JSCard; overload; virtual; abstract;  // throws javax.smartcardio.CardException
    function isCardPresent(): jboolean; overload; virtual; abstract;  // throws javax.smartcardio.CardException
    function waitForCardPresent(para1: jlong): jboolean; overload; virtual; abstract;  // throws javax.smartcardio.CardException
    function waitForCardAbsent(para1: jlong): jboolean; overload; virtual; abstract;  // throws javax.smartcardio.CardException
  end;

  JSTerminalFactory = class sealed external 'javax.smartcardio' name 'TerminalFactory' (JLObject)
  public
    type
      InnerNoneCardTerminals = class;
      Arr1InnerNoneCardTerminals = array of InnerNoneCardTerminals;
      Arr2InnerNoneCardTerminals = array of Arr1InnerNoneCardTerminals;
      Arr3InnerNoneCardTerminals = array of Arr2InnerNoneCardTerminals;
      InnerNoneFactorySpi = class;
      Arr1InnerNoneFactorySpi = array of InnerNoneFactorySpi;
      Arr2InnerNoneFactorySpi = array of Arr1InnerNoneFactorySpi;
      Arr3InnerNoneFactorySpi = array of Arr2InnerNoneFactorySpi;
      InnerNoneProvider = class;
      Arr1InnerNoneProvider = array of InnerNoneProvider;
      Arr2InnerNoneProvider = array of Arr1InnerNoneProvider;
      Arr3InnerNoneProvider = array of Arr2InnerNoneProvider;
      InnerNoneCardTerminals = class sealed external 'javax.smartcardio' name 'NoneCardTerminals' 
      end;

      InnerNoneFactorySpi = class sealed external 'javax.smartcardio' name 'NoneFactorySpi' 
      end;

      InnerNoneProvider = class sealed external 'javax.smartcardio' name 'NoneProvider' 
      end;

  public
    class function getDefaultType(): JLString; static; overload;
    class function getDefault(): JSTerminalFactory; static; overload;
    class function getInstance(para1: JLString; para2: JLObject): JSTerminalFactory; static; overload;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLObject; para3: JLString): JSTerminalFactory; static; overload;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JLObject; para3: JSProvider): JSTerminalFactory; static; overload;  // throws java.security.NoSuchAlgorithmException
    function getProvider(): JSProvider; overload; virtual;
    function getType(): JLString; overload; virtual;
    function terminals(): JSCardTerminals; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSTerminalFactorySpi = class abstract external 'javax.smartcardio' name 'TerminalFactorySpi' (JLObject)
  strict protected
    constructor create(); overload;
    function engineTerminals(): JSCardTerminals; overload; virtual; abstract;
  end;

  JSMMidiChannel = interface external 'javax.sound.midi' name 'MidiChannel' 
    procedure noteOn(para1: jint; para2: jint); overload;
    procedure noteOff(para1: jint; para2: jint); overload;
    procedure noteOff(para1: jint); overload;
    procedure setPolyPressure(para1: jint; para2: jint); overload;
    function getPolyPressure(para1: jint): jint; overload;
    procedure setChannelPressure(para1: jint); overload;
    function getChannelPressure(): jint; overload;
    procedure controlChange(para1: jint; para2: jint); overload;
    function getController(para1: jint): jint; overload;
    procedure programChange(para1: jint); overload;
    procedure programChange(para1: jint; para2: jint); overload;
    function getProgram(): jint; overload;
    procedure setPitchBend(para1: jint); overload;
    function getPitchBend(): jint; overload;
    procedure resetAllControllers(); overload;
    procedure allNotesOff(); overload;
    procedure allSoundOff(); overload;
    function localControl(para1: jboolean): jboolean; overload;
    procedure setMono(para1: jboolean); overload;
    function getMono(): jboolean; overload;
    procedure setOmni(para1: jboolean); overload;
    function getOmni(): jboolean; overload;
    procedure setMute(para1: jboolean); overload;
    function getMute(): jboolean; overload;
    procedure setSolo(para1: jboolean); overload;
    function getSolo(): jboolean; overload;
  end;

  JSMMidiDevice = interface external 'javax.sound.midi' name 'MidiDevice' 
    type
      InnerInfo = class;
      Arr1InnerInfo = array of InnerInfo;
      Arr2InnerInfo = array of Arr1InnerInfo;
      Arr3InnerInfo = array of Arr2InnerInfo;
      InnerInfo = class external 'javax.sound.midi' name 'Info' (JLObject)
      strict protected
        constructor create(para1: JLString; para2: JLString; para3: JLString; para4: JLString); overload;
      public
        function equals(para1: JLObject): jboolean; overload; virtual; final;
        function hashCode(): jint; overload; virtual; final;
        function getName(): JLString; overload; virtual; final;
        function getVendor(): JLString; overload; virtual; final;
        function getDescription(): JLString; overload; virtual; final;
        function getVersion(): JLString; overload; virtual; final;
        function toString(): JLString; overload; virtual; final;
      end;

    function getDeviceInfo(): JSMMidiDevice.InnerInfo; overload;
    procedure open(); overload;  // throws javax.sound.midi.MidiUnavailableException
    procedure close(); overload;
    function isOpen(): jboolean; overload;
    function getMicrosecondPosition(): jlong; overload;
    function getMaxReceivers(): jint; overload;
    function getMaxTransmitters(): jint; overload;
    function getReceiver(): JSMReceiver; overload;  // throws javax.sound.midi.MidiUnavailableException
    function getReceivers(): JUList; overload;
    function getTransmitter(): JSMTransmitter; overload;  // throws javax.sound.midi.MidiUnavailableException
    function getTransmitters(): JUList; overload;
  end;

  JSMMidiEvent = class external 'javax.sound.midi' name 'MidiEvent' (JLObject)
  public
    constructor create(para1: JSMMidiMessage; para2: jlong); overload;
    function getMessage(): JSMMidiMessage; overload; virtual;
    procedure setTick(para1: jlong); overload; virtual;
    function getTick(): jlong; overload; virtual;
  end;

  JSMMidiFileFormat = class external 'javax.sound.midi' name 'MidiFileFormat' (JLObject)
  public
    const
      UNKNOWN_LENGTH = -1;
  strict protected
    var
      ftype: jint; external name 'type';
      fdivisionType: jfloat; external name 'divisionType';
      fresolution: jint; external name 'resolution';
      fbyteLength: jint; external name 'byteLength';
      fmicrosecondLength: jlong; external name 'microsecondLength';
  public
    constructor create(para1: jint; para2: jfloat; para3: jint; para4: jint; para5: jlong); overload;
    constructor create(para1: jint; para2: jfloat; para3: jint; para4: jint; para5: jlong; para6: JUMap); overload;
    function getType(): jint; overload; virtual;
    function getDivisionType(): jfloat; overload; virtual;
    function getResolution(): jint; overload; virtual;
    function getByteLength(): jint; overload; virtual;
    function getMicrosecondLength(): jlong; overload; virtual;
    function properties(): JUMap; overload; virtual;
    function getProperty(para1: JLString): JLObject; overload; virtual;
  end;

  JSMPatch = class external 'javax.sound.midi' name 'Patch' (JLObject)
  public
    constructor create(para1: jint; para2: jint); overload;
    function getBank(): jint; overload; virtual;
    function getProgram(): jint; overload; virtual;
  end;

  JSMReceiver = interface external 'javax.sound.midi' name 'Receiver' 
    procedure send(para1: JSMMidiMessage; para2: jlong); overload;
    procedure close(); overload;
  end;

  JSMSequence = class external 'javax.sound.midi' name 'Sequence' (JLObject)
  public
    const
      PPQ = jfloat(0.0);
      SMPTE_24 = jfloat(24.0);
      SMPTE_25 = jfloat(25.0);
      SMPTE_30DROP = jfloat(29.97);
      SMPTE_30 = jfloat(30.0);
  strict protected
    var
      fdivisionType: jfloat; external name 'divisionType';
      fresolution: jint; external name 'resolution';
      ftracks: JUVector; external name 'tracks';
  public
    constructor create(para1: jfloat; para2: jint); overload;  // throws javax.sound.midi.InvalidMidiDataException
    constructor create(para1: jfloat; para2: jint; para3: jint); overload;  // throws javax.sound.midi.InvalidMidiDataException
    function getDivisionType(): jfloat; overload; virtual;
    function getResolution(): jint; overload; virtual;
    function createTrack(): JSMTrack; overload; virtual;
    function deleteTrack(para1: JSMTrack): jboolean; overload; virtual;
    function getTracks(): Arr1JSMTrack; overload; virtual;
    function getMicrosecondLength(): jlong; overload; virtual;
    function getTickLength(): jlong; overload; virtual;
    function getPatchList(): Arr1JSMPatch; overload; virtual;
  end;

  JSMSoundbank = interface external 'javax.sound.midi' name 'Soundbank' 
    function getName(): JLString; overload;
    function getVersion(): JLString; overload;
    function getVendor(): JLString; overload;
    function getDescription(): JLString; overload;
    function getResources(): Arr1JSMSoundbankResource; overload;
    function getInstruments(): Arr1JSMInstrument; overload;
    function getInstrument(para1: JSMPatch): JSMInstrument; overload;
  end;

  JSMSoundbankResource = class abstract external 'javax.sound.midi' name 'SoundbankResource' (JLObject)
  strict protected
    constructor create(para1: JSMSoundbank; para2: JLString; para3: JLClass); overload;
  public
    function getSoundbank(): JSMSoundbank; overload; virtual;
    function getName(): JLString; overload; virtual;
    function getDataClass(): JLClass; overload; virtual;
    function getData(): JLObject; overload; virtual; abstract;
  end;

  JSMTrack = class external 'javax.sound.midi' name 'Track' (JLObject)
  public
    type
      InnerImmutableEndOfTrack = class;
      Arr1InnerImmutableEndOfTrack = array of InnerImmutableEndOfTrack;
      Arr2InnerImmutableEndOfTrack = array of Arr1InnerImmutableEndOfTrack;
      Arr3InnerImmutableEndOfTrack = array of Arr2InnerImmutableEndOfTrack;
      InnerImmutableEndOfTrack = class external 'javax.sound.midi' name 'ImmutableEndOfTrack' 
      end;

  public
    function add(para1: JSMMidiEvent): jboolean; overload; virtual;
    function remove(para1: JSMMidiEvent): jboolean; overload; virtual;
    function get(para1: jint): JSMMidiEvent; overload; virtual;  // throws java.lang.ArrayIndexOutOfBoundsException
    function size(): jint; overload; virtual;
    function ticks(): jlong; overload; virtual;
  end;

  JSMTransmitter = interface external 'javax.sound.midi' name 'Transmitter' 
    procedure setReceiver(para1: JSMReceiver); overload;
    function getReceiver(): JSMReceiver; overload;
    procedure close(); overload;
  end;

  JSMVoiceStatus = class external 'javax.sound.midi' name 'VoiceStatus' (JLObject)
  public
    var
      factive: jboolean; external name 'active';
      fchannel: jint; external name 'channel';
      fbank: jint; external name 'bank';
      fprogram: jint; external name 'program';
      fnote: jint; external name 'note';
      fvolume: jint; external name 'volume';
  public
    constructor create(); overload;
  end;

  JSMSMidiFileReader = class abstract external 'javax.sound.midi.spi' name 'MidiFileReader' (JLObject)
  public
    constructor create(); overload;
    function getMidiFileFormat(para1: JIInputStream): JSMMidiFileFormat; overload; virtual; abstract;  // throws javax.sound.midi.InvalidMidiDataException, java.io.IOException
    function getMidiFileFormat(para1: JNURL): JSMMidiFileFormat; overload; virtual; abstract;  // throws javax.sound.midi.InvalidMidiDataException, java.io.IOException
    function getMidiFileFormat(para1: JIFile): JSMMidiFileFormat; overload; virtual; abstract;  // throws javax.sound.midi.InvalidMidiDataException, java.io.IOException
    function getSequence(para1: JIInputStream): JSMSequence; overload; virtual; abstract;  // throws javax.sound.midi.InvalidMidiDataException, java.io.IOException
    function getSequence(para1: JNURL): JSMSequence; overload; virtual; abstract;  // throws javax.sound.midi.InvalidMidiDataException, java.io.IOException
    function getSequence(para1: JIFile): JSMSequence; overload; virtual; abstract;  // throws javax.sound.midi.InvalidMidiDataException, java.io.IOException
  end;

  JSMSMidiFileWriter = class abstract external 'javax.sound.midi.spi' name 'MidiFileWriter' (JLObject)
  public
    constructor create(); overload;
    function getMidiFileTypes(): Arr1jint; overload; virtual; abstract;
    function getMidiFileTypes(para1: JSMSequence): Arr1jint; overload; virtual; abstract;
    function isFileTypeSupported(para1: jint): jboolean; overload; virtual;
    function isFileTypeSupported(para1: jint; para2: JSMSequence): jboolean; overload; virtual;
    function write(para1: JSMSequence; para2: jint; para3: JIOutputStream): jint; overload; virtual; abstract;  // throws java.io.IOException
    function write(para1: JSMSequence; para2: jint; para3: JIFile): jint; overload; virtual; abstract;  // throws java.io.IOException
  end;

  JSMSSoundbankReader = class abstract external 'javax.sound.midi.spi' name 'SoundbankReader' (JLObject)
  public
    constructor create(); overload;
    function getSoundbank(para1: JNURL): JSMSoundbank; overload; virtual; abstract;  // throws javax.sound.midi.InvalidMidiDataException, java.io.IOException
    function getSoundbank(para1: JIInputStream): JSMSoundbank; overload; virtual; abstract;  // throws javax.sound.midi.InvalidMidiDataException, java.io.IOException
    function getSoundbank(para1: JIFile): JSMSoundbank; overload; virtual; abstract;  // throws javax.sound.midi.InvalidMidiDataException, java.io.IOException
  end;

  JSSAudioFileFormat = class external 'javax.sound.sampled' name 'AudioFileFormat' (JLObject)
  public
    type
      InnerType = class;
      Arr1InnerType = array of InnerType;
      Arr2InnerType = array of Arr1InnerType;
      Arr3InnerType = array of Arr2InnerType;
      InnerType = class external 'javax.sound.sampled' name 'Type' (JLObject)
      public
        final class var
          fWAVE: JSSAudioFileFormat.InnerType; external name 'WAVE';
          fAU: JSSAudioFileFormat.InnerType; external name 'AU';
          fAIFF: JSSAudioFileFormat.InnerType; external name 'AIFF';
          fAIFC: JSSAudioFileFormat.InnerType; external name 'AIFC';
          fSND: JSSAudioFileFormat.InnerType; external name 'SND';
      public
        constructor create(para1: JLString; para2: JLString); overload;
        function equals(para1: JLObject): jboolean; overload; virtual; final;
        function hashCode(): jint; overload; virtual; final;
        function toString(): JLString; overload; virtual; final;
        function getExtension(): JLString; overload; virtual;
      end;

  strict protected
    constructor create(para1: JSSAudioFileFormat.InnerType; para2: jint; para3: JSSAudioFormat; para4: jint); overload;
  public
    constructor create(para1: JSSAudioFileFormat.InnerType; para2: JSSAudioFormat; para3: jint); overload;
    constructor create(para1: JSSAudioFileFormat.InnerType; para2: JSSAudioFormat; para3: jint; para4: JUMap); overload;
    function getType(): JSSAudioFileFormat.InnerType; overload; virtual;
    function getByteLength(): jint; overload; virtual;
    function getFormat(): JSSAudioFormat; overload; virtual;
    function getFrameLength(): jint; overload; virtual;
    function properties(): JUMap; overload; virtual;
    function getProperty(para1: JLString): JLObject; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSSAudioFormat = class external 'javax.sound.sampled' name 'AudioFormat' (JLObject)
  public
    type
      InnerEncoding = class;
      Arr1InnerEncoding = array of InnerEncoding;
      Arr2InnerEncoding = array of Arr1InnerEncoding;
      Arr3InnerEncoding = array of Arr2InnerEncoding;
      InnerEncoding = class external 'javax.sound.sampled' name 'Encoding' (JLObject)
      public
        final class var
          fPCM_SIGNED: JSSAudioFormat.InnerEncoding; external name 'PCM_SIGNED';
          fPCM_UNSIGNED: JSSAudioFormat.InnerEncoding; external name 'PCM_UNSIGNED';
          fULAW: JSSAudioFormat.InnerEncoding; external name 'ULAW';
          fALAW: JSSAudioFormat.InnerEncoding; external name 'ALAW';
      public
        constructor create(para1: JLString); overload;
        function equals(para1: JLObject): jboolean; overload; virtual; final;
        function hashCode(): jint; overload; virtual; final;
        function toString(): JLString; overload; virtual; final;
      end;

  strict protected
    var
      fencoding: JSSAudioFormat.InnerEncoding; external name 'encoding';
      fsampleRate: jfloat; external name 'sampleRate';
      fsampleSizeInBits: jint; external name 'sampleSizeInBits';
      fchannels: jint; external name 'channels';
      fframeSize: jint; external name 'frameSize';
      fframeRate: jfloat; external name 'frameRate';
      fbigEndian: jboolean; external name 'bigEndian';
  public
    constructor create(para1: JSSAudioFormat.InnerEncoding; para2: jfloat; para3: jint; para4: jint; para5: jint; para6: jfloat; para7: jboolean); overload;
    constructor create(para1: JSSAudioFormat.InnerEncoding; para2: jfloat; para3: jint; para4: jint; para5: jint; para6: jfloat; para7: jboolean; para8: JUMap); overload;
    constructor create(para1: jfloat; para2: jint; para3: jint; para4: jboolean; para5: jboolean); overload;
    function getEncoding(): JSSAudioFormat.InnerEncoding; overload; virtual;
    function getSampleRate(): jfloat; overload; virtual;
    function getSampleSizeInBits(): jint; overload; virtual;
    function getChannels(): jint; overload; virtual;
    function getFrameSize(): jint; overload; virtual;
    function getFrameRate(): jfloat; overload; virtual;
    function isBigEndian(): jboolean; overload; virtual;
    function properties(): JUMap; overload; virtual;
    function getProperty(para1: JLString): JLObject; overload; virtual;
    function matches(para1: JSSAudioFormat): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSSControl = class abstract external 'javax.sound.sampled' name 'Control' (JLObject)
  public
    type
      InnerType = class;
      Arr1InnerType = array of InnerType;
      Arr2InnerType = array of Arr1InnerType;
      Arr3InnerType = array of Arr2InnerType;
      InnerType = class external 'javax.sound.sampled' name 'Type' (JLObject)
      strict protected
        constructor create(para1: JLString); overload;
      public
        function equals(para1: JLObject): jboolean; overload; virtual; final;
        function hashCode(): jint; overload; virtual; final;
        function toString(): JLString; overload; virtual; final;
      end;

  strict protected
    constructor create(para1: JSSControl.InnerType); overload;
  public
    function getType(): JSSControl.InnerType; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSSReverbType = class external 'javax.sound.sampled' name 'ReverbType' (JLObject)
  strict protected
    constructor create(para1: JLString; para2: jint; para3: jfloat; para4: jint; para5: jfloat; para6: jint); overload;
  public
    function getName(): JLString; overload; virtual;
    function getEarlyReflectionDelay(): jint; overload; virtual; final;
    function getEarlyReflectionIntensity(): jfloat; overload; virtual; final;
    function getLateReflectionDelay(): jint; overload; virtual; final;
    function getLateReflectionIntensity(): jfloat; overload; virtual; final;
    function getDecayTime(): jint; overload; virtual; final;
    function equals(para1: JLObject): jboolean; overload; virtual; final;
    function hashCode(): jint; overload; virtual; final;
    function toString(): JLString; overload; virtual; final;
  end;

  JSSSAudioFileReader = class abstract external 'javax.sound.sampled.spi' name 'AudioFileReader' (JLObject)
  public
    constructor create(); overload;
    function getAudioFileFormat(para1: JIInputStream): JSSAudioFileFormat; overload; virtual; abstract;  // throws javax.sound.sampled.UnsupportedAudioFileException, java.io.IOException
    function getAudioFileFormat(para1: JNURL): JSSAudioFileFormat; overload; virtual; abstract;  // throws javax.sound.sampled.UnsupportedAudioFileException, java.io.IOException
    function getAudioFileFormat(para1: JIFile): JSSAudioFileFormat; overload; virtual; abstract;  // throws javax.sound.sampled.UnsupportedAudioFileException, java.io.IOException
    function getAudioInputStream(para1: JIInputStream): JSSAudioInputStream; overload; virtual; abstract;  // throws javax.sound.sampled.UnsupportedAudioFileException, java.io.IOException
    function getAudioInputStream(para1: JNURL): JSSAudioInputStream; overload; virtual; abstract;  // throws javax.sound.sampled.UnsupportedAudioFileException, java.io.IOException
    function getAudioInputStream(para1: JIFile): JSSAudioInputStream; overload; virtual; abstract;  // throws javax.sound.sampled.UnsupportedAudioFileException, java.io.IOException
  end;

  JSCommonDataSource = interface external 'javax.sql' name 'CommonDataSource' 
    function getLogWriter(): JIPrintWriter; overload;  // throws java.sql.SQLException
    procedure setLogWriter(para1: JIPrintWriter); overload;  // throws java.sql.SQLException
    procedure setLoginTimeout(para1: jint); overload;  // throws java.sql.SQLException
    function getLoginTimeout(): jint; overload;  // throws java.sql.SQLException
  end;

  JSPooledConnection = interface external 'javax.sql' name 'PooledConnection' 
    function getConnection(): JSConnection; overload;  // throws java.sql.SQLException
    procedure close(); overload;  // throws java.sql.SQLException
    procedure addConnectionEventListener(para1: JSConnectionEventListener); overload;
    procedure removeConnectionEventListener(para1: JSConnectionEventListener); overload;
    procedure addStatementEventListener(para1: JSStatementEventListener); overload;
    procedure removeStatementEventListener(para1: JSStatementEventListener); overload;
  end;

  JSRowSetInternal = interface external 'javax.sql' name 'RowSetInternal' 
    function getParams(): Arr1JLObject; overload;  // throws java.sql.SQLException
    function getConnection(): JSConnection; overload;  // throws java.sql.SQLException
    procedure setMetaData(para1: JSRowSetMetaData); overload;  // throws java.sql.SQLException
    function getOriginal(): JSResultSet; overload;  // throws java.sql.SQLException
    function getOriginalRow(): JSResultSet; overload;  // throws java.sql.SQLException
  end;

  JSRowSetReader = interface external 'javax.sql' name 'RowSetReader' 
    procedure readData(para1: JSRowSetInternal); overload;  // throws java.sql.SQLException
  end;

  JSRowSetWriter = interface external 'javax.sql' name 'RowSetWriter' 
    function writeData(para1: JSRowSetInternal): jboolean; overload;  // throws java.sql.SQLException
  end;

  JSRJoinable = interface external 'javax.sql.rowset' name 'Joinable' 
    procedure setMatchColumn(para1: jint); overload;  // throws java.sql.SQLException
    procedure setMatchColumn(para1: Arr1jint); overload;  // throws java.sql.SQLException
    procedure setMatchColumn(var para1: array of jint); overload;  // throws java.sql.SQLException
    procedure setMatchColumn(para1: JLString); overload;  // throws java.sql.SQLException
    procedure setMatchColumn(para1: Arr1JLString); overload;  // throws java.sql.SQLException
    procedure setMatchColumn(var para1: array of JLString); overload;  // throws java.sql.SQLException
    function getMatchColumnIndexes(): Arr1jint; overload;  // throws java.sql.SQLException
    function getMatchColumnNames(): Arr1JLString; overload;  // throws java.sql.SQLException
    procedure unsetMatchColumn(para1: jint); overload;  // throws java.sql.SQLException
    procedure unsetMatchColumn(para1: Arr1jint); overload;  // throws java.sql.SQLException
    procedure unsetMatchColumn(var para1: array of jint); overload;  // throws java.sql.SQLException
    procedure unsetMatchColumn(para1: JLString); overload;  // throws java.sql.SQLException
    procedure unsetMatchColumn(para1: Arr1JLString); overload;  // throws java.sql.SQLException
    procedure unsetMatchColumn(var para1: array of JLString); overload;  // throws java.sql.SQLException
  end;

  JSRPredicate = interface external 'javax.sql.rowset' name 'Predicate' 
    function evaluate(para1: JSRowSet): jboolean; overload;
    function evaluate(para1: JLObject; para2: jint): jboolean; overload;  // throws java.sql.SQLException
    function evaluate(para1: JLObject; para2: JLString): jboolean; overload;  // throws java.sql.SQLException
  end;

  JSRSSyncFactory = class external 'javax.sql.rowset.spi' name 'SyncFactory' (JLObject)
  public
    class var
      fROWSET_SYNC_PROVIDER: JLString; external name 'ROWSET_SYNC_PROVIDER';
      fROWSET_SYNC_VENDOR: JLString; external name 'ROWSET_SYNC_VENDOR';
      fROWSET_SYNC_PROVIDER_VERSION: JLString; external name 'ROWSET_SYNC_PROVIDER_VERSION';
  public
    class procedure registerProvider(para1: JLString); static; overload;  // throws javax.sql.rowset.spi.SyncFactoryException
    class function getSyncFactory(): JSRSSyncFactory; static; overload;
    class procedure unregisterProvider(para1: JLString); static; overload;  // throws javax.sql.rowset.spi.SyncFactoryException
    class function getInstance(para1: JLString): JSRSSyncProvider; static; overload;  // throws javax.sql.rowset.spi.SyncFactoryException
    class function getRegisteredProviders(): JUEnumeration; static; overload;  // throws javax.sql.rowset.spi.SyncFactoryException
    class procedure setLogger(para1: JULLogger); static; overload;
    class procedure setLogger(para1: JULLogger; para2: JULLevel); static; overload;
    class function getLogger(): JULLogger; static; overload;  // throws javax.sql.rowset.spi.SyncFactoryException
    class procedure setJNDIContext(para1: JNContext); static; overload;  // throws javax.sql.rowset.spi.SyncFactoryException
  end;

  JSRSSyncProvider = class abstract external 'javax.sql.rowset.spi' name 'SyncProvider' (JLObject)
  public
    class var
      fGRADE_NONE: jint; external name 'GRADE_NONE';
      fGRADE_CHECK_MODIFIED_AT_COMMIT: jint; external name 'GRADE_CHECK_MODIFIED_AT_COMMIT';
      fGRADE_CHECK_ALL_AT_COMMIT: jint; external name 'GRADE_CHECK_ALL_AT_COMMIT';
      fGRADE_LOCK_WHEN_MODIFIED: jint; external name 'GRADE_LOCK_WHEN_MODIFIED';
      fGRADE_LOCK_WHEN_LOADED: jint; external name 'GRADE_LOCK_WHEN_LOADED';
      fDATASOURCE_NO_LOCK: jint; external name 'DATASOURCE_NO_LOCK';
      fDATASOURCE_ROW_LOCK: jint; external name 'DATASOURCE_ROW_LOCK';
      fDATASOURCE_TABLE_LOCK: jint; external name 'DATASOURCE_TABLE_LOCK';
      fDATASOURCE_DB_LOCK: jint; external name 'DATASOURCE_DB_LOCK';
      fUPDATABLE_VIEW_SYNC: jint; external name 'UPDATABLE_VIEW_SYNC';
      fNONUPDATABLE_VIEW_SYNC: jint; external name 'NONUPDATABLE_VIEW_SYNC';
  public
    constructor create(); overload;
    function getProviderID(): JLString; overload; virtual; abstract;
    function getRowSetReader(): JSRowSetReader; overload; virtual; abstract;
    function getRowSetWriter(): JSRowSetWriter; overload; virtual; abstract;
    function getProviderGrade(): jint; overload; virtual; abstract;
    procedure setDataSourceLock(para1: jint); overload; virtual; abstract;  // throws javax.sql.rowset.spi.SyncProviderException
    function getDataSourceLock(): jint; overload; virtual; abstract;  // throws javax.sql.rowset.spi.SyncProviderException
    function supportsUpdatableView(): jint; overload; virtual; abstract;
    function getVersion(): JLString; overload; virtual; abstract;
    function getVendor(): JLString; overload; virtual; abstract;
  end;

  JSBorderFactory = class external 'javax.swing' name 'BorderFactory' (JLObject)
  public
    class function createLineBorder(para1: JAColor): JSBBorder; static; overload;
    class function createLineBorder(para1: JAColor; para2: jint): JSBBorder; static; overload;
    class function createRaisedBevelBorder(): JSBBorder; static; overload;
    class function createLoweredBevelBorder(): JSBBorder; static; overload;
    class function createBevelBorder(para1: jint): JSBBorder; static; overload;
    class function createBevelBorder(para1: jint; para2: JAColor; para3: JAColor): JSBBorder; static; overload;
    class function createBevelBorder(para1: jint; para2: JAColor; para3: JAColor; para4: JAColor; para5: JAColor): JSBBorder; static; overload;
    class function createEtchedBorder(): JSBBorder; static; overload;
    class function createEtchedBorder(para1: JAColor; para2: JAColor): JSBBorder; static; overload;
    class function createEtchedBorder(para1: jint): JSBBorder; static; overload;
    class function createEtchedBorder(para1: jint; para2: JAColor; para3: JAColor): JSBBorder; static; overload;
    class function createTitledBorder(para1: JLString): JSBTitledBorder; static; overload;
    class function createTitledBorder(para1: JSBBorder): JSBTitledBorder; static; overload;
    class function createTitledBorder(para1: JSBBorder; para2: JLString): JSBTitledBorder; static; overload;
    class function createTitledBorder(para1: JSBBorder; para2: JLString; para3: jint; para4: jint): JSBTitledBorder; static; overload;
    class function createTitledBorder(para1: JSBBorder; para2: JLString; para3: jint; para4: jint; para5: JAFont): JSBTitledBorder; static; overload;
    class function createTitledBorder(para1: JSBBorder; para2: JLString; para3: jint; para4: jint; para5: JAFont; para6: JAColor): JSBTitledBorder; static; overload;
    class function createEmptyBorder(): JSBBorder; static; overload;
    class function createEmptyBorder(para1: jint; para2: jint; para3: jint; para4: jint): JSBBorder; static; overload;
    class function createCompoundBorder(): JSBCompoundBorder; static; overload;
    class function createCompoundBorder(para1: JSBBorder; para2: JSBBorder): JSBCompoundBorder; static; overload;
    class function createMatteBorder(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAColor): JSBMatteBorder; static; overload;
    class function createMatteBorder(para1: jint; para2: jint; para3: jint; para4: jint; para5: JSIcon): JSBMatteBorder; static; overload;
  end;

  JSBoundedRangeModel = interface external 'javax.swing' name 'BoundedRangeModel' 
    function getMinimum(): jint; overload;
    procedure setMinimum(para1: jint); overload;
    function getMaximum(): jint; overload;
    procedure setMaximum(para1: jint); overload;
    function getValue(): jint; overload;
    procedure setValue(para1: jint); overload;
    procedure setValueIsAdjusting(para1: jboolean); overload;
    function getValueIsAdjusting(): jboolean; overload;
    function getExtent(): jint; overload;
    procedure setExtent(para1: jint); overload;
    procedure setRangeProperties(para1: jint; para2: jint; para3: jint; para4: jint; para5: jboolean); overload;
    procedure addChangeListener(para1: JSEChangeListener); overload;
    procedure removeChangeListener(para1: JSEChangeListener); overload;
  end;

  JSCellEditor = interface external 'javax.swing' name 'CellEditor' 
    function getCellEditorValue(): JLObject; overload;
    function isCellEditable(para1: JUEventObject): jboolean; overload;
    function shouldSelectCell(para1: JUEventObject): jboolean; overload;
    function stopCellEditing(): jboolean; overload;
    procedure cancelCellEditing(); overload;
    procedure addCellEditorListener(para1: JSECellEditorListener); overload;
    procedure removeCellEditorListener(para1: JSECellEditorListener); overload;
  end;

  JSComboBoxEditor = interface external 'javax.swing' name 'ComboBoxEditor' 
    function getEditorComponent(): JAComponent; overload;
    procedure setItem(para1: JLObject); overload;
    function getItem(): JLObject; overload;
    procedure selectAll(); overload;
    procedure addActionListener(para1: JAEActionListener); overload;
    procedure removeActionListener(para1: JAEActionListener); overload;
  end;

  JSDebugGraphicsInfo = class external 'javax.swing' name 'DebugGraphicsInfo' (JLObject)
  end;

  JSDesktopManager = interface external 'javax.swing' name 'DesktopManager' 
    procedure openFrame(para1: JSJInternalFrame); overload;
    procedure closeFrame(para1: JSJInternalFrame); overload;
    procedure maximizeFrame(para1: JSJInternalFrame); overload;
    procedure minimizeFrame(para1: JSJInternalFrame); overload;
    procedure iconifyFrame(para1: JSJInternalFrame); overload;
    procedure deiconifyFrame(para1: JSJInternalFrame); overload;
    procedure activateFrame(para1: JSJInternalFrame); overload;
    procedure deactivateFrame(para1: JSJInternalFrame); overload;
    procedure beginDraggingFrame(para1: JSJComponent); overload;
    procedure dragFrame(para1: JSJComponent; para2: jint; para3: jint); overload;
    procedure endDraggingFrame(para1: JSJComponent); overload;
    procedure beginResizingFrame(para1: JSJComponent; para2: jint); overload;
    procedure resizeFrame(para1: JSJComponent; para2: jint; para3: jint; para4: jint; para5: jint); overload;
    procedure endResizingFrame(para1: JSJComponent); overload;
    procedure setBoundsForFrame(para1: JSJComponent; para2: jint; para3: jint; para4: jint; para5: jint); overload;
  end;

  JSGraphicsWrapper = interface external 'javax.swing' name 'GraphicsWrapper' 
    function subGraphics(): JAGraphics; overload;
    function isClipIntersecting(para1: JARectangle): jboolean; overload;
    function getClipX(): jint; overload;
    function getClipY(): jint; overload;
    function getClipWidth(): jint; overload;
    function getClipHeight(): jint; overload;
  end;

  JSIcon = interface external 'javax.swing' name 'Icon' 
    procedure paintIcon(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint); overload;
    function getIconWidth(): jint; overload;
    function getIconHeight(): jint; overload;
  end;

  JSInputVerifier = class abstract external 'javax.swing' name 'InputVerifier' (JLObject)
  public
    constructor create(); overload;
    function verify(para1: JSJComponent): jboolean; overload; virtual; abstract;
    function shouldYieldFocus(para1: JSJComponent): jboolean; overload; virtual;
  end;

  JSKeyboardManager = class external 'javax.swing' name 'KeyboardManager' (JLObject)
  public
    type
      InnerComponentKeyStrokePair = class;
      Arr1InnerComponentKeyStrokePair = array of InnerComponentKeyStrokePair;
      Arr2InnerComponentKeyStrokePair = array of Arr1InnerComponentKeyStrokePair;
      Arr3InnerComponentKeyStrokePair = array of Arr2InnerComponentKeyStrokePair;
      InnerComponentKeyStrokePair = class external 'javax.swing' name 'ComponentKeyStrokePair' 
      end;

  public
    class function getCurrentManager(): JSKeyboardManager; static; overload;
    class procedure setCurrentManager(para1: JSKeyboardManager); static; overload;
    procedure registerKeyStroke(para1: JSKeyStroke; para2: JSJComponent); overload; virtual;
    procedure unregisterKeyStroke(para1: JSKeyStroke; para2: JSJComponent); overload; virtual;
    function fireKeyboardAction(para1: JAEKeyEvent; para2: jboolean; para3: JAContainer): jboolean; overload; virtual;
    procedure registerMenuBar(para1: JSJMenuBar); overload; virtual;
    procedure unregisterMenuBar(para1: JSJMenuBar); overload; virtual;
  strict protected
    function registerNewTopContainer(para1: JAContainer): JUHashtable; overload; virtual;
  end;

  JSListCellRenderer = interface external 'javax.swing' name 'ListCellRenderer' 
    function getListCellRendererComponent(para1: JSJList; para2: JLObject; para3: jint; para4: jboolean; para5: jboolean): JAComponent; overload;
  end;

  JSListModel = interface external 'javax.swing' name 'ListModel' 
    function getSize(): jint; overload;
    function getElementAt(para1: jint): JLObject; overload;
    procedure addListDataListener(para1: JSEListDataListener); overload;
    procedure removeListDataListener(para1: JSEListDataListener); overload;
  end;

  JSListSelectionModel = interface external 'javax.swing' name 'ListSelectionModel' 
    const
      SINGLE_SELECTION = 0;
      SINGLE_INTERVAL_SELECTION = 1;
      MULTIPLE_INTERVAL_SELECTION = 2;
    procedure setSelectionInterval(para1: jint; para2: jint); overload;
    procedure addSelectionInterval(para1: jint; para2: jint); overload;
    procedure removeSelectionInterval(para1: jint; para2: jint); overload;
    function getMinSelectionIndex(): jint; overload;
    function getMaxSelectionIndex(): jint; overload;
    function isSelectedIndex(para1: jint): jboolean; overload;
    function getAnchorSelectionIndex(): jint; overload;
    procedure setAnchorSelectionIndex(para1: jint); overload;
    function getLeadSelectionIndex(): jint; overload;
    procedure setLeadSelectionIndex(para1: jint); overload;
    procedure clearSelection(); overload;
    function isSelectionEmpty(): jboolean; overload;
    procedure insertIndexInterval(para1: jint; para2: jint; para3: jboolean); overload;
    procedure removeIndexInterval(para1: jint; para2: jint); overload;
    procedure setValueIsAdjusting(para1: jboolean); overload;
    function getValueIsAdjusting(): jboolean; overload;
    procedure setSelectionMode(para1: jint); overload;
    function getSelectionMode(): jint; overload;
    procedure addListSelectionListener(para1: JSEListSelectionListener); overload;
    procedure removeListSelectionListener(para1: JSEListSelectionListener); overload;
  end;

  JSMenuElement = interface external 'javax.swing' name 'MenuElement' 
    procedure processMouseEvent(para1: JAEMouseEvent; para2: Arr1JSMenuElement; para3: JSMenuSelectionManager); overload;
    procedure processMouseEvent(para1: JAEMouseEvent; var para2: array of JSMenuElement; para3: JSMenuSelectionManager); overload;
    procedure processKeyEvent(para1: JAEKeyEvent; para2: Arr1JSMenuElement; para3: JSMenuSelectionManager); overload;
    procedure processKeyEvent(para1: JAEKeyEvent; var para2: array of JSMenuElement; para3: JSMenuSelectionManager); overload;
    procedure menuSelectionChanged(para1: jboolean); overload;
    function getSubElements(): Arr1JSMenuElement; overload;
    function getComponent(): JAComponent; overload;
  end;

  JSMenuSelectionManager = class external 'javax.swing' name 'MenuSelectionManager' (JLObject)
  strict protected
    var
      fchangeEvent: JSEChangeEvent; external name 'changeEvent';
      flistenerList: JSEEventListenerList; external name 'listenerList';
  public
    constructor create(); overload;
    class function defaultManager(): JSMenuSelectionManager; static; overload;
    procedure setSelectedPath(para1: Arr1JSMenuElement); overload; virtual;
    procedure setSelectedPath(var para1: array of JSMenuElement); overload; virtual;
    function getSelectedPath(): Arr1JSMenuElement; overload; virtual;
    procedure clearSelectedPath(); overload; virtual;
    procedure addChangeListener(para1: JSEChangeListener); overload; virtual;
    procedure removeChangeListener(para1: JSEChangeListener); overload; virtual;
    function getChangeListeners(): Arr1JSEChangeListener; overload; virtual;
  strict protected
    procedure fireStateChanged(); overload; virtual;
  public
    procedure processMouseEvent(para1: JAEMouseEvent); overload; virtual;
    function componentForPoint(para1: JAComponent; para2: JAPoint): JAComponent; overload; virtual;
    procedure processKeyEvent(para1: JAEKeyEvent); overload; virtual;
    function isComponentPartOfCurrentMenu(para1: JAComponent): jboolean; overload; virtual;
  end;

  JSPopup = class external 'javax.swing' name 'Popup' (JLObject)
  public
    type
      InnerDefaultFrame = class;
      Arr1InnerDefaultFrame = array of InnerDefaultFrame;
      Arr2InnerDefaultFrame = array of Arr1InnerDefaultFrame;
      Arr3InnerDefaultFrame = array of Arr2InnerDefaultFrame;
      InnerHeavyWeightWindow = class;
      Arr1InnerHeavyWeightWindow = array of InnerHeavyWeightWindow;
      Arr2InnerHeavyWeightWindow = array of Arr1InnerHeavyWeightWindow;
      Arr3InnerHeavyWeightWindow = array of Arr2InnerHeavyWeightWindow;
      InnerDefaultFrame = class external 'javax.swing' name 'DefaultFrame' 
      end;

      InnerHeavyWeightWindow = class external 'javax.swing' name 'HeavyWeightWindow' 
      end;

  strict protected
    constructor create(para1: JAComponent; para2: JAComponent; para3: jint; para4: jint); overload;
    constructor create(); overload;
  public
    procedure show(); overload; virtual;
    procedure hide(); overload; virtual;
  end;

  JSPopupFactory = class external 'javax.swing' name 'PopupFactory' (JLObject)
  public
    type
      InnerContainerPopup = class;
      Arr1InnerContainerPopup = array of InnerContainerPopup;
      Arr2InnerContainerPopup = array of Arr1InnerContainerPopup;
      Arr3InnerContainerPopup = array of Arr2InnerContainerPopup;
      InnerHeavyWeightPopup = class;
      Arr1InnerHeavyWeightPopup = array of InnerHeavyWeightPopup;
      Arr2InnerHeavyWeightPopup = array of Arr1InnerHeavyWeightPopup;
      Arr3InnerHeavyWeightPopup = array of Arr2InnerHeavyWeightPopup;
      InnerHeadlessPopup = class;
      Arr1InnerHeadlessPopup = array of InnerHeadlessPopup;
      Arr2InnerHeadlessPopup = array of Arr1InnerHeadlessPopup;
      Arr3InnerHeadlessPopup = array of Arr2InnerHeadlessPopup;
      InnerLightWeightPopup = class;
      Arr1InnerLightWeightPopup = array of InnerLightWeightPopup;
      Arr2InnerLightWeightPopup = array of Arr1InnerLightWeightPopup;
      Arr3InnerLightWeightPopup = array of Arr2InnerLightWeightPopup;
      InnerMediumWeightPopup = class;
      Arr1InnerMediumWeightPopup = array of InnerMediumWeightPopup;
      Arr2InnerMediumWeightPopup = array of Arr1InnerMediumWeightPopup;
      Arr3InnerMediumWeightPopup = array of Arr2InnerMediumWeightPopup;
      InnerContainerPopup = class external 'javax.swing' name 'ContainerPopup' 
      end;

      InnerHeavyWeightPopup = class external 'javax.swing' name 'HeavyWeightPopup' 
      end;

      InnerHeadlessPopup = class external 'javax.swing' name 'HeadlessPopup' 
      end;

      InnerLightWeightPopup = class external 'javax.swing' name 'LightWeightPopup' 
      end;

      InnerMediumWeightPopup = class external 'javax.swing' name 'MediumWeightPopup' 
      public
        type
          InnerMediumWeightComponent = class;
          Arr1InnerMediumWeightComponent = array of InnerMediumWeightComponent;
          Arr2InnerMediumWeightComponent = array of Arr1InnerMediumWeightComponent;
          Arr3InnerMediumWeightComponent = array of Arr2InnerMediumWeightComponent;
          InnerMediumWeightComponent = class external 'javax.swing' name 'MediumWeightComponent' 
          end;

      end;

  public
    constructor create(); overload;
    class procedure setSharedInstance(para1: JSPopupFactory); static; overload;
    class function getSharedInstance(): JSPopupFactory; static; overload;
    function getPopup(para1: JAComponent; para2: JAComponent; para3: jint; para4: jint): JSPopup; overload; virtual;  // throws java.lang.IllegalArgumentException
  end;

  JSRenderer = interface external 'javax.swing' name 'Renderer' 
    procedure setValue(para1: JLObject; para2: jboolean); overload;
    function getComponent(): JAComponent; overload;
  end;

  JSRepaintManager = class external 'javax.swing' name 'RepaintManager' (JLObject)
  public
    type
      InnerDoubleBufferInfo = class;
      Arr1InnerDoubleBufferInfo = array of InnerDoubleBufferInfo;
      Arr2InnerDoubleBufferInfo = array of Arr1InnerDoubleBufferInfo;
      Arr3InnerDoubleBufferInfo = array of Arr2InnerDoubleBufferInfo;
      InnerPaintManager = class;
      Arr1InnerPaintManager = array of InnerPaintManager;
      Arr2InnerPaintManager = array of Arr1InnerPaintManager;
      Arr3InnerPaintManager = array of Arr2InnerPaintManager;
      InnerDisplayChangedHandler = class;
      Arr1InnerDisplayChangedHandler = array of InnerDisplayChangedHandler;
      Arr2InnerDisplayChangedHandler = array of Arr1InnerDisplayChangedHandler;
      Arr3InnerDisplayChangedHandler = array of Arr2InnerDisplayChangedHandler;
      InnerDisplayChangedRunnable = class;
      Arr1InnerDisplayChangedRunnable = array of InnerDisplayChangedRunnable;
      Arr2InnerDisplayChangedRunnable = array of Arr1InnerDisplayChangedRunnable;
      Arr3InnerDisplayChangedRunnable = array of Arr2InnerDisplayChangedRunnable;
      InnerProcessingRunnable = class;
      Arr1InnerProcessingRunnable = array of InnerProcessingRunnable;
      Arr2InnerProcessingRunnable = array of Arr1InnerProcessingRunnable;
      Arr3InnerProcessingRunnable = array of Arr2InnerProcessingRunnable;
      InnerDoubleBufferInfo = class external 'javax.swing' name 'DoubleBufferInfo' 
      end;

      InnerPaintManager = class external 'javax.swing' name 'PaintManager' 
      end;

      InnerDisplayChangedHandler = class sealed external 'javax.swing' name 'DisplayChangedHandler' 
      end;

      InnerDisplayChangedRunnable = class sealed external 'javax.swing' name 'DisplayChangedRunnable' 
      end;

      InnerProcessingRunnable = class sealed external 'javax.swing' name 'ProcessingRunnable' 
      end;

  public
    class function currentManager(para1: JAComponent): JSRepaintManager; static; overload;
    class function currentManager(para1: JSJComponent): JSRepaintManager; static; overload;
    class procedure setCurrentManager(para1: JSRepaintManager); static; overload;
    constructor create(); overload;
    procedure addInvalidComponent(para1: JSJComponent); overload; virtual;
    procedure removeInvalidComponent(para1: JSJComponent); overload; virtual;
    procedure addDirtyRegion(para1: JSJComponent; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    procedure addDirtyRegion(para1: JAWindow; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    procedure addDirtyRegion(para1: JAApplet; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    function getDirtyRegion(para1: JSJComponent): JARectangle; overload; virtual;
    procedure markCompletelyDirty(para1: JSJComponent); overload; virtual;
    procedure markCompletelyClean(para1: JSJComponent); overload; virtual;
    function isCompletelyDirty(para1: JSJComponent): jboolean; overload; virtual;
    procedure validateInvalidComponents(); overload; virtual;
    procedure paintDirtyRegions(); overload; virtual;
    function toString(): JLString; overload; virtual;
    function getOffscreenBuffer(para1: JAComponent; para2: jint; para3: jint): JAImage; overload; virtual;
    function getVolatileOffscreenBuffer(para1: JAComponent; para2: jint; para3: jint): JAImage; overload; virtual;
    procedure setDoubleBufferMaximumSize(para1: JADimension); overload; virtual;
    function getDoubleBufferMaximumSize(): JADimension; overload; virtual;
    procedure setDoubleBufferingEnabled(para1: jboolean); overload; virtual;
    function isDoubleBufferingEnabled(): jboolean; overload; virtual;
  end;

  JSRootPaneContainer = interface external 'javax.swing' name 'RootPaneContainer' 
    function getRootPane(): JSJRootPane; overload;
    procedure setContentPane(para1: JAContainer); overload;
    function getContentPane(): JAContainer; overload;
    procedure setLayeredPane(para1: JSJLayeredPane); overload;
    function getLayeredPane(): JSJLayeredPane; overload;
    procedure setGlassPane(para1: JAComponent); overload;
    function getGlassPane(): JAComponent; overload;
  end;

  JSRowSorter = class abstract external 'javax.swing' name 'RowSorter' (JLObject)
  public
    type
      InnerSortKey = class;
      Arr1InnerSortKey = array of InnerSortKey;
      Arr2InnerSortKey = array of Arr1InnerSortKey;
      Arr3InnerSortKey = array of Arr2InnerSortKey;
      InnerSortKey = class external 'javax.swing' name 'SortKey' (JLObject)
      public
        constructor create(para1: jint; para2: JSSortOrder); overload;
        function getColumn(): jint; overload; virtual; final;
        function getSortOrder(): JSSortOrder; overload; virtual; final;
        function hashCode(): jint; overload; virtual;
        function equals(para1: JLObject): jboolean; overload; virtual;
      end;

  public
    constructor create(); overload;
    function getModel(): JLObject; overload; virtual; abstract;
    procedure toggleSortOrder(para1: jint); overload; virtual; abstract;
    function convertRowIndexToModel(para1: jint): jint; overload; virtual; abstract;
    function convertRowIndexToView(para1: jint): jint; overload; virtual; abstract;
    procedure setSortKeys(para1: JUList); overload; virtual; abstract;
    function getSortKeys(): JUList; overload; virtual; abstract;
    function getViewRowCount(): jint; overload; virtual; abstract;
    function getModelRowCount(): jint; overload; virtual; abstract;
    procedure modelStructureChanged(); overload; virtual; abstract;
    procedure allRowsChanged(); overload; virtual; abstract;
    procedure rowsInserted(para1: jint; para2: jint); overload; virtual; abstract;
    procedure rowsDeleted(para1: jint; para2: jint); overload; virtual; abstract;
    procedure rowsUpdated(para1: jint; para2: jint); overload; virtual; abstract;
    procedure rowsUpdated(para1: jint; para2: jint; para3: jint); overload; virtual; abstract;
    procedure addRowSorterListener(para1: JSERowSorterListener); overload; virtual;
    procedure removeRowSorterListener(para1: JSERowSorterListener); overload; virtual;
  strict protected
    procedure fireSortOrderChanged(); overload; virtual;
    procedure fireRowSorterChanged(para1: Arr1jint); overload; virtual;
    procedure fireRowSorterChanged(var para1: array of jint); overload; virtual;
  end;

  JSScrollPaneConstants = interface external 'javax.swing' name 'ScrollPaneConstants' 
    const
      VIEWPORT = 'VIEWPORT';
      VERTICAL_SCROLLBAR = 'VERTICAL_SCROLLBAR';
      HORIZONTAL_SCROLLBAR = 'HORIZONTAL_SCROLLBAR';
      ROW_HEADER = 'ROW_HEADER';
      COLUMN_HEADER = 'COLUMN_HEADER';
      LOWER_LEFT_CORNER = 'LOWER_LEFT_CORNER';
      LOWER_RIGHT_CORNER = 'LOWER_RIGHT_CORNER';
      UPPER_LEFT_CORNER = 'UPPER_LEFT_CORNER';
      UPPER_RIGHT_CORNER = 'UPPER_RIGHT_CORNER';
      LOWER_LEADING_CORNER = 'LOWER_LEADING_CORNER';
      LOWER_TRAILING_CORNER = 'LOWER_TRAILING_CORNER';
      UPPER_LEADING_CORNER = 'UPPER_LEADING_CORNER';
      UPPER_TRAILING_CORNER = 'UPPER_TRAILING_CORNER';
      VERTICAL_SCROLLBAR_POLICY = 'VERTICAL_SCROLLBAR_POLICY';
      HORIZONTAL_SCROLLBAR_POLICY = 'HORIZONTAL_SCROLLBAR_POLICY';
      VERTICAL_SCROLLBAR_AS_NEEDED = 20;
      VERTICAL_SCROLLBAR_NEVER = 21;
      VERTICAL_SCROLLBAR_ALWAYS = 22;
      HORIZONTAL_SCROLLBAR_AS_NEEDED = 30;
      HORIZONTAL_SCROLLBAR_NEVER = 31;
      HORIZONTAL_SCROLLBAR_ALWAYS = 32;
  end;

  JSScrollable = interface external 'javax.swing' name 'Scrollable' 
    function getPreferredScrollableViewportSize(): JADimension; overload;
    function getScrollableUnitIncrement(para1: JARectangle; para2: jint; para3: jint): jint; overload;
    function getScrollableBlockIncrement(para1: JARectangle; para2: jint; para3: jint): jint; overload;
    function getScrollableTracksViewportWidth(): jboolean; overload;
    function getScrollableTracksViewportHeight(): jboolean; overload;
  end;

  JSSingleSelectionModel = interface external 'javax.swing' name 'SingleSelectionModel' 
    function getSelectedIndex(): jint; overload;
    procedure setSelectedIndex(para1: jint); overload;
    procedure clearSelection(); overload;
    function isSelected(): jboolean; overload;
    procedure addChangeListener(para1: JSEChangeListener); overload;
    procedure removeChangeListener(para1: JSEChangeListener); overload;
  end;

  JSSizeSequence = class external 'javax.swing' name 'SizeSequence' (JLObject)
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jint); overload;
    constructor create(para1: Arr1jint); overload;
    constructor create(const para1: array of jint); overload;
    procedure setSizes(para1: Arr1jint); overload; virtual;
    procedure setSizes(var para1: array of jint); overload; virtual;
    function getSizes(): Arr1jint; overload; virtual;
    function getPosition(para1: jint): jint; overload; virtual;
    function getIndex(para1: jint): jint; overload; virtual;
    function getSize(para1: jint): jint; overload; virtual;
    procedure setSize(para1: jint; para2: jint); overload; virtual;
    procedure insertEntries(para1: jint; para2: jint; para3: jint); overload; virtual;
    procedure removeEntries(para1: jint; para2: jint); overload; virtual;
  end;

  JSSpinnerModel = interface external 'javax.swing' name 'SpinnerModel' 
    function getValue(): JLObject; overload;
    procedure setValue(para1: JLObject); overload;
    function getNextValue(): JLObject; overload;
    function getPreviousValue(): JLObject; overload;
    procedure addChangeListener(para1: JSEChangeListener); overload;
    procedure removeChangeListener(para1: JSEChangeListener); overload;
  end;

  JSSpring = class abstract external 'javax.swing' name 'Spring' (JLObject)
  public
    type
      InnerAbstractSpring = class;
      Arr1InnerAbstractSpring = array of InnerAbstractSpring;
      Arr2InnerAbstractSpring = array of Arr1InnerAbstractSpring;
      Arr3InnerAbstractSpring = array of Arr2InnerAbstractSpring;
      InnerCompoundSpring = class;
      Arr1InnerCompoundSpring = array of InnerCompoundSpring;
      Arr2InnerCompoundSpring = array of Arr1InnerCompoundSpring;
      Arr3InnerCompoundSpring = array of Arr2InnerCompoundSpring;
      InnerHeightSpring = class;
      Arr1InnerHeightSpring = array of InnerHeightSpring;
      Arr2InnerHeightSpring = array of Arr1InnerHeightSpring;
      Arr3InnerHeightSpring = array of Arr2InnerHeightSpring;
      InnerMaxSpring = class;
      Arr1InnerMaxSpring = array of InnerMaxSpring;
      Arr2InnerMaxSpring = array of Arr1InnerMaxSpring;
      Arr3InnerMaxSpring = array of Arr2InnerMaxSpring;
      InnerNegativeSpring = class;
      Arr1InnerNegativeSpring = array of InnerNegativeSpring;
      Arr2InnerNegativeSpring = array of Arr1InnerNegativeSpring;
      Arr3InnerNegativeSpring = array of Arr2InnerNegativeSpring;
      InnerScaleSpring = class;
      Arr1InnerScaleSpring = array of InnerScaleSpring;
      Arr2InnerScaleSpring = array of Arr1InnerScaleSpring;
      Arr3InnerScaleSpring = array of Arr2InnerScaleSpring;
      InnerSpringMap = class;
      Arr1InnerSpringMap = array of InnerSpringMap;
      Arr2InnerSpringMap = array of Arr1InnerSpringMap;
      Arr3InnerSpringMap = array of Arr2InnerSpringMap;
      InnerStaticSpring = class;
      Arr1InnerStaticSpring = array of InnerStaticSpring;
      Arr2InnerStaticSpring = array of Arr1InnerStaticSpring;
      Arr3InnerStaticSpring = array of Arr2InnerStaticSpring;
      InnerSumSpring = class;
      Arr1InnerSumSpring = array of InnerSumSpring;
      Arr2InnerSumSpring = array of Arr1InnerSumSpring;
      Arr3InnerSumSpring = array of Arr2InnerSumSpring;
      InnerWidthSpring = class;
      Arr1InnerWidthSpring = array of InnerWidthSpring;
      Arr2InnerWidthSpring = array of Arr1InnerWidthSpring;
      Arr3InnerWidthSpring = array of Arr2InnerWidthSpring;
      InnerAbstractSpring = class abstract external 'javax.swing' name 'AbstractSpring' 
      end;

      InnerCompoundSpring = class abstract external 'javax.swing' name 'CompoundSpring' 
      end;

      InnerHeightSpring = class external 'javax.swing' name 'HeightSpring' 
      end;

      InnerMaxSpring = class external 'javax.swing' name 'MaxSpring' 
      end;

      InnerNegativeSpring = class external 'javax.swing' name 'NegativeSpring' 
      end;

      InnerScaleSpring = class external 'javax.swing' name 'ScaleSpring' 
      end;

      InnerSpringMap = class abstract external 'javax.swing' name 'SpringMap' 
      end;

      InnerStaticSpring = class external 'javax.swing' name 'StaticSpring' 
      end;

      InnerSumSpring = class external 'javax.swing' name 'SumSpring' 
      end;

      InnerWidthSpring = class external 'javax.swing' name 'WidthSpring' 
      end;

  public
    const
      UNSET = -2147483648;
  strict protected
    constructor create(); overload;
  public
    function getMinimumValue(): jint; overload; virtual; abstract;
    function getPreferredValue(): jint; overload; virtual; abstract;
    function getMaximumValue(): jint; overload; virtual; abstract;
    function getValue(): jint; overload; virtual; abstract;
    procedure setValue(para1: jint); overload; virtual; abstract;
    class function constant(para1: jint): JSSpring; static; overload;
    class function constant(para1: jint; para2: jint; para3: jint): JSSpring; static; overload;
    class function minus(para1: JSSpring): JSSpring; static; overload;
    class function sum(para1: JSSpring; para2: JSSpring): JSSpring; static; overload;
    class function max(para1: JSSpring; para2: JSSpring): JSSpring; static; overload;
    class function scale(para1: JSSpring; para2: jfloat): JSSpring; static; overload;
    class function width(para1: JAComponent): JSSpring; static; overload;
    class function height(para1: JAComponent): JSSpring; static; overload;
  end;

  JSSwingConstants = interface external 'javax.swing' name 'SwingConstants' 
    const
      CENTER = 0;
      TOP = 1;
      LEFT = 2;
      BOTTOM = 3;
      RIGHT = 4;
      NORTH = 1;
      NORTH_EAST = 2;
      EAST = 3;
      SOUTH_EAST = 4;
      SOUTH = 5;
      SOUTH_WEST = 6;
      WEST = 7;
      NORTH_WEST = 8;
      HORIZONTAL = 0;
      VERTICAL = 1;
      LEADING = 10;
      TRAILING = 11;
      NEXT = 12;
      PREVIOUS = 13;
  end;

  JSSwingHeavyWeight = interface external 'javax.swing' name 'SwingHeavyWeight' 
  end;

  JSWindowConstants = interface external 'javax.swing' name 'WindowConstants' 
    const
      DO_NOTHING_ON_CLOSE = 0;
      HIDE_ON_CLOSE = 1;
      DISPOSE_ON_CLOSE = 2;
      EXIT_ON_CLOSE = 3;
  end;

  JSBBorder = interface external 'javax.swing.border' name 'Border' 
    procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload;
    function getBorderInsets(para1: JAComponent): JAInsets; overload;
    function isBorderOpaque(): jboolean; overload;
  end;

  JSCColorChooserComponentFactory = class external 'javax.swing.colorchooser' name 'ColorChooserComponentFactory' (JLObject)
  public
    class function getDefaultChooserPanels(): Arr1JSCAbstractColorChooserPanel; static; overload;
    class function getPreviewPanel(): JSJComponent; static; overload;
  end;

  JSCColorSelectionModel = interface external 'javax.swing.colorchooser' name 'ColorSelectionModel' 
    function getSelectedColor(): JAColor; overload;
    procedure setSelectedColor(para1: JAColor); overload;
    procedure addChangeListener(para1: JSEChangeListener); overload;
    procedure removeChangeListener(para1: JSEChangeListener); overload;
  end;

  JSEDocumentEvent = interface external 'javax.swing.event' name 'DocumentEvent' 
    type
      InnerElementChange = interface;
      Arr1InnerElementChange = array of InnerElementChange;
      Arr2InnerElementChange = array of Arr1InnerElementChange;
      Arr3InnerElementChange = array of Arr2InnerElementChange;
      InnerEventType = class;
      Arr1InnerEventType = array of InnerEventType;
      Arr2InnerEventType = array of Arr1InnerEventType;
      Arr3InnerEventType = array of Arr2InnerEventType;
      InnerElementChange = interface external 'javax.swing.event' name 'ElementChange' 
        function getElement(): JSTElement; overload;
        function getIndex(): jint; overload;
        function getChildrenRemoved(): Arr1JSTElement; overload;
        function getChildrenAdded(): Arr1JSTElement; overload;
      end;

      InnerEventType = class sealed external 'javax.swing.event' name 'EventType' (JLObject)
      public
        final class var
          fINSERT: JSEDocumentEvent.InnerEventType; external name 'INSERT';
          fREMOVE: JSEDocumentEvent.InnerEventType; external name 'REMOVE';
          fCHANGE: JSEDocumentEvent.InnerEventType; external name 'CHANGE';
      public
        function toString(): JLString; overload; virtual;
      end;

    function getOffset(): jint; overload;
    function getLength(): jint; overload;
    function getDocument(): JSTDocument; overload;
    function getType(): JSEDocumentEvent.InnerEventType; overload;
    function getChange(para1: JSTElement): JSEDocumentEvent.InnerElementChange; overload;
  end;

  JSFFileFilter = class abstract external 'javax.swing.filechooser' name 'FileFilter' (JLObject)
  public
    constructor create(); overload;
    function accept(para1: JIFile): jboolean; overload; virtual; abstract;
    function getDescription(): JLString; overload; virtual; abstract;
  end;

  JSFFileSystemView = class abstract external 'javax.swing.filechooser' name 'FileSystemView' (JLObject)
  public
    type
      InnerFileSystemRoot = class;
      Arr1InnerFileSystemRoot = array of InnerFileSystemRoot;
      Arr2InnerFileSystemRoot = array of Arr1InnerFileSystemRoot;
      Arr3InnerFileSystemRoot = array of Arr2InnerFileSystemRoot;
      InnerFileSystemRoot = class external 'javax.swing.filechooser' name 'FileSystemRoot' 
      end;

  public
    constructor create(); overload;
    class function getFileSystemView(): JSFFileSystemView; static; overload;
    function isRoot(para1: JIFile): jboolean; overload; virtual;
    function isTraversable(para1: JIFile): JLBoolean; overload; virtual;
    function getSystemDisplayName(para1: JIFile): JLString; overload; virtual;
    function getSystemTypeDescription(para1: JIFile): JLString; overload; virtual;
    function getSystemIcon(para1: JIFile): JSIcon; overload; virtual;
    function isParent(para1: JIFile; para2: JIFile): jboolean; overload; virtual;
    function getChild(para1: JIFile; para2: JLString): JIFile; overload; virtual;
    function isFileSystem(para1: JIFile): jboolean; overload; virtual;
    function createNewFolder(para1: JIFile): JIFile; overload; virtual; abstract;  // throws java.io.IOException
    function isHiddenFile(para1: JIFile): jboolean; overload; virtual;
    function isFileSystemRoot(para1: JIFile): jboolean; overload; virtual;
    function isDrive(para1: JIFile): jboolean; overload; virtual;
    function isFloppyDrive(para1: JIFile): jboolean; overload; virtual;
    function isComputerNode(para1: JIFile): jboolean; overload; virtual;
    function getRoots(): Arr1JIFile; overload; virtual;
    function getHomeDirectory(): JIFile; overload; virtual;
    function getDefaultDirectory(): JIFile; overload; virtual;
    function createFileObject(para1: JIFile; para2: JLString): JIFile; overload; virtual;
    function createFileObject(para1: JLString): JIFile; overload; virtual;
    function getFiles(para1: JIFile; para2: jboolean): Arr1JIFile; overload; virtual;
    function getParentDirectory(para1: JIFile): JIFile; overload; virtual;
  strict protected
    function createFileSystemRoot(para1: JIFile): JIFile; overload; virtual;
  end;

  JSFFileView = class abstract external 'javax.swing.filechooser' name 'FileView' (JLObject)
  public
    constructor create(); overload;
    function getName(para1: JIFile): JLString; overload; virtual;
    function getDescription(para1: JIFile): JLString; overload; virtual;
    function getTypeDescription(para1: JIFile): JLString; overload; virtual;
    function getIcon(para1: JIFile): JSIcon; overload; virtual;
    function isTraversable(para1: JIFile): JLBoolean; overload; virtual;
  end;

  JSPUIResource = interface external 'javax.swing.plaf' name 'UIResource' 
  end;

  JSPBBasicGraphicsUtils = class external 'javax.swing.plaf.basic' name 'BasicGraphicsUtils' (JLObject)
  public
    constructor create(); overload;
    class procedure drawEtchedRect(para1: JAGraphics; para2: jint; para3: jint; para4: jint; para5: jint; para6: JAColor; para7: JAColor; para8: JAColor; para9: JAColor); static; overload;
    class function getEtchedInsets(): JAInsets; static; overload;
    class procedure drawGroove(para1: JAGraphics; para2: jint; para3: jint; para4: jint; para5: jint; para6: JAColor; para7: JAColor); static; overload;
    class function getGrooveInsets(): JAInsets; static; overload;
    class procedure drawBezel(para1: JAGraphics; para2: jint; para3: jint; para4: jint; para5: jint; para6: jboolean; para7: jboolean; para8: JAColor; para9: JAColor; para10: JAColor; para11: JAColor); static; overload;
    class procedure drawLoweredBezel(para1: JAGraphics; para2: jint; para3: jint; para4: jint; para5: jint; para6: JAColor; para7: JAColor; para8: JAColor; para9: JAColor); static; overload;
    class procedure drawString(para1: JAGraphics; para2: JLString; para3: jint; para4: jint; para5: jint); static; overload;
    class procedure drawStringUnderlineCharAt(para1: JAGraphics; para2: JLString; para3: jint; para4: jint; para5: jint); static; overload;
    class procedure drawDashedRect(para1: JAGraphics; para2: jint; para3: jint; para4: jint; para5: jint); static; overload;
    class function getPreferredButtonSize(para1: JSAbstractButton; para2: jint): JADimension; static; overload;
  end;

  JSPBBasicHTML = class external 'javax.swing.plaf.basic' name 'BasicHTML' (JLObject)
  public
    type
      InnerBasicDocument = class;
      Arr1InnerBasicDocument = array of InnerBasicDocument;
      Arr2InnerBasicDocument = array of Arr1InnerBasicDocument;
      Arr3InnerBasicDocument = array of Arr2InnerBasicDocument;
      InnerBasicEditorKit = class;
      Arr1InnerBasicEditorKit = array of InnerBasicEditorKit;
      Arr2InnerBasicEditorKit = array of Arr1InnerBasicEditorKit;
      Arr3InnerBasicEditorKit = array of Arr2InnerBasicEditorKit;
      InnerBasicHTMLViewFactory = class;
      Arr1InnerBasicHTMLViewFactory = array of InnerBasicHTMLViewFactory;
      Arr2InnerBasicHTMLViewFactory = array of Arr1InnerBasicHTMLViewFactory;
      Arr3InnerBasicHTMLViewFactory = array of Arr2InnerBasicHTMLViewFactory;
      InnerRenderer = class;
      Arr1InnerRenderer = array of InnerRenderer;
      Arr2InnerRenderer = array of Arr1InnerRenderer;
      Arr3InnerRenderer = array of Arr2InnerRenderer;
      InnerBasicDocument = class external 'javax.swing.plaf.basic' name 'BasicDocument' 
      end;

      InnerBasicEditorKit = class external 'javax.swing.plaf.basic' name 'BasicEditorKit' 
      end;

      InnerBasicHTMLViewFactory = class external 'javax.swing.plaf.basic' name 'BasicHTMLViewFactory' 
      end;

      InnerRenderer = class external 'javax.swing.plaf.basic' name 'Renderer' 
      end;

  public
    const
      propertyKey = 'html';
      documentBaseKey = 'html.base';
  public
    constructor create(); overload;
    class function createHTMLView(para1: JSJComponent; para2: JLString): JSTView; static; overload;
    class function getHTMLBaseline(para1: JSTView; para2: jint; para3: jint): jint; static; overload;
    class function isHTMLString(para1: JLString): jboolean; static; overload;
    class procedure updateRenderer(para1: JSJComponent; para2: JLString); static; overload;
  end;

  JSPBComboPopup = interface external 'javax.swing.plaf.basic' name 'ComboPopup' 
    procedure show(); overload;
    procedure hide(); overload;
    function isVisible(): jboolean; overload;
    function getList(): JSJList; overload;
    function getMouseListener(): JAEMouseListener; overload;
    function getMouseMotionListener(): JAEMouseMotionListener; overload;
    function getKeyListener(): JAEKeyListener; overload;
    procedure uninstallingUI(); overload;
  end;

  JSPBDragRecognitionSupport = class external 'javax.swing.plaf.basic' name 'DragRecognitionSupport' (JLObject)
  public
    type
      InnerBeforeDrag = interface;
      Arr1InnerBeforeDrag = array of InnerBeforeDrag;
      Arr2InnerBeforeDrag = array of Arr1InnerBeforeDrag;
      Arr3InnerBeforeDrag = array of Arr2InnerBeforeDrag;
      InnerBeforeDrag = interface external 'javax.swing.plaf.basic' name 'BeforeDrag' 
        procedure dragStarting(para1: JAEMouseEvent); overload;
      end;

  public
    class function mousePressed(para1: JAEMouseEvent): jboolean; static; overload;
    class function mouseReleased(para1: JAEMouseEvent): JAEMouseEvent; static; overload;
    class function mouseDragged(para1: JAEMouseEvent; para2: JSPBDragRecognitionSupport.InnerBeforeDrag): jboolean; static; overload;
  end;

  JSPMBumpBuffer = class external 'javax.swing.plaf.metal' name 'BumpBuffer' (JLObject)
  public
    constructor create(para1: JAGraphicsConfiguration; para2: JAColor; para3: JAColor; para4: JAColor); overload;
    function hasSameConfiguration(para1: JAGraphicsConfiguration; para2: JAColor; para3: JAColor; para4: JAColor): jboolean; overload; virtual;
    function getImage(): JAImage; overload; virtual;
  end;

  JSPMMetalTheme = class abstract external 'javax.swing.plaf.metal' name 'MetalTheme' (JLObject)
  public
    constructor create(); overload;
    function getName(): JLString; overload; virtual; abstract;
  strict protected
    function getPrimary1(): JSPColorUIResource; overload; virtual; abstract;
    function getPrimary2(): JSPColorUIResource; overload; virtual; abstract;
    function getPrimary3(): JSPColorUIResource; overload; virtual; abstract;
    function getSecondary1(): JSPColorUIResource; overload; virtual; abstract;
    function getSecondary2(): JSPColorUIResource; overload; virtual; abstract;
    function getSecondary3(): JSPColorUIResource; overload; virtual; abstract;
  public
    function getControlTextFont(): JSPFontUIResource; overload; virtual; abstract;
    function getSystemTextFont(): JSPFontUIResource; overload; virtual; abstract;
    function getUserTextFont(): JSPFontUIResource; overload; virtual; abstract;
    function getMenuTextFont(): JSPFontUIResource; overload; virtual; abstract;
    function getWindowTitleFont(): JSPFontUIResource; overload; virtual; abstract;
    function getSubTextFont(): JSPFontUIResource; overload; virtual; abstract;
  strict protected
    function getWhite(): JSPColorUIResource; overload; virtual;
    function getBlack(): JSPColorUIResource; overload; virtual;
  public
    function getFocusColor(): JSPColorUIResource; overload; virtual;
    function getDesktopColor(): JSPColorUIResource; overload; virtual;
    function getControl(): JSPColorUIResource; overload; virtual;
    function getControlShadow(): JSPColorUIResource; overload; virtual;
    function getControlDarkShadow(): JSPColorUIResource; overload; virtual;
    function getControlInfo(): JSPColorUIResource; overload; virtual;
    function getControlHighlight(): JSPColorUIResource; overload; virtual;
    function getControlDisabled(): JSPColorUIResource; overload; virtual;
    function getPrimaryControl(): JSPColorUIResource; overload; virtual;
    function getPrimaryControlShadow(): JSPColorUIResource; overload; virtual;
    function getPrimaryControlDarkShadow(): JSPColorUIResource; overload; virtual;
    function getPrimaryControlInfo(): JSPColorUIResource; overload; virtual;
    function getPrimaryControlHighlight(): JSPColorUIResource; overload; virtual;
    function getSystemTextColor(): JSPColorUIResource; overload; virtual;
    function getControlTextColor(): JSPColorUIResource; overload; virtual;
    function getInactiveControlTextColor(): JSPColorUIResource; overload; virtual;
    function getInactiveSystemTextColor(): JSPColorUIResource; overload; virtual;
    function getUserTextColor(): JSPColorUIResource; overload; virtual;
    function getTextHighlightColor(): JSPColorUIResource; overload; virtual;
    function getHighlightedTextColor(): JSPColorUIResource; overload; virtual;
    function getWindowBackground(): JSPColorUIResource; overload; virtual;
    function getWindowTitleBackground(): JSPColorUIResource; overload; virtual;
    function getWindowTitleForeground(): JSPColorUIResource; overload; virtual;
    function getWindowTitleInactiveBackground(): JSPColorUIResource; overload; virtual;
    function getWindowTitleInactiveForeground(): JSPColorUIResource; overload; virtual;
    function getMenuBackground(): JSPColorUIResource; overload; virtual;
    function getMenuForeground(): JSPColorUIResource; overload; virtual;
    function getMenuSelectedBackground(): JSPColorUIResource; overload; virtual;
    function getMenuSelectedForeground(): JSPColorUIResource; overload; virtual;
    function getMenuDisabledForeground(): JSPColorUIResource; overload; virtual;
    function getSeparatorBackground(): JSPColorUIResource; overload; virtual;
    function getSeparatorForeground(): JSPColorUIResource; overload; virtual;
    function getAcceleratorForeground(): JSPColorUIResource; overload; virtual;
    function getAcceleratorSelectedForeground(): JSPColorUIResource; overload; virtual;
    procedure addCustomEntriesToTable(para1: JSUIDefaults); overload; virtual;
  end;

  JSPMMetalUtils = class external 'javax.swing.plaf.metal' name 'MetalUtils' (JLObject)
  public
    type
      InnerGradientPainter = class;
      Arr1InnerGradientPainter = array of InnerGradientPainter;
      Arr2InnerGradientPainter = array of Arr1InnerGradientPainter;
      Arr3InnerGradientPainter = array of Arr2InnerGradientPainter;
      InnerOceanDisabledButtonImageFilter = class;
      Arr1InnerOceanDisabledButtonImageFilter = array of InnerOceanDisabledButtonImageFilter;
      Arr2InnerOceanDisabledButtonImageFilter = array of Arr1InnerOceanDisabledButtonImageFilter;
      Arr3InnerOceanDisabledButtonImageFilter = array of Arr2InnerOceanDisabledButtonImageFilter;
      InnerOceanToolBarImageFilter = class;
      Arr1InnerOceanToolBarImageFilter = array of InnerOceanToolBarImageFilter;
      Arr2InnerOceanToolBarImageFilter = array of Arr1InnerOceanToolBarImageFilter;
      Arr3InnerOceanToolBarImageFilter = array of Arr2InnerOceanToolBarImageFilter;
      InnerGradientPainter = class external 'javax.swing.plaf.metal' name 'GradientPainter' 
      end;

      InnerOceanDisabledButtonImageFilter = class external 'javax.swing.plaf.metal' name 'OceanDisabledButtonImageFilter' 
      end;

      InnerOceanToolBarImageFilter = class external 'javax.swing.plaf.metal' name 'OceanToolBarImageFilter' 
      end;

  end;

  JSPSColorType = class external 'javax.swing.plaf.synth' name 'ColorType' (JLObject)
  public
    final class var
      fFOREGROUND: JSPSColorType; external name 'FOREGROUND';
      fBACKGROUND: JSPSColorType; external name 'BACKGROUND';
      fTEXT_FOREGROUND: JSPSColorType; external name 'TEXT_FOREGROUND';
      fTEXT_BACKGROUND: JSPSColorType; external name 'TEXT_BACKGROUND';
      fFOCUS: JSPSColorType; external name 'FOCUS';
      fMAX_COUNT: jint; external name 'MAX_COUNT';
  strict protected
    constructor create(para1: JLString); overload;
  public
    function getID(): jint; overload; virtual; final;
    function toString(): JLString; overload; virtual;
  end;

  JSPSRegion = class external 'javax.swing.plaf.synth' name 'Region' (JLObject)
  public
    final class var
      fARROW_BUTTON: JSPSRegion; external name 'ARROW_BUTTON';
      fBUTTON: JSPSRegion; external name 'BUTTON';
      fCHECK_BOX: JSPSRegion; external name 'CHECK_BOX';
      fCHECK_BOX_MENU_ITEM: JSPSRegion; external name 'CHECK_BOX_MENU_ITEM';
      fCOLOR_CHOOSER: JSPSRegion; external name 'COLOR_CHOOSER';
      fCOMBO_BOX: JSPSRegion; external name 'COMBO_BOX';
      fDESKTOP_PANE: JSPSRegion; external name 'DESKTOP_PANE';
      fDESKTOP_ICON: JSPSRegion; external name 'DESKTOP_ICON';
      fEDITOR_PANE: JSPSRegion; external name 'EDITOR_PANE';
      fFILE_CHOOSER: JSPSRegion; external name 'FILE_CHOOSER';
      fFORMATTED_TEXT_FIELD: JSPSRegion; external name 'FORMATTED_TEXT_FIELD';
      fINTERNAL_FRAME: JSPSRegion; external name 'INTERNAL_FRAME';
      fINTERNAL_FRAME_TITLE_PANE: JSPSRegion; external name 'INTERNAL_FRAME_TITLE_PANE';
      fLABEL: JSPSRegion; external name 'LABEL';
      fLIST: JSPSRegion; external name 'LIST';
      fMENU: JSPSRegion; external name 'MENU';
      fMENU_BAR: JSPSRegion; external name 'MENU_BAR';
      fMENU_ITEM: JSPSRegion; external name 'MENU_ITEM';
      fMENU_ITEM_ACCELERATOR: JSPSRegion; external name 'MENU_ITEM_ACCELERATOR';
      fOPTION_PANE: JSPSRegion; external name 'OPTION_PANE';
      fPANEL: JSPSRegion; external name 'PANEL';
      fPASSWORD_FIELD: JSPSRegion; external name 'PASSWORD_FIELD';
      fPOPUP_MENU: JSPSRegion; external name 'POPUP_MENU';
      fPOPUP_MENU_SEPARATOR: JSPSRegion; external name 'POPUP_MENU_SEPARATOR';
      fPROGRESS_BAR: JSPSRegion; external name 'PROGRESS_BAR';
      fRADIO_BUTTON: JSPSRegion; external name 'RADIO_BUTTON';
      fRADIO_BUTTON_MENU_ITEM: JSPSRegion; external name 'RADIO_BUTTON_MENU_ITEM';
      fROOT_PANE: JSPSRegion; external name 'ROOT_PANE';
      fSCROLL_BAR: JSPSRegion; external name 'SCROLL_BAR';
      fSCROLL_BAR_TRACK: JSPSRegion; external name 'SCROLL_BAR_TRACK';
      fSCROLL_BAR_THUMB: JSPSRegion; external name 'SCROLL_BAR_THUMB';
      fSCROLL_PANE: JSPSRegion; external name 'SCROLL_PANE';
      fSEPARATOR: JSPSRegion; external name 'SEPARATOR';
      fSLIDER: JSPSRegion; external name 'SLIDER';
      fSLIDER_TRACK: JSPSRegion; external name 'SLIDER_TRACK';
      fSLIDER_THUMB: JSPSRegion; external name 'SLIDER_THUMB';
      fSPINNER: JSPSRegion; external name 'SPINNER';
      fSPLIT_PANE: JSPSRegion; external name 'SPLIT_PANE';
      fSPLIT_PANE_DIVIDER: JSPSRegion; external name 'SPLIT_PANE_DIVIDER';
      fTABBED_PANE: JSPSRegion; external name 'TABBED_PANE';
      fTABBED_PANE_TAB: JSPSRegion; external name 'TABBED_PANE_TAB';
      fTABBED_PANE_TAB_AREA: JSPSRegion; external name 'TABBED_PANE_TAB_AREA';
      fTABBED_PANE_CONTENT: JSPSRegion; external name 'TABBED_PANE_CONTENT';
      fTABLE: JSPSRegion; external name 'TABLE';
      fTABLE_HEADER: JSPSRegion; external name 'TABLE_HEADER';
      fTEXT_AREA: JSPSRegion; external name 'TEXT_AREA';
      fTEXT_FIELD: JSPSRegion; external name 'TEXT_FIELD';
      fTEXT_PANE: JSPSRegion; external name 'TEXT_PANE';
      fTOGGLE_BUTTON: JSPSRegion; external name 'TOGGLE_BUTTON';
      fTOOL_BAR: JSPSRegion; external name 'TOOL_BAR';
      fTOOL_BAR_CONTENT: JSPSRegion; external name 'TOOL_BAR_CONTENT';
      fTOOL_BAR_DRAG_WINDOW: JSPSRegion; external name 'TOOL_BAR_DRAG_WINDOW';
      fTOOL_TIP: JSPSRegion; external name 'TOOL_TIP';
      fTOOL_BAR_SEPARATOR: JSPSRegion; external name 'TOOL_BAR_SEPARATOR';
      fTREE: JSPSRegion; external name 'TREE';
      fTREE_CELL: JSPSRegion; external name 'TREE_CELL';
      fVIEWPORT: JSPSRegion; external name 'VIEWPORT';
  strict protected
    constructor create(para1: JLString; para2: JLString; para3: jboolean); overload;
  public
    function isSubregion(): jboolean; overload; virtual;
    function getName(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSPSSynthConstants = interface external 'javax.swing.plaf.synth' name 'SynthConstants' 
    const
      ENABLED = 1;
      MOUSE_OVER = 2;
      PRESSED = 4;
      DISABLED = 8;
      FOCUSED = 256;
      SELECTED = 512;
      DEFAULT = 1024;
  end;

  JSPSSynthContext = class external 'javax.swing.plaf.synth' name 'SynthContext' (JLObject)
  public
    constructor create(para1: JSJComponent; para2: JSPSRegion; para3: JSPSSynthStyle; para4: jint); overload;
    function getComponent(): JSJComponent; overload; virtual;
    function getRegion(): JSPSRegion; overload; virtual;
    function getStyle(): JSPSSynthStyle; overload; virtual;
    function getComponentState(): jint; overload; virtual;
  end;

  JSPSSynthGraphicsUtils = class external 'javax.swing.plaf.synth' name 'SynthGraphicsUtils' (JLObject)
  public
    type
      InnerSynthIconWrapper = class;
      Arr1InnerSynthIconWrapper = array of InnerSynthIconWrapper;
      Arr2InnerSynthIconWrapper = array of Arr1InnerSynthIconWrapper;
      Arr3InnerSynthIconWrapper = array of Arr2InnerSynthIconWrapper;
      InnerSynthIconWrapper = class external 'javax.swing.plaf.synth' name 'SynthIconWrapper' 
      end;

  public
    constructor create(); overload;
    procedure drawLine(para1: JSPSSynthContext; para2: JLObject; para3: JAGraphics; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure drawLine(para1: JSPSSynthContext; para2: JLObject; para3: JAGraphics; para4: jint; para5: jint; para6: jint; para7: jint; para8: JLObject); overload; virtual;
    function layoutText(para1: JSPSSynthContext; para2: JAFontMetrics; para3: JLString; para4: JSIcon; para5: jint; para6: jint; para7: jint; para8: jint; para9: JARectangle; para10: JARectangle; para11: JARectangle; para12: jint): JLString; overload; virtual;
    function computeStringWidth(para1: JSPSSynthContext; para2: JAFont; para3: JAFontMetrics; para4: JLString): jint; overload; virtual;
    function getMinimumSize(para1: JSPSSynthContext; para2: JAFont; para3: JLString; para4: JSIcon; para5: jint; para6: jint; para7: jint; para8: jint; para9: jint; para10: jint): JADimension; overload; virtual;
    function getMaximumSize(para1: JSPSSynthContext; para2: JAFont; para3: JLString; para4: JSIcon; para5: jint; para6: jint; para7: jint; para8: jint; para9: jint; para10: jint): JADimension; overload; virtual;
    function getMaximumCharHeight(para1: JSPSSynthContext): jint; overload; virtual;
    function getPreferredSize(para1: JSPSSynthContext; para2: JAFont; para3: JLString; para4: JSIcon; para5: jint; para6: jint; para7: jint; para8: jint; para9: jint; para10: jint): JADimension; overload; virtual;
    procedure paintText(para1: JSPSSynthContext; para2: JAGraphics; para3: JLString; para4: JARectangle; para5: jint); overload; virtual;
    procedure paintText(para1: JSPSSynthContext; para2: JAGraphics; para3: JLString; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintText(para1: JSPSSynthContext; para2: JAGraphics; para3: JLString; para4: JSIcon; para5: jint; para6: jint; para7: jint; para8: jint; para9: jint; para10: jint; para11: jint); overload; virtual;
  end;

  JSPSSynthPainter = class abstract external 'javax.swing.plaf.synth' name 'SynthPainter' (JLObject)
  public
    constructor create(); overload;
    procedure paintArrowButtonBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintArrowButtonBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintArrowButtonForeground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintButtonBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintButtonBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintCheckBoxMenuItemBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintCheckBoxMenuItemBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintCheckBoxBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintCheckBoxBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintColorChooserBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintColorChooserBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintComboBoxBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintComboBoxBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintDesktopIconBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintDesktopIconBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintDesktopPaneBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintDesktopPaneBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintEditorPaneBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintEditorPaneBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintFileChooserBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintFileChooserBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintFormattedTextFieldBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintFormattedTextFieldBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintInternalFrameTitlePaneBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintInternalFrameTitlePaneBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintInternalFrameBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintInternalFrameBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintLabelBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintLabelBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintListBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintListBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintMenuBarBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintMenuBarBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintMenuItemBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintMenuItemBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintMenuBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintMenuBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintOptionPaneBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintOptionPaneBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintPanelBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintPanelBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintPasswordFieldBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintPasswordFieldBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintPopupMenuBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintPopupMenuBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintProgressBarBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintProgressBarBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintProgressBarBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintProgressBarBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintProgressBarForeground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintRadioButtonMenuItemBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintRadioButtonMenuItemBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintRadioButtonBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintRadioButtonBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintRootPaneBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintRootPaneBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintScrollBarBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintScrollBarBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintScrollBarBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintScrollBarBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintScrollBarThumbBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintScrollBarThumbBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintScrollBarTrackBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintScrollBarTrackBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintScrollBarTrackBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintScrollBarTrackBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintScrollPaneBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintScrollPaneBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintSeparatorBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintSeparatorBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintSeparatorBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintSeparatorBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintSeparatorForeground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintSliderBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintSliderBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintSliderBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintSliderBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintSliderThumbBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintSliderThumbBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintSliderTrackBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintSliderTrackBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintSliderTrackBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintSliderTrackBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintSpinnerBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintSpinnerBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintSplitPaneDividerBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintSplitPaneDividerBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintSplitPaneDividerForeground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintSplitPaneDragDivider(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintSplitPaneBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintSplitPaneBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTabbedPaneBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTabbedPaneBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTabbedPaneTabAreaBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTabbedPaneTabAreaBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintTabbedPaneTabAreaBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTabbedPaneTabAreaBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintTabbedPaneTabBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintTabbedPaneTabBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint); overload; virtual;
    procedure paintTabbedPaneTabBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintTabbedPaneTabBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint); overload; virtual;
    procedure paintTabbedPaneContentBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTabbedPaneContentBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTableHeaderBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTableHeaderBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTableBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTableBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTextAreaBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTextAreaBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTextPaneBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTextPaneBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTextFieldBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTextFieldBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintToggleButtonBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintToggleButtonBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintToolBarBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintToolBarBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintToolBarBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintToolBarBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintToolBarContentBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintToolBarContentBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintToolBarContentBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintToolBarContentBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintToolBarDragWindowBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintToolBarDragWindowBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintToolBarDragWindowBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintToolBarDragWindowBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintToolTipBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintToolTipBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTreeBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTreeBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTreeCellBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTreeCellBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTreeCellFocus(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintViewportBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintViewportBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
  end;

  JSPSSynthStyle = class abstract external 'javax.swing.plaf.synth' name 'SynthStyle' (JLObject)
  public
    constructor create(); overload;
    function getGraphicsUtils(para1: JSPSSynthContext): JSPSSynthGraphicsUtils; overload; virtual;
    function getColor(para1: JSPSSynthContext; para2: JSPSColorType): JAColor; overload; virtual;
  strict protected
    function getColorForState(para1: JSPSSynthContext; para2: JSPSColorType): JAColor; overload; virtual; abstract;
  public
    function getFont(para1: JSPSSynthContext): JAFont; overload; virtual;
  strict protected
    function getFontForState(para1: JSPSSynthContext): JAFont; overload; virtual; abstract;
  public
    function getInsets(para1: JSPSSynthContext; para2: JAInsets): JAInsets; overload; virtual;
    function getPainter(para1: JSPSSynthContext): JSPSSynthPainter; overload; virtual;
    function isOpaque(para1: JSPSSynthContext): jboolean; overload; virtual;
    function get(para1: JSPSSynthContext; para2: JLObject): JLObject; overload; virtual;
    procedure installDefaults(para1: JSPSSynthContext); overload; virtual;
    procedure uninstallDefaults(para1: JSPSSynthContext); overload; virtual;
    function getInt(para1: JSPSSynthContext; para2: JLObject; para3: jint): jint; overload; virtual;
    function getBoolean(para1: JSPSSynthContext; para2: JLObject; para3: jboolean): jboolean; overload; virtual;
    function getIcon(para1: JSPSSynthContext; para2: JLObject): JSIcon; overload; virtual;
    function getString(para1: JSPSSynthContext; para2: JLObject; para3: JLString): JLString; overload; virtual;
  end;

  JSPSSynthStyleFactory = class abstract external 'javax.swing.plaf.synth' name 'SynthStyleFactory' (JLObject)
  public
    constructor create(); overload;
    function getStyle(para1: JSJComponent; para2: JSPSRegion): JSPSSynthStyle; overload; virtual; abstract;
  end;

  JSTTableCellRenderer = interface external 'javax.swing.table' name 'TableCellRenderer' 
    function getTableCellRendererComponent(para1: JSJTable; para2: JLObject; para3: jboolean; para4: jboolean; para5: jint; para6: jint): JAComponent; overload;
  end;

  JSTTableColumnModel = interface external 'javax.swing.table' name 'TableColumnModel' 
    procedure addColumn(para1: JSTTableColumn); overload;
    procedure removeColumn(para1: JSTTableColumn); overload;
    procedure moveColumn(para1: jint; para2: jint); overload;
    procedure setColumnMargin(para1: jint); overload;
    function getColumnCount(): jint; overload;
    function getColumns(): JUEnumeration; overload;
    function getColumnIndex(para1: JLObject): jint; overload;
    function getColumn(para1: jint): JSTTableColumn; overload;
    function getColumnMargin(): jint; overload;
    function getColumnIndexAtX(para1: jint): jint; overload;
    function getTotalColumnWidth(): jint; overload;
    procedure setColumnSelectionAllowed(para1: jboolean); overload;
    function getColumnSelectionAllowed(): jboolean; overload;
    function getSelectedColumns(): Arr1jint; overload;
    function getSelectedColumnCount(): jint; overload;
    procedure setSelectionModel(para1: JSListSelectionModel); overload;
    function getSelectionModel(): JSListSelectionModel; overload;
    procedure addColumnModelListener(para1: JSETableColumnModelListener); overload;
    procedure removeColumnModelListener(para1: JSETableColumnModelListener); overload;
  end;

  JSTTableModel = interface external 'javax.swing.table' name 'TableModel' 
    function getRowCount(): jint; overload;
    function getColumnCount(): jint; overload;
    function getColumnName(para1: jint): JLString; overload;
    function getColumnClass(para1: jint): JLClass; overload;
    function isCellEditable(para1: jint; para2: jint): jboolean; overload;
    function getValueAt(para1: jint; para2: jint): JLObject; overload;
    procedure setValueAt(para1: JLObject; para2: jint; para3: jint); overload;
    procedure addTableModelListener(para1: JSETableModelListener); overload;
    procedure removeTableModelListener(para1: JSETableModelListener); overload;
  end;

  JSTTableStringConverter = class abstract external 'javax.swing.table' name 'TableStringConverter' (JLObject)
  public
    constructor create(); overload;
    function toString(para1: JSTTableModel; para2: jint; para3: jint): JLString; overload; virtual; abstract;
  end;

  JSTAbstractWriter = class abstract external 'javax.swing.text' name 'AbstractWriter' (JLObject)
  strict protected
    const
      NEWLINE = 10;
  strict protected
    constructor create(para1: JIWriter; para2: JSTDocument); overload;
    constructor create(para1: JIWriter; para2: JSTDocument; para3: jint; para4: jint); overload;
    constructor create(para1: JIWriter; para2: JSTElement); overload;
    constructor create(para1: JIWriter; para2: JSTElement; para3: jint; para4: jint); overload;
  public
    function getStartOffset(): jint; overload; virtual;
    function getEndOffset(): jint; overload; virtual;
  strict protected
    function getElementIterator(): JSTElementIterator; overload; virtual;
    function getWriter(): JIWriter; overload; virtual;
    function getDocument(): JSTDocument; overload; virtual;
    function inRange(para1: JSTElement): jboolean; overload; virtual;
    procedure write(); overload; virtual; abstract;  // throws java.io.IOException, javax.swing.text.BadLocationException
    function getText(para1: JSTElement): JLString; overload; virtual;  // throws javax.swing.text.BadLocationException
    procedure text(para1: JSTElement); overload; virtual;  // throws javax.swing.text.BadLocationException, java.io.IOException
    procedure setLineLength(para1: jint); overload; virtual;
    function getLineLength(): jint; overload; virtual;
    procedure setCurrentLineLength(para1: jint); overload; virtual;
    function getCurrentLineLength(): jint; overload; virtual;
    function isLineEmpty(): jboolean; overload; virtual;
    procedure setCanWrapLines(para1: jboolean); overload; virtual;
    function getCanWrapLines(): jboolean; overload; virtual;
    procedure setIndentSpace(para1: jint); overload; virtual;
    function getIndentSpace(): jint; overload; virtual;
  public
    procedure setLineSeparator(para1: JLString); overload; virtual;
    function getLineSeparator(): JLString; overload; virtual;
  strict protected
    procedure incrIndent(); overload; virtual;
    procedure decrIndent(); overload; virtual;
    function getIndentLevel(): jint; overload; virtual;
    procedure indent(); overload; virtual;  // throws java.io.IOException
    procedure write(para1: jchar); overload; virtual;  // throws java.io.IOException
    procedure write(para1: JLString); overload; virtual;  // throws java.io.IOException
    procedure writeLineSeparator(); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure writeAttributes(para1: JSTAttributeSet); overload; virtual;  // throws java.io.IOException
    procedure output(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure output(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
  end;

  JSTAttributeSet = interface external 'javax.swing.text' name 'AttributeSet' 
    type
      InnerCharacterAttribute = interface;
      Arr1InnerCharacterAttribute = array of InnerCharacterAttribute;
      Arr2InnerCharacterAttribute = array of Arr1InnerCharacterAttribute;
      Arr3InnerCharacterAttribute = array of Arr2InnerCharacterAttribute;
      InnerColorAttribute = interface;
      Arr1InnerColorAttribute = array of InnerColorAttribute;
      Arr2InnerColorAttribute = array of Arr1InnerColorAttribute;
      Arr3InnerColorAttribute = array of Arr2InnerColorAttribute;
      InnerFontAttribute = interface;
      Arr1InnerFontAttribute = array of InnerFontAttribute;
      Arr2InnerFontAttribute = array of Arr1InnerFontAttribute;
      Arr3InnerFontAttribute = array of Arr2InnerFontAttribute;
      InnerParagraphAttribute = interface;
      Arr1InnerParagraphAttribute = array of InnerParagraphAttribute;
      Arr2InnerParagraphAttribute = array of Arr1InnerParagraphAttribute;
      Arr3InnerParagraphAttribute = array of Arr2InnerParagraphAttribute;
      InnerCharacterAttribute = interface external 'javax.swing.text' name 'CharacterAttribute' 
      end;

      InnerColorAttribute = interface external 'javax.swing.text' name 'ColorAttribute' 
      end;

      InnerFontAttribute = interface external 'javax.swing.text' name 'FontAttribute' 
      end;

      InnerParagraphAttribute = interface external 'javax.swing.text' name 'ParagraphAttribute' 
      end;

    final class var
      fNameAttribute: JLObject; external name 'NameAttribute';
      fResolveAttribute: JLObject; external name 'ResolveAttribute';
    function getAttributeCount(): jint; overload;
    function isDefined(para1: JLObject): jboolean; overload;
    function isEqual(para1: JSTAttributeSet): jboolean; overload;
    function copyAttributes(): JSTAttributeSet; overload;
    function getAttribute(para1: JLObject): JLObject; overload;
    function getAttributeNames(): JUEnumeration; overload;
    function containsAttribute(para1: JLObject; para2: JLObject): jboolean; overload;
    function containsAttributes(para1: JSTAttributeSet): jboolean; overload;
    function getResolveParent(): JSTAttributeSet; overload;
  end;

  JSTCaret = interface external 'javax.swing.text' name 'Caret' 
    procedure install(para1: JSTJTextComponent); overload;
    procedure deinstall(para1: JSTJTextComponent); overload;
    procedure paint(para1: JAGraphics); overload;
    procedure addChangeListener(para1: JSEChangeListener); overload;
    procedure removeChangeListener(para1: JSEChangeListener); overload;
    function isVisible(): jboolean; overload;
    procedure setVisible(para1: jboolean); overload;
    function isSelectionVisible(): jboolean; overload;
    procedure setSelectionVisible(para1: jboolean); overload;
    procedure setMagicCaretPosition(para1: JAPoint); overload;
    function getMagicCaretPosition(): JAPoint; overload;
    procedure setBlinkRate(para1: jint); overload;
    function getBlinkRate(): jint; overload;
    function getDot(): jint; overload;
    function getMark(): jint; overload;
    procedure setDot(para1: jint); overload;
    procedure moveDot(para1: jint); overload;
  end;

  JSTDocument = interface external 'javax.swing.text' name 'Document' 
    const
      StreamDescriptionProperty = 'stream';
      TitleProperty = 'title';
    function getLength(): jint; overload;
    procedure addDocumentListener(para1: JSEDocumentListener); overload;
    procedure removeDocumentListener(para1: JSEDocumentListener); overload;
    procedure addUndoableEditListener(para1: JSEUndoableEditListener); overload;
    procedure removeUndoableEditListener(para1: JSEUndoableEditListener); overload;
    function getProperty(para1: JLObject): JLObject; overload;
    procedure putProperty(para1: JLObject; para2: JLObject); overload;
    procedure remove(para1: jint; para2: jint); overload;  // throws javax.swing.text.BadLocationException
    procedure insertString(para1: jint; para2: JLString; para3: JSTAttributeSet); overload;  // throws javax.swing.text.BadLocationException
    function getText(para1: jint; para2: jint): JLString; overload;  // throws javax.swing.text.BadLocationException
    procedure getText(para1: jint; para2: jint; para3: JSTSegment); overload;  // throws javax.swing.text.BadLocationException
    function getStartPosition(): JSTPosition; overload;
    function getEndPosition(): JSTPosition; overload;
    function createPosition(para1: jint): JSTPosition; overload;  // throws javax.swing.text.BadLocationException
    function getRootElements(): Arr1JSTElement; overload;
    function getDefaultRootElement(): JSTElement; overload;
    procedure render(para1: JLRunnable); overload;
  end;

  JSTDocumentFilter = class external 'javax.swing.text' name 'DocumentFilter' (JLObject)
  public
    type
      InnerFilterBypass = class;
      Arr1InnerFilterBypass = array of InnerFilterBypass;
      Arr2InnerFilterBypass = array of Arr1InnerFilterBypass;
      Arr3InnerFilterBypass = array of Arr2InnerFilterBypass;
      InnerFilterBypass = class abstract external 'javax.swing.text' name 'FilterBypass' (JLObject)
      public
        constructor create(); overload;
        function getDocument(): JSTDocument; overload; virtual; abstract;
        procedure remove(para1: jint; para2: jint); overload; virtual; abstract;  // throws javax.swing.text.BadLocationException
        procedure insertString(para1: jint; para2: JLString; para3: JSTAttributeSet); overload; virtual; abstract;  // throws javax.swing.text.BadLocationException
        procedure replace(para1: jint; para2: jint; para3: JLString; para4: JSTAttributeSet); overload; virtual; abstract;  // throws javax.swing.text.BadLocationException
      end;

  public
    constructor create(); overload;
    procedure remove(para1: JSTDocumentFilter.InnerFilterBypass; para2: jint; para3: jint); overload; virtual;  // throws javax.swing.text.BadLocationException
    procedure insertString(para1: JSTDocumentFilter.InnerFilterBypass; para2: jint; para3: JLString; para4: JSTAttributeSet); overload; virtual;  // throws javax.swing.text.BadLocationException
    procedure replace(para1: JSTDocumentFilter.InnerFilterBypass; para2: jint; para3: jint; para4: JLString; para5: JSTAttributeSet); overload; virtual;  // throws javax.swing.text.BadLocationException
  end;

  JSTElement = interface external 'javax.swing.text' name 'Element' 
    function getDocument(): JSTDocument; overload;
    function getParentElement(): JSTElement; overload;
    function getName(): JLString; overload;
    function getAttributes(): JSTAttributeSet; overload;
    function getStartOffset(): jint; overload;
    function getEndOffset(): jint; overload;
    function getElementIndex(para1: jint): jint; overload;
    function getElementCount(): jint; overload;
    function getElement(para1: jint): JSTElement; overload;
    function isLeaf(): jboolean; overload;
  end;

  JSTHighlighter = interface external 'javax.swing.text' name 'Highlighter' 
    type
      InnerHighlightPainter = interface;
      Arr1InnerHighlightPainter = array of InnerHighlightPainter;
      Arr2InnerHighlightPainter = array of Arr1InnerHighlightPainter;
      Arr3InnerHighlightPainter = array of Arr2InnerHighlightPainter;
      InnerHighlight = interface;
      Arr1InnerHighlight = array of InnerHighlight;
      Arr2InnerHighlight = array of Arr1InnerHighlight;
      Arr3InnerHighlight = array of Arr2InnerHighlight;
      InnerHighlightPainter = interface external 'javax.swing.text' name 'HighlightPainter' 
        procedure paint(para1: JAGraphics; para2: jint; para3: jint; para4: JAShape; para5: JSTJTextComponent); overload;
      end;

      InnerHighlight = interface external 'javax.swing.text' name 'Highlight' 
        function getStartOffset(): jint; overload;
        function getEndOffset(): jint; overload;
        function getPainter(): JSTHighlighter.InnerHighlightPainter; overload;
      end;

    procedure install(para1: JSTJTextComponent); overload;
    procedure deinstall(para1: JSTJTextComponent); overload;
    procedure paint(para1: JAGraphics); overload;
    function addHighlight(para1: jint; para2: jint; para3: JSTHighlighter.InnerHighlightPainter): JLObject; overload;  // throws javax.swing.text.BadLocationException
    procedure removeHighlight(para1: JLObject); overload;
    procedure removeAllHighlights(); overload;
    procedure changeHighlight(para1: JLObject; para2: jint; para3: jint); overload;  // throws javax.swing.text.BadLocationException
    function getHighlights(): JSTHighlighter.Arr1InnerHighlight; overload;
  end;

  JSTKeymap = interface external 'javax.swing.text' name 'Keymap' 
    function getName(): JLString; overload;
    function getDefaultAction(): JSAction; overload;
    procedure setDefaultAction(para1: JSAction); overload;
    function getAction(para1: JSKeyStroke): JSAction; overload;
    function getBoundKeyStrokes(): Arr1JSKeyStroke; overload;
    function getBoundActions(): Arr1JSAction; overload;
    function getKeyStrokesForAction(para1: JSAction): Arr1JSKeyStroke; overload;
    function isLocallyDefined(para1: JSKeyStroke): jboolean; overload;
    procedure addActionForKeyStroke(para1: JSKeyStroke; para2: JSAction); overload;
    procedure removeKeyStrokeBinding(para1: JSKeyStroke); overload;
    procedure removeBindings(); overload;
    function getResolveParent(): JSTKeymap; overload;
    procedure setResolveParent(para1: JSTKeymap); overload;
  end;

  JSTLayoutQueue = class external 'javax.swing.text' name 'LayoutQueue' (JLObject)
  public
    type
      InnerLayoutThread = class;
      Arr1InnerLayoutThread = array of InnerLayoutThread;
      Arr2InnerLayoutThread = array of Arr1InnerLayoutThread;
      Arr3InnerLayoutThread = array of Arr2InnerLayoutThread;
      InnerLayoutThread = class external 'javax.swing.text' name 'LayoutThread' 
      end;

  public
    constructor create(); overload;
    class function getDefaultQueue(): JSTLayoutQueue; static; overload;
    class procedure setDefaultQueue(para1: JSTLayoutQueue); static; overload;
    procedure addTask(para1: JLRunnable); overload; virtual;
  strict protected
    function waitForWork(): JLRunnable; overload; virtual;
  end;

  JSTPosition = interface external 'javax.swing.text' name 'Position' 
    type
      InnerBias = class;
      Arr1InnerBias = array of InnerBias;
      Arr2InnerBias = array of Arr1InnerBias;
      Arr3InnerBias = array of Arr2InnerBias;
      InnerBias = class sealed external 'javax.swing.text' name 'Bias' (JLObject)
      public
        final class var
          fForward: JSTPosition.InnerBias; external name 'Forward';
          fBackward: JSTPosition.InnerBias; external name 'Backward';
      public
        function toString(): JLString; overload; virtual;
      end;

    function getOffset(): jint; overload;
  end;

  JSTSegmentCache = class external 'javax.swing.text' name 'SegmentCache' (JLObject)
  public
    type
      InnerCachedSegment = class;
      Arr1InnerCachedSegment = array of InnerCachedSegment;
      Arr2InnerCachedSegment = array of Arr1InnerCachedSegment;
      Arr3InnerCachedSegment = array of Arr2InnerCachedSegment;
      InnerCachedSegment = class external 'javax.swing.text' name 'CachedSegment' 
      end;

  public
    class function getSharedInstance(): JSTSegmentCache; static; overload;
    class function getSharedSegment(): JSTSegment; static; overload;
    class procedure releaseSharedSegment(para1: JSTSegment); static; overload;
    constructor create(); overload;
    function getSegment(): JSTSegment; overload; virtual;
    procedure releaseSegment(para1: JSTSegment); overload; virtual;
  end;

  JSTTabExpander = interface external 'javax.swing.text' name 'TabExpander' 
    function nextTabStop(para1: jfloat; para2: jint): jfloat; overload;
  end;

  JSTTabableView = interface external 'javax.swing.text' name 'TabableView' 
    function getTabbedSpan(para1: jfloat; para2: JSTTabExpander): jfloat; overload;
    function getPartialSpan(para1: jint; para2: jint): jfloat; overload;
  end;

  JSTUtilities = class external 'javax.swing.text' name 'Utilities' (JLObject)
  public
    constructor create(); overload;
    class function drawTabbedText(para1: JSTSegment; para2: jint; para3: jint; para4: JAGraphics; para5: JSTTabExpander; para6: jint): jint; static; overload; final;
    class function getTabbedTextWidth(para1: JSTSegment; para2: JAFontMetrics; para3: jint; para4: JSTTabExpander; para5: jint): jint; static; overload; final;
    class function getTabbedTextOffset(para1: JSTSegment; para2: JAFontMetrics; para3: jint; para4: jint; para5: JSTTabExpander; para6: jint): jint; static; overload; final;
    class function getTabbedTextOffset(para1: JSTSegment; para2: JAFontMetrics; para3: jint; para4: jint; para5: JSTTabExpander; para6: jint; para7: jboolean): jint; static; overload; final;
    class function getBreakLocation(para1: JSTSegment; para2: JAFontMetrics; para3: jint; para4: jint; para5: JSTTabExpander; para6: jint): jint; static; overload; final;
    class function getRowStart(para1: JSTJTextComponent; para2: jint): jint; static; overload; final;  // throws javax.swing.text.BadLocationException
    class function getRowEnd(para1: JSTJTextComponent; para2: jint): jint; static; overload; final;  // throws javax.swing.text.BadLocationException
    class function getPositionAbove(para1: JSTJTextComponent; para2: jint; para3: jint): jint; static; overload; final;  // throws javax.swing.text.BadLocationException
    class function getPositionBelow(para1: JSTJTextComponent; para2: jint; para3: jint): jint; static; overload; final;  // throws javax.swing.text.BadLocationException
    class function getWordStart(para1: JSTJTextComponent; para2: jint): jint; static; overload; final;  // throws javax.swing.text.BadLocationException
    class function getWordEnd(para1: JSTJTextComponent; para2: jint): jint; static; overload; final;  // throws javax.swing.text.BadLocationException
    class function getNextWord(para1: JSTJTextComponent; para2: jint): jint; static; overload; final;  // throws javax.swing.text.BadLocationException
    class function getPreviousWord(para1: JSTJTextComponent; para2: jint): jint; static; overload; final;  // throws javax.swing.text.BadLocationException
    class function getParagraphElement(para1: JSTJTextComponent; para2: jint): JSTElement; static; overload; final;
  end;

  JSTViewFactory = interface external 'javax.swing.text' name 'ViewFactory' 
    function create_(para1: JSTElement): JSTView; external name 'create'; overload;
  end;

  JSTHCSSParser = class external 'javax.swing.text.html' name 'CSSParser' (JLObject)
  public
    type
      InnerCSSParserCallback = interface;
      Arr1InnerCSSParserCallback = array of InnerCSSParserCallback;
      Arr2InnerCSSParserCallback = array of Arr1InnerCSSParserCallback;
      Arr3InnerCSSParserCallback = array of Arr2InnerCSSParserCallback;
      InnerCSSParserCallback = interface external 'javax.swing.text.html' name 'CSSParserCallback' 
      end;

  end;

  JSTHPContentModelState = class external 'javax.swing.text.html.parser' name 'ContentModelState' (JLObject)
  public
    constructor create(para1: JSTHPContentModel); overload;
    function getModel(): JSTHPContentModel; overload; virtual;
    function terminate(): jboolean; overload; virtual;
    function first(): JSTHPElement; overload; virtual;
    function advance(para1: JLObject): JSTHPContentModelState; overload; virtual;
  end;

  JSTHPDTDConstants = interface external 'javax.swing.text.html.parser' name 'DTDConstants' 
    const
      CDATA = 1;
      ENTITY = 2;
      ENTITIES = 3;
      ID = 4;
      IDREF = 5;
      IDREFS = 6;
      NAME = 7;
      NAMES = 8;
      NMTOKEN = 9;
      NMTOKENS = 10;
      NOTATION = 11;
      NUMBER = 12;
      NUMBERS = 13;
      NUTOKEN = 14;
      NUTOKENS = 15;
      RCDATA = 16;
      EMPTY = 17;
      MODEL = 18;
      ANY = 19;
      FIXED = 1;
      REQUIRED = 2;
      CURRENT = 3;
      CONREF = 4;
      IMPLIED = 5;
      &PUBLIC = 10;
      SDATA = 11;
      PI = 12;
      STARTTAG = 13;
      ENDTAG = 14;
      MS = 15;
      MD = 16;
      SYSTEM = 17;
      GENERAL = 65536;
      DEFAULT = 131072;
      PARAMETER = 262144;
  end;

  JSTRConstants = class external 'javax.swing.text.rtf' name 'Constants' (JLObject)
  end;

  JSTRRTFAttribute = interface external 'javax.swing.text.rtf' name 'RTFAttribute' 
    const
      D_CHARACTER = 0;
      D_PARAGRAPH = 1;
      D_SECTION = 2;
      D_DOCUMENT = 3;
      D_META = 4;
    function domain(): jint; overload;
    function swingName(): JLObject; overload;
    function rtfName(): JLString; overload;
    function &set(para1: JSTMutableAttributeSet): jboolean; overload;
    function &set(para1: JSTMutableAttributeSet; para2: jint): jboolean; overload;
    function setDefault(para1: JSTMutableAttributeSet): jboolean; overload;
    function write(para1: JSTAttributeSet; para2: JSTRRTFGenerator; para3: jboolean): jboolean; overload;  // throws java.io.IOException
    function writeValue(para1: JLObject; para2: JSTRRTFGenerator; para3: jboolean): jboolean; overload;  // throws java.io.IOException
  end;

  JSTRRTFAttributes = class external 'javax.swing.text.rtf' name 'RTFAttributes' (JLObject)
  public
    type
      InnerAssertiveAttribute = class;
      Arr1InnerAssertiveAttribute = array of InnerAssertiveAttribute;
      Arr2InnerAssertiveAttribute = array of Arr1InnerAssertiveAttribute;
      Arr3InnerAssertiveAttribute = array of Arr2InnerAssertiveAttribute;
      InnerBooleanAttribute = class;
      Arr1InnerBooleanAttribute = array of InnerBooleanAttribute;
      Arr2InnerBooleanAttribute = array of Arr1InnerBooleanAttribute;
      Arr3InnerBooleanAttribute = array of Arr2InnerBooleanAttribute;
      InnerNumericAttribute = class;
      Arr1InnerNumericAttribute = array of InnerNumericAttribute;
      Arr2InnerNumericAttribute = array of Arr1InnerNumericAttribute;
      Arr3InnerNumericAttribute = array of Arr2InnerNumericAttribute;
      InnerGenericAttribute = class;
      Arr1InnerGenericAttribute = array of InnerGenericAttribute;
      Arr2InnerGenericAttribute = array of Arr1InnerGenericAttribute;
      Arr3InnerGenericAttribute = array of Arr2InnerGenericAttribute;
      InnerAssertiveAttribute = class external 'javax.swing.text.rtf' name 'AssertiveAttribute' 
      end;

      InnerBooleanAttribute = class external 'javax.swing.text.rtf' name 'BooleanAttribute' 
      end;

      InnerNumericAttribute = class external 'javax.swing.text.rtf' name 'NumericAttribute' 
      end;

      InnerGenericAttribute = class abstract external 'javax.swing.text.rtf' name 'GenericAttribute' 
      end;

  end;

  JSTRRTFGenerator = class external 'javax.swing.text.rtf' name 'RTFGenerator' (JLObject)
  public
    type
      InnerCharacterKeywordPair = class;
      Arr1InnerCharacterKeywordPair = array of InnerCharacterKeywordPair;
      Arr2InnerCharacterKeywordPair = array of Arr1InnerCharacterKeywordPair;
      Arr3InnerCharacterKeywordPair = array of Arr2InnerCharacterKeywordPair;
      InnerCharacterKeywordPair = class external 'javax.swing.text.rtf' name 'CharacterKeywordPair' 
      end;

  public
    final class var
      fdefaultRTFColor: JAColor; external name 'defaultRTFColor';
  public
    const
      defaultFontSize = jfloat(12.0);
      defaultFontFamily = 'Helvetica';
  strict protected
    class var
      fOne: JLInteger; external name 'One';
      fZero: JLInteger; external name 'Zero';
      fFalse: JLBoolean; external name 'False';
      fZeroPointZero: JLFloat; external name 'ZeroPointZero';
      ftextKeywords: JSTRRTFGenerator.Arr1InnerCharacterKeywordPair; external name 'textKeywords';
  public
    class procedure writeDocument(para1: JSTDocument; para2: JIOutputStream); static; overload;  // throws java.io.IOException
    constructor create(para1: JIOutputStream); overload;
    procedure examineElement(para1: JSTElement); overload; virtual;
    procedure writeLineBreak(); overload; virtual;  // throws java.io.IOException
    procedure writeRTFHeader(); overload; virtual;  // throws java.io.IOException
    procedure writeRTFTrailer(); overload; virtual;  // throws java.io.IOException
  strict protected
    procedure checkNumericControlWord(para1: JSTMutableAttributeSet; para2: JSTAttributeSet; para3: JLObject; para4: JLString; para5: jfloat; para6: jfloat); overload; virtual;  // throws java.io.IOException
    procedure checkControlWord(para1: JSTMutableAttributeSet; para2: JSTAttributeSet; para3: JSTRRTFAttribute); overload; virtual;  // throws java.io.IOException
    procedure checkControlWords(para1: JSTMutableAttributeSet; para2: JSTAttributeSet; para3: Arr1JSTRRTFAttribute; para4: jint); overload; virtual;  // throws java.io.IOException
    procedure checkControlWords(para1: JSTMutableAttributeSet; para2: JSTAttributeSet; var para3: array of JSTRRTFAttribute; para4: jint); overload; virtual;  // throws java.io.IOException
    procedure resetSectionAttributes(para1: JSTMutableAttributeSet); overload; virtual;  // throws java.io.IOException
  public
    procedure writeParagraphElement(para1: JSTElement); overload; virtual;  // throws java.io.IOException
  strict protected
    procedure resetParagraphAttributes(para1: JSTMutableAttributeSet); overload; virtual;  // throws java.io.IOException
    procedure resetCharacterAttributes(para1: JSTMutableAttributeSet); overload; virtual;  // throws java.io.IOException
  public
    procedure writeTextElement(para1: JSTElement); overload; virtual;  // throws java.io.IOException
    procedure writeText(para1: JSTSegment); overload; virtual;  // throws java.io.IOException
    procedure writeText(para1: JLString); overload; virtual;  // throws java.io.IOException
    procedure writeRawString(para1: JLString); overload; virtual;  // throws java.io.IOException
    procedure writeControlWord(para1: JLString); overload; virtual;  // throws java.io.IOException
    procedure writeControlWord(para1: JLString; para2: jint); overload; virtual;  // throws java.io.IOException
    procedure writeBegingroup(); overload; virtual;  // throws java.io.IOException
    procedure writeEndgroup(); overload; virtual;  // throws java.io.IOException
    procedure writeCharacter(para1: jchar); overload; virtual;  // throws java.io.IOException
  strict protected
    class function convertCharacter(para1: Arr1jint; para2: jchar): jint; static; overload;
    class function convertCharacter(var para1: array of jint; para2: jchar): jint; static; overload;
  end;

  JSTPathPlaceHolder = class external 'javax.swing.tree' name 'PathPlaceHolder' (JLObject)
  strict protected
    var
      fisNew: jboolean; external name 'isNew';
      fpath: JSTTreePath; external name 'path';
  end;

  JSTRowMapper = interface external 'javax.swing.tree' name 'RowMapper' 
    function getRowsForPaths(para1: Arr1JSTTreePath): Arr1jint; overload;
    function getRowsForPaths(var para1: array of JSTTreePath): Arr1jint; overload;
  end;

  JSTTreeCellRenderer = interface external 'javax.swing.tree' name 'TreeCellRenderer' 
    function getTreeCellRendererComponent(para1: JSJTree; para2: JLObject; para3: jboolean; para4: jboolean; para5: jboolean; para6: jint; para7: jboolean): JAComponent; overload;
  end;

  JSTTreeModel = interface external 'javax.swing.tree' name 'TreeModel' 
    function getRoot(): JLObject; overload;
    function getChild(para1: JLObject; para2: jint): JLObject; overload;
    function getChildCount(para1: JLObject): jint; overload;
    function isLeaf(para1: JLObject): jboolean; overload;
    procedure valueForPathChanged(para1: JSTTreePath; para2: JLObject); overload;
    function getIndexOfChild(para1: JLObject; para2: JLObject): jint; overload;
    procedure addTreeModelListener(para1: JSETreeModelListener); overload;
    procedure removeTreeModelListener(para1: JSETreeModelListener); overload;
  end;

  JSTTreeNode = interface external 'javax.swing.tree' name 'TreeNode' 
    function getChildAt(para1: jint): JSTTreeNode; overload;
    function getChildCount(): jint; overload;
    function getParent(): JSTTreeNode; overload;
    function getIndex(para1: JSTTreeNode): jint; overload;
    function getAllowsChildren(): jboolean; overload;
    function isLeaf(): jboolean; overload;
    function children(): JUEnumeration; overload;
  end;

  JSTTreeSelectionModel = interface external 'javax.swing.tree' name 'TreeSelectionModel' 
    const
      SINGLE_TREE_SELECTION = 1;
      CONTIGUOUS_TREE_SELECTION = 2;
      DISCONTIGUOUS_TREE_SELECTION = 4;
    procedure setSelectionMode(para1: jint); overload;
    function getSelectionMode(): jint; overload;
    procedure setSelectionPath(para1: JSTTreePath); overload;
    procedure setSelectionPaths(para1: Arr1JSTTreePath); overload;
    procedure setSelectionPaths(var para1: array of JSTTreePath); overload;
    procedure addSelectionPath(para1: JSTTreePath); overload;
    procedure addSelectionPaths(para1: Arr1JSTTreePath); overload;
    procedure addSelectionPaths(var para1: array of JSTTreePath); overload;
    procedure removeSelectionPath(para1: JSTTreePath); overload;
    procedure removeSelectionPaths(para1: Arr1JSTTreePath); overload;
    procedure removeSelectionPaths(var para1: array of JSTTreePath); overload;
    function getSelectionPath(): JSTTreePath; overload;
    function getSelectionPaths(): Arr1JSTTreePath; overload;
    function getSelectionCount(): jint; overload;
    function isPathSelected(para1: JSTTreePath): jboolean; overload;
    function isSelectionEmpty(): jboolean; overload;
    procedure clearSelection(); overload;
    procedure setRowMapper(para1: JSTRowMapper); overload;
    function getRowMapper(): JSTRowMapper; overload;
    function getSelectionRows(): Arr1jint; overload;
    function getMinSelectionRow(): jint; overload;
    function getMaxSelectionRow(): jint; overload;
    function isRowSelected(para1: jint): jboolean; overload;
    procedure resetRowSelection(); overload;
    function getLeadSelectionRow(): jint; overload;
    function getLeadSelectionPath(): JSTTreePath; overload;
    procedure addPropertyChangeListener(para1: JBPropertyChangeListener); overload;
    procedure removePropertyChangeListener(para1: JBPropertyChangeListener); overload;
    procedure addTreeSelectionListener(para1: JSETreeSelectionListener); overload;
    procedure removeTreeSelectionListener(para1: JSETreeSelectionListener); overload;
  end;

  JSUStateEditable = interface external 'javax.swing.undo' name 'StateEditable' 
    const
      RCSID = '$Id: StateEditable.java,v 1.2 1997/09/08 19:39:08 marklin Exp $';
    procedure storeState(para1: JUHashtable); overload;
    procedure restoreState(para1: JUHashtable); overload;
  end;

  JSUUndoableEdit = interface external 'javax.swing.undo' name 'UndoableEdit' 
    procedure undo(); overload;  // throws javax.swing.undo.CannotUndoException
    function canUndo(): jboolean; overload;
    procedure redo(); overload;  // throws javax.swing.undo.CannotRedoException
    function canRedo(): jboolean; overload;
    procedure die(); overload;
    function addEdit(para1: JSUUndoableEdit): jboolean; overload;
    function replaceEdit(para1: JSUUndoableEdit): jboolean; overload;
    function isSignificant(): jboolean; overload;
    function getPresentationName(): JLString; overload;
    function getUndoPresentationName(): JLString; overload;
    function getRedoPresentationName(): JLString; overload;
  end;

  JSUUndoableEditSupport = class external 'javax.swing.undo' name 'UndoableEditSupport' (JLObject)
  strict protected
    var
      fupdateLevel: jint; external name 'updateLevel';
      fcompoundEdit: JSUCompoundEdit; external name 'compoundEdit';
      flisteners: JUVector; external name 'listeners';
      frealSource: JLObject; external name 'realSource';
  public
    constructor create(); overload;
    constructor create(para1: JLObject); overload;
    procedure addUndoableEditListener(para1: JSEUndoableEditListener); overload; virtual;
    procedure removeUndoableEditListener(para1: JSEUndoableEditListener); overload; virtual;
    function getUndoableEditListeners(): Arr1JSEUndoableEditListener; overload; virtual;
  strict protected
    procedure _postEdit(para1: JSUUndoableEdit); overload; virtual;
  public
    procedure postEdit(para1: JSUUndoableEdit); overload; virtual;
    function getUpdateLevel(): jint; overload; virtual;
    procedure beginUpdate(); overload; virtual;
  strict protected
    function createCompoundEdit(): JSUCompoundEdit; overload; virtual;
  public
    procedure endUpdate(); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JTDiagnosticListener = interface external 'javax.tools' name 'DiagnosticListener' 
    procedure report(para1: JTDiagnostic); overload;
  end;

  JTFileObject = interface external 'javax.tools' name 'FileObject' 
    function toUri(): JNURI; overload;
    function getName(): JLString; overload;
    function openInputStream(): JIInputStream; overload;  // throws java.io.IOException
    function openOutputStream(): JIOutputStream; overload;  // throws java.io.IOException
    function openReader(para1: jboolean): JIReader; overload;  // throws java.io.IOException
    function getCharContent(para1: jboolean): JLCharSequence; overload;  // throws java.io.IOException
    function openWriter(): JIWriter; overload;  // throws java.io.IOException
    function getLastModified(): jlong; overload;
    function delete(): jboolean; overload;
  end;

  JTOptionChecker = interface external 'javax.tools' name 'OptionChecker' 
    function isSupportedOption(para1: JLString): jint; overload;
  end;

  JTTool = interface external 'javax.tools' name 'Tool' 
    function run(para1: JIInputStream; para2: JIOutputStream; para3: JIOutputStream; para4: Arr1JLString): jint; overload;
    function run(para1: JIInputStream; para2: JIOutputStream; para3: JIOutputStream; const para4: array of JLString): jint; overload;
    function getSourceVersions(): JUSet; overload;
  end;

  JTToolProvider = class external 'javax.tools' name 'ToolProvider' (JLObject)
  public
    type
      InnerLazy = class;
      Arr1InnerLazy = array of InnerLazy;
      Arr2InnerLazy = array of Arr1InnerLazy;
      Arr3InnerLazy = array of Arr2InnerLazy;
      InnerLazy = class external 'javax.tools' name 'Lazy' 
      end;

  public
    class function getSystemJavaCompiler(): JTJavaCompiler; static; overload;
    class function getSystemToolClassLoader(): JLClassLoader; static; overload;
  end;

  JTXXAResource = interface external 'javax.transaction.xa' name 'XAResource' 
    const
      TMENDRSCAN = 8388608;
      TMFAIL = 536870912;
      TMJOIN = 2097152;
      TMNOFLAGS = 0;
      TMONEPHASE = 1073741824;
      TMRESUME = 134217728;
      TMSTARTRSCAN = 16777216;
      TMSUCCESS = 67108864;
      TMSUSPEND = 33554432;
      XA_RDONLY = 3;
      XA_OK = 0;
    procedure commit(para1: JTXXid; para2: jboolean); overload;  // throws javax.transaction.xa.XAException
    procedure &end(para1: JTXXid; para2: jint); overload;  // throws javax.transaction.xa.XAException
    procedure forget(para1: JTXXid); overload;  // throws javax.transaction.xa.XAException
    function getTransactionTimeout(): jint; overload;  // throws javax.transaction.xa.XAException
    function isSameRM(para1: JTXXAResource): jboolean; overload;  // throws javax.transaction.xa.XAException
    function prepare(para1: JTXXid): jint; overload;  // throws javax.transaction.xa.XAException
    function recover(para1: jint): Arr1JTXXid; overload;  // throws javax.transaction.xa.XAException
    procedure rollback(para1: JTXXid); overload;  // throws javax.transaction.xa.XAException
    function setTransactionTimeout(para1: jint): jboolean; overload;  // throws javax.transaction.xa.XAException
    procedure start(para1: JTXXid; para2: jint); overload;  // throws javax.transaction.xa.XAException
  end;

  JTXXid = interface external 'javax.transaction.xa' name 'Xid' 
    const
      MAXGTRIDSIZE = 64;
      MAXBQUALSIZE = 64;
    function getFormatId(): jint; overload;
    function getGlobalTransactionId(): Arr1jbyte; overload;
    function getBranchQualifier(): Arr1jbyte; overload;
  end;

  JXXMLConstants = class sealed external 'javax.xml' name 'XMLConstants' (JLObject)
  public
    const
      NULL_NS_URI = '';
      DEFAULT_NS_PREFIX = '';
      XML_NS_URI = 'http://www.w3.org/XML/1998/namespace';
      XML_NS_PREFIX = 'xml';
      XMLNS_ATTRIBUTE_NS_URI = 'http://www.w3.org/2000/xmlns/';
      XMLNS_ATTRIBUTE = 'xmlns';
      W3C_XML_SCHEMA_NS_URI = 'http://www.w3.org/2001/XMLSchema';
      W3C_XML_SCHEMA_INSTANCE_NS_URI = 'http://www.w3.org/2001/XMLSchema-instance';
      W3C_XPATH_DATATYPE_NS_URI = 'http://www.w3.org/2003/11/xpath-datatypes';
      XML_DTD_NS_URI = 'http://www.w3.org/TR/REC-xml';
      RELAXNG_NS_URI = 'http://relaxng.org/ns/structure/1.0';
      FEATURE_SECURE_PROCESSING = 'http://javax.xml.XMLConstants/feature/secure-processing';
  end;

  JXBBinder = class abstract external 'javax.xml.bind' name 'Binder' (JLObject)
  public
    constructor create(); overload;
    function unmarshal(para1: JLObject): JLObject; overload; virtual; abstract;  // throws javax.xml.bind.JAXBException
    function unmarshal(para1: JLObject; para2: JLClass): JXBJAXBElement; overload; virtual; abstract;  // throws javax.xml.bind.JAXBException
    procedure marshal(para1: JLObject; para2: JLObject); overload; virtual; abstract;  // throws javax.xml.bind.JAXBException
    function getXMLNode(para1: JLObject): JLObject; overload; virtual; abstract;
    function getJAXBNode(para1: JLObject): JLObject; overload; virtual; abstract;
    function updateXML(para1: JLObject): JLObject; overload; virtual; abstract;  // throws javax.xml.bind.JAXBException
    function updateXML(para1: JLObject; para2: JLObject): JLObject; overload; virtual; abstract;  // throws javax.xml.bind.JAXBException
    function updateJAXB(para1: JLObject): JLObject; overload; virtual; abstract;  // throws javax.xml.bind.JAXBException
    procedure setSchema(para1: JXVSchema); overload; virtual; abstract;
    function getSchema(): JXVSchema; overload; virtual; abstract;
    procedure setEventHandler(para1: JXBValidationEventHandler); overload; virtual; abstract;  // throws javax.xml.bind.JAXBException
    function getEventHandler(): JXBValidationEventHandler; overload; virtual; abstract;  // throws javax.xml.bind.JAXBException
    procedure setProperty(para1: JLString; para2: JLObject); overload; virtual; abstract;  // throws javax.xml.bind.PropertyException
    function getProperty(para1: JLString): JLObject; overload; virtual; abstract;  // throws javax.xml.bind.PropertyException
  end;

  JXBContextFinder = class external 'javax.xml.bind' name 'ContextFinder' (JLObject)
  end;

  JXBDatatypeConverter = class sealed external 'javax.xml.bind' name 'DatatypeConverter' (JLObject)
  public
    class procedure setDatatypeConverter(para1: JXBDatatypeConverterInterface); static; overload;
    class function parseString(para1: JLString): JLString; static; overload;
    class function parseInteger(para1: JLString): JMBigInteger; static; overload;
    class function parseInt(para1: JLString): jint; static; overload;
    class function parseLong(para1: JLString): jlong; static; overload;
    class function parseShort(para1: JLString): jshort; static; overload;
    class function parseDecimal(para1: JLString): JMBigDecimal; static; overload;
    class function parseFloat(para1: JLString): jfloat; static; overload;
    class function parseDouble(para1: JLString): jdouble; static; overload;
    class function parseBoolean(para1: JLString): jboolean; static; overload;
    class function parseByte(para1: JLString): jbyte; static; overload;
    class function parseQName(para1: JLString; para2: JXNNamespaceContext): JXNQName; static; overload;
    class function parseDateTime(para1: JLString): JUCalendar; static; overload;
    class function parseBase64Binary(para1: JLString): Arr1jbyte; static; overload;
    class function parseHexBinary(para1: JLString): Arr1jbyte; static; overload;
    class function parseUnsignedInt(para1: JLString): jlong; static; overload;
    class function parseUnsignedShort(para1: JLString): jint; static; overload;
    class function parseTime(para1: JLString): JUCalendar; static; overload;
    class function parseDate(para1: JLString): JUCalendar; static; overload;
    class function parseAnySimpleType(para1: JLString): JLString; static; overload;
    class function printString(para1: JLString): JLString; static; overload;
    class function printInteger(para1: JMBigInteger): JLString; static; overload;
    class function printInt(para1: jint): JLString; static; overload;
    class function printLong(para1: jlong): JLString; static; overload;
    class function printShort(para1: jshort): JLString; static; overload;
    class function printDecimal(para1: JMBigDecimal): JLString; static; overload;
    class function printFloat(para1: jfloat): JLString; static; overload;
    class function printDouble(para1: jdouble): JLString; static; overload;
    class function printBoolean(para1: jboolean): JLString; static; overload;
    class function printByte(para1: jbyte): JLString; static; overload;
    class function printQName(para1: JXNQName; para2: JXNNamespaceContext): JLString; static; overload;
    class function printDateTime(para1: JUCalendar): JLString; static; overload;
    class function printBase64Binary(para1: Arr1jbyte): JLString; static; overload;
    class function printBase64Binary(var para1: array of jbyte): JLString; static; overload;
    class function printHexBinary(para1: Arr1jbyte): JLString; static; overload;
    class function printHexBinary(var para1: array of jbyte): JLString; static; overload;
    class function printUnsignedInt(para1: jlong): JLString; static; overload;
    class function printUnsignedShort(para1: jint): JLString; static; overload;
    class function printTime(para1: JUCalendar): JLString; static; overload;
    class function printDate(para1: JUCalendar): JLString; static; overload;
    class function printAnySimpleType(para1: JLString): JLString; static; overload;
  end;

  JXBDatatypeConverterInterface = interface external 'javax.xml.bind' name 'DatatypeConverterInterface' 
    function parseString(para1: JLString): JLString; overload;
    function parseInteger(para1: JLString): JMBigInteger; overload;
    function parseInt(para1: JLString): jint; overload;
    function parseLong(para1: JLString): jlong; overload;
    function parseShort(para1: JLString): jshort; overload;
    function parseDecimal(para1: JLString): JMBigDecimal; overload;
    function parseFloat(para1: JLString): jfloat; overload;
    function parseDouble(para1: JLString): jdouble; overload;
    function parseBoolean(para1: JLString): jboolean; overload;
    function parseByte(para1: JLString): jbyte; overload;
    function parseQName(para1: JLString; para2: JXNNamespaceContext): JXNQName; overload;
    function parseDateTime(para1: JLString): JUCalendar; overload;
    function parseBase64Binary(para1: JLString): Arr1jbyte; overload;
    function parseHexBinary(para1: JLString): Arr1jbyte; overload;
    function parseUnsignedInt(para1: JLString): jlong; overload;
    function parseUnsignedShort(para1: JLString): jint; overload;
    function parseTime(para1: JLString): JUCalendar; overload;
    function parseDate(para1: JLString): JUCalendar; overload;
    function parseAnySimpleType(para1: JLString): JLString; overload;
    function printString(para1: JLString): JLString; overload;
    function printInteger(para1: JMBigInteger): JLString; overload;
    function printInt(para1: jint): JLString; overload;
    function printLong(para1: jlong): JLString; overload;
    function printShort(para1: jshort): JLString; overload;
    function printDecimal(para1: JMBigDecimal): JLString; overload;
    function printFloat(para1: jfloat): JLString; overload;
    function printDouble(para1: jdouble): JLString; overload;
    function printBoolean(para1: jboolean): JLString; overload;
    function printByte(para1: jbyte): JLString; overload;
    function printQName(para1: JXNQName; para2: JXNNamespaceContext): JLString; overload;
    function printDateTime(para1: JUCalendar): JLString; overload;
    function printBase64Binary(para1: Arr1jbyte): JLString; overload;
    function printBase64Binary(var para1: array of jbyte): JLString; overload;
    function printHexBinary(para1: Arr1jbyte): JLString; overload;
    function printHexBinary(var para1: array of jbyte): JLString; overload;
    function printUnsignedInt(para1: jlong): JLString; overload;
    function printUnsignedShort(para1: jint): JLString; overload;
    function printTime(para1: JUCalendar): JLString; overload;
    function printDate(para1: JUCalendar): JLString; overload;
    function printAnySimpleType(para1: JLString): JLString; overload;
  end;

  JXBElement = interface external 'javax.xml.bind' name 'Element' 
  end;

  JXBJAXB = class sealed external 'javax.xml.bind' name 'JAXB' (JLObject)
  public
    type
      InnerCache = class;
      Arr1InnerCache = array of InnerCache;
      Arr2InnerCache = array of Arr1InnerCache;
      Arr3InnerCache = array of Arr2InnerCache;
      InnerCache = class sealed external 'javax.xml.bind' name 'Cache' 
      end;

  public
    class function unmarshal(para1: JIFile; para2: JLClass): JLObject; static; overload;
    class function unmarshal(para1: JNURL; para2: JLClass): JLObject; static; overload;
    class function unmarshal(para1: JNURI; para2: JLClass): JLObject; static; overload;
    class function unmarshal(para1: JLString; para2: JLClass): JLObject; static; overload;
    class function unmarshal(para1: JIInputStream; para2: JLClass): JLObject; static; overload;
    class function unmarshal(para1: JIReader; para2: JLClass): JLObject; static; overload;
    class function unmarshal(para1: JXTSource; para2: JLClass): JLObject; static; overload;
    class procedure marshal(para1: JLObject; para2: JIFile); static; overload;
    class procedure marshal(para1: JLObject; para2: JNURL); static; overload;
    class procedure marshal(para1: JLObject; para2: JNURI); static; overload;
    class procedure marshal(para1: JLObject; para2: JLString); static; overload;
    class procedure marshal(para1: JLObject; para2: JIOutputStream); static; overload;
    class procedure marshal(para1: JLObject; para2: JIWriter); static; overload;
    class procedure marshal(para1: JLObject; para2: JXTResult); static; overload;
  end;

  JXBJAXBContext = class abstract external 'javax.xml.bind' name 'JAXBContext' (JLObject)
  public
    const
      JAXB_CONTEXT_FACTORY = 'javax.xml.bind.context.factory';
  strict protected
    constructor create(); overload;
  public
    class function newInstance(para1: JLString): JXBJAXBContext; static; overload;  // throws javax.xml.bind.JAXBException
    class function newInstance(para1: JLString; para2: JLClassLoader): JXBJAXBContext; static; overload;  // throws javax.xml.bind.JAXBException
    class function newInstance(para1: JLString; para2: JLClassLoader; para3: JUMap): JXBJAXBContext; static; overload;  // throws javax.xml.bind.JAXBException
    class function newInstance(para1: Arr1JLClass): JXBJAXBContext; static; overload;  // throws javax.xml.bind.JAXBException
    class function newInstance(const para1: array of JLClass): JXBJAXBContext; static; overload;  // throws javax.xml.bind.JAXBException
    class function newInstance(para1: Arr1JLClass; para2: JUMap): JXBJAXBContext; static; overload;  // throws javax.xml.bind.JAXBException
    class function newInstance(var para1: array of JLClass; para2: JUMap): JXBJAXBContext; static; overload;  // throws javax.xml.bind.JAXBException
    function createUnmarshaller(): JXBUnmarshaller; overload; virtual; abstract;  // throws javax.xml.bind.JAXBException
    function createMarshaller(): JXBMarshaller; overload; virtual; abstract;  // throws javax.xml.bind.JAXBException
    function createValidator(): JXBValidator; overload; virtual; abstract;  // throws javax.xml.bind.JAXBException
    function createBinder(para1: JLClass): JXBBinder; overload; virtual;
    function createBinder(): JXBBinder; overload; virtual;
    function createJAXBIntrospector(): JXBJAXBIntrospector; overload; virtual;
    procedure generateSchema(para1: JXBSchemaOutputResolver); overload; virtual;  // throws java.io.IOException
  end;

  JXBJAXBIntrospector = class abstract external 'javax.xml.bind' name 'JAXBIntrospector' (JLObject)
  public
    constructor create(); overload;
    function isElement(para1: JLObject): jboolean; overload; virtual; abstract;
    function getElementName(para1: JLObject): JXNQName; overload; virtual; abstract;
    class function getValue(para1: JLObject): JLObject; static; overload;
  end;

  JXBMarshaller = interface external 'javax.xml.bind' name 'Marshaller' 
    type
      InnerListener = class;
      Arr1InnerListener = array of InnerListener;
      Arr2InnerListener = array of Arr1InnerListener;
      Arr3InnerListener = array of Arr2InnerListener;
      InnerListener = class abstract external 'javax.xml.bind' name 'Listener' (JLObject)
      public
        constructor create(); overload;
        procedure beforeMarshal(para1: JLObject); overload; virtual;
        procedure afterMarshal(para1: JLObject); overload; virtual;
      end;

    const
      JAXB_ENCODING = 'jaxb.encoding';
      JAXB_FORMATTED_OUTPUT = 'jaxb.formatted.output';
      JAXB_SCHEMA_LOCATION = 'jaxb.schemaLocation';
      JAXB_NO_NAMESPACE_SCHEMA_LOCATION = 'jaxb.noNamespaceSchemaLocation';
      JAXB_FRAGMENT = 'jaxb.fragment';
    procedure marshal(para1: JLObject; para2: JXTResult); overload;  // throws javax.xml.bind.JAXBException
    procedure marshal(para1: JLObject; para2: JIOutputStream); overload;  // throws javax.xml.bind.JAXBException
    procedure marshal(para1: JLObject; para2: JIFile); overload;  // throws javax.xml.bind.JAXBException
    procedure marshal(para1: JLObject; para2: JIWriter); overload;  // throws javax.xml.bind.JAXBException
    procedure marshal(para1: JLObject; para2: OXSContentHandler); overload;  // throws javax.xml.bind.JAXBException
    procedure marshal(para1: JLObject; para2: OWDNode); overload;  // throws javax.xml.bind.JAXBException
    procedure marshal(para1: JLObject; para2: JXSXMLStreamWriter); overload;  // throws javax.xml.bind.JAXBException
    procedure marshal(para1: JLObject; para2: JXSXMLEventWriter); overload;  // throws javax.xml.bind.JAXBException
    function getNode(para1: JLObject): OWDNode; overload;  // throws javax.xml.bind.JAXBException
    procedure setProperty(para1: JLString; para2: JLObject); overload;  // throws javax.xml.bind.PropertyException
    function getProperty(para1: JLString): JLObject; overload;  // throws javax.xml.bind.PropertyException
    procedure setEventHandler(para1: JXBValidationEventHandler); overload;  // throws javax.xml.bind.JAXBException
    function getEventHandler(): JXBValidationEventHandler; overload;  // throws javax.xml.bind.JAXBException
    procedure setAdapter(para1: JXBAAXmlAdapter); overload;
    procedure setAdapter(para1: JLClass; para2: JXBAAXmlAdapter); overload;
    function getAdapter(para1: JLClass): JXBAAXmlAdapter; overload;
    procedure setAttachmentMarshaller(para1: JXBAAttachmentMarshaller); overload;
    function getAttachmentMarshaller(): JXBAAttachmentMarshaller; overload;
    procedure setSchema(para1: JXVSchema); overload;
    function getSchema(): JXVSchema; overload;
    procedure setListener(para1: JXBMarshaller.InnerListener); overload;
    function getListener(): JXBMarshaller.InnerListener; overload;
  end;

  JXBMessages = class external 'javax.xml.bind' name 'Messages' (JLObject)
  end;

  JXBSchemaOutputResolver = class abstract external 'javax.xml.bind' name 'SchemaOutputResolver' (JLObject)
  public
    constructor create(); overload;
    function createOutput(para1: JLString; para2: JLString): JXTResult; overload; virtual; abstract;  // throws java.io.IOException
  end;

  JXBUnmarshaller = interface external 'javax.xml.bind' name 'Unmarshaller' 
    type
      InnerListener = class;
      Arr1InnerListener = array of InnerListener;
      Arr2InnerListener = array of Arr1InnerListener;
      Arr3InnerListener = array of Arr2InnerListener;
      InnerListener = class abstract external 'javax.xml.bind' name 'Listener' (JLObject)
      public
        constructor create(); overload;
        procedure beforeUnmarshal(para1: JLObject; para2: JLObject); overload; virtual;
        procedure afterUnmarshal(para1: JLObject; para2: JLObject); overload; virtual;
      end;

    function unmarshal(para1: JIFile): JLObject; overload;  // throws javax.xml.bind.JAXBException
    function unmarshal(para1: JIInputStream): JLObject; overload;  // throws javax.xml.bind.JAXBException
    function unmarshal(para1: JIReader): JLObject; overload;  // throws javax.xml.bind.JAXBException
    function unmarshal(para1: JNURL): JLObject; overload;  // throws javax.xml.bind.JAXBException
    function unmarshal(para1: OXSInputSource): JLObject; overload;  // throws javax.xml.bind.JAXBException
    function unmarshal(para1: OWDNode): JLObject; overload;  // throws javax.xml.bind.JAXBException
    function unmarshal(para1: OWDNode; para2: JLClass): JXBJAXBElement; overload;  // throws javax.xml.bind.JAXBException
    function unmarshal(para1: JXTSource): JLObject; overload;  // throws javax.xml.bind.JAXBException
    function unmarshal(para1: JXTSource; para2: JLClass): JXBJAXBElement; overload;  // throws javax.xml.bind.JAXBException
    function unmarshal(para1: JXSXMLStreamReader): JLObject; overload;  // throws javax.xml.bind.JAXBException
    function unmarshal(para1: JXSXMLStreamReader; para2: JLClass): JXBJAXBElement; overload;  // throws javax.xml.bind.JAXBException
    function unmarshal(para1: JXSXMLEventReader): JLObject; overload;  // throws javax.xml.bind.JAXBException
    function unmarshal(para1: JXSXMLEventReader; para2: JLClass): JXBJAXBElement; overload;  // throws javax.xml.bind.JAXBException
    function getUnmarshallerHandler(): JXBUnmarshallerHandler; overload;
    procedure setValidating(para1: jboolean); overload;  // throws javax.xml.bind.JAXBException
    function isValidating(): jboolean; overload;  // throws javax.xml.bind.JAXBException
    procedure setEventHandler(para1: JXBValidationEventHandler); overload;  // throws javax.xml.bind.JAXBException
    function getEventHandler(): JXBValidationEventHandler; overload;  // throws javax.xml.bind.JAXBException
    procedure setProperty(para1: JLString; para2: JLObject); overload;  // throws javax.xml.bind.PropertyException
    function getProperty(para1: JLString): JLObject; overload;  // throws javax.xml.bind.PropertyException
    procedure setSchema(para1: JXVSchema); overload;
    function getSchema(): JXVSchema; overload;
    procedure setAdapter(para1: JXBAAXmlAdapter); overload;
    procedure setAdapter(para1: JLClass; para2: JXBAAXmlAdapter); overload;
    function getAdapter(para1: JLClass): JXBAAXmlAdapter; overload;
    procedure setAttachmentUnmarshaller(para1: JXBAAttachmentUnmarshaller); overload;
    function getAttachmentUnmarshaller(): JXBAAttachmentUnmarshaller; overload;
    procedure setListener(para1: JXBUnmarshaller.InnerListener); overload;
    function getListener(): JXBUnmarshaller.InnerListener; overload;
  end;

  JXBValidationEvent = interface external 'javax.xml.bind' name 'ValidationEvent' 
    const
      WARNING = 0;
      ERROR = 1;
      FATAL_ERROR = 2;
    function getSeverity(): jint; overload;
    function getMessage(): JLString; overload;
    function getLinkedException(): JLThrowable; overload;
    function getLocator(): JXBValidationEventLocator; overload;
  end;

  JXBValidationEventHandler = interface external 'javax.xml.bind' name 'ValidationEventHandler' 
    function handleEvent(para1: JXBValidationEvent): jboolean; overload;
  end;

  JXBValidationEventLocator = interface external 'javax.xml.bind' name 'ValidationEventLocator' 
    function getURL(): JNURL; overload;
    function getOffset(): jint; overload;
    function getLineNumber(): jint; overload;
    function getColumnNumber(): jint; overload;
    function getObject(): JLObject; overload;
    function getNode(): OWDNode; overload;
  end;

  JXBValidator = interface external 'javax.xml.bind' name 'Validator' 
    procedure setEventHandler(para1: JXBValidationEventHandler); overload;  // throws javax.xml.bind.JAXBException
    function getEventHandler(): JXBValidationEventHandler; overload;  // throws javax.xml.bind.JAXBException
    function validate(para1: JLObject): jboolean; overload;  // throws javax.xml.bind.JAXBException
    function validateRoot(para1: JLObject): jboolean; overload;  // throws javax.xml.bind.JAXBException
    procedure setProperty(para1: JLString; para2: JLObject); overload;  // throws javax.xml.bind.PropertyException
    function getProperty(para1: JLString): JLObject; overload;  // throws javax.xml.bind.PropertyException
  end;

  JXBWhiteSpaceProcessor = class abstract external 'javax.xml.bind' name 'WhiteSpaceProcessor' (JLObject)
  public
    class function replace(para1: JLString): JLString; static; overload;
    class function replace(para1: JLCharSequence): JLCharSequence; static; overload;
    class function trim(para1: JLCharSequence): JLCharSequence; static; overload;
    class function collapse(para1: JLString): JLString; static; overload;
    class function collapse(para1: JLCharSequence): JLCharSequence; static; overload;
    class function isWhiteSpace(para1: JLCharSequence): jboolean; static; overload; final;
    class function isWhiteSpace(para1: jchar): jboolean; static; overload; final;
  strict protected
    class function isWhiteSpaceExceptSpace(para1: jchar): jboolean; static; overload; final;
  end;

  JXBADomHandler = interface external 'javax.xml.bind.annotation' name 'DomHandler' 
    function createUnmarshaller(para1: JXBValidationEventHandler): JXTResult; overload;
    function getElement(para1: JXTResult): JLObject; overload;
    function marshal(para1: JLObject; para2: JXBValidationEventHandler): JXTSource; overload;
  end;

  JXBAAXmlAdapter = class abstract external 'javax.xml.bind.annotation.adapters' name 'XmlAdapter' (JLObject)
  strict protected
    constructor create(); overload;
  public
    function unmarshal(para1: JLObject): JLObject; overload; virtual; abstract;  // throws java.lang.Exception
    function marshal(para1: JLObject): JLObject; overload; virtual; abstract;  // throws java.lang.Exception
  end;

  JXBAAttachmentMarshaller = class abstract external 'javax.xml.bind.attachment' name 'AttachmentMarshaller' (JLObject)
  public
    constructor create(); overload;
    function addMtomAttachment(para1: JADataHandler; para2: JLString; para3: JLString): JLString; overload; virtual; abstract;
    function addMtomAttachment(para1: Arr1jbyte; para2: jint; para3: jint; para4: JLString; para5: JLString; para6: JLString): JLString; overload; virtual; abstract;
    function addMtomAttachment(var para1: array of jbyte; para2: jint; para3: jint; para4: JLString; para5: JLString; para6: JLString): JLString; overload; virtual; abstract;
    function isXOPPackage(): jboolean; overload; virtual;
    function addSwaRefAttachment(para1: JADataHandler): JLString; overload; virtual; abstract;
  end;

  JXBAAttachmentUnmarshaller = class abstract external 'javax.xml.bind.attachment' name 'AttachmentUnmarshaller' (JLObject)
  public
    constructor create(); overload;
    function getAttachmentAsDataHandler(para1: JLString): JADataHandler; overload; virtual; abstract;
    function getAttachmentAsByteArray(para1: JLString): Arr1jbyte; overload; virtual; abstract;
    function isXOPPackage(): jboolean; overload; virtual;
  end;

  JXBHMessages = class external 'javax.xml.bind.helpers' name 'Messages' (JLObject)
  end;

  JXBUMessages = class external 'javax.xml.bind.util' name 'Messages' (JLObject)
  end;

  JXCAlgorithmMethod = interface external 'javax.xml.crypto' name 'AlgorithmMethod' 
    function getAlgorithm(): JLString; overload;
    function getParameterSpec(): JSSAlgorithmParameterSpec; overload;
  end;

  JXCData = interface external 'javax.xml.crypto' name 'Data' 
  end;

  JXCKeySelector = class abstract external 'javax.xml.crypto' name 'KeySelector' (JLObject)
  public
    type
      InnerSingletonKeySelector = class;
      Arr1InnerSingletonKeySelector = array of InnerSingletonKeySelector;
      Arr2InnerSingletonKeySelector = array of Arr1InnerSingletonKeySelector;
      Arr3InnerSingletonKeySelector = array of Arr2InnerSingletonKeySelector;
      InnerSingletonKeySelector = class external 'javax.xml.crypto' name 'SingletonKeySelector' 
      end;

  public
    type
      InnerPurpose = class;
      Arr1InnerPurpose = array of InnerPurpose;
      Arr2InnerPurpose = array of Arr1InnerPurpose;
      Arr3InnerPurpose = array of Arr2InnerPurpose;
      InnerPurpose = class external 'javax.xml.crypto' name 'Purpose' (JLObject)
      public
        final class var
          fSIGN: JXCKeySelector.InnerPurpose; external name 'SIGN';
          fVERIFY: JXCKeySelector.InnerPurpose; external name 'VERIFY';
          fENCRYPT: JXCKeySelector.InnerPurpose; external name 'ENCRYPT';
          fDECRYPT: JXCKeySelector.InnerPurpose; external name 'DECRYPT';
      public
        function toString(): JLString; overload; virtual;
      end;

  strict protected
    constructor create(); overload;
  public
    function select(para1: JXCDKKeyInfo; para2: JXCKeySelector.InnerPurpose; para3: JXCAlgorithmMethod; para4: JXCXMLCryptoContext): JXCKeySelectorResult; overload; virtual; abstract;  // throws javax.xml.crypto.KeySelectorException
    class function singletonKeySelector(para1: JSKey): JXCKeySelector; static; overload;
  end;

  JXCKeySelectorResult = interface external 'javax.xml.crypto' name 'KeySelectorResult' 
    function getKey(): JSKey; overload;
  end;

  JXCURIDereferencer = interface external 'javax.xml.crypto' name 'URIDereferencer' 
    function dereference(para1: JXCURIReference; para2: JXCXMLCryptoContext): JXCData; overload;  // throws javax.xml.crypto.URIReferenceException
  end;

  JXCURIReference = interface external 'javax.xml.crypto' name 'URIReference' 
    function getURI(): JLString; overload;
    function getType(): JLString; overload;
  end;

  JXCXMLCryptoContext = interface external 'javax.xml.crypto' name 'XMLCryptoContext' 
    function getBaseURI(): JLString; overload;
    procedure setBaseURI(para1: JLString); overload;
    function getKeySelector(): JXCKeySelector; overload;
    procedure setKeySelector(para1: JXCKeySelector); overload;
    function getURIDereferencer(): JXCURIDereferencer; overload;
    procedure setURIDereferencer(para1: JXCURIDereferencer); overload;
    function getNamespacePrefix(para1: JLString; para2: JLString): JLString; overload;
    function putNamespacePrefix(para1: JLString; para2: JLString): JLString; overload;
    function getDefaultNamespacePrefix(): JLString; overload;
    procedure setDefaultNamespacePrefix(para1: JLString); overload;
    function setProperty(para1: JLString; para2: JLObject): JLObject; overload;
    function getProperty(para1: JLString): JLObject; overload;
    function get(para1: JLObject): JLObject; overload;
    function put(para1: JLObject; para2: JLObject): JLObject; overload;
  end;

  JXCXMLStructure = interface external 'javax.xml.crypto' name 'XMLStructure' 
    function isFeatureSupported(para1: JLString): jboolean; overload;
  end;

  JXCDXMLSignatureFactory = class abstract external 'javax.xml.crypto.dsig' name 'XMLSignatureFactory' (JLObject)
  strict protected
    constructor create(); overload;
  public
    class function getInstance(para1: JLString): JXCDXMLSignatureFactory; static; overload;
    class function getInstance(para1: JLString; para2: JSProvider): JXCDXMLSignatureFactory; static; overload;
    class function getInstance(para1: JLString; para2: JLString): JXCDXMLSignatureFactory; static; overload;  // throws java.security.NoSuchProviderException
    class function getInstance(): JXCDXMLSignatureFactory; static; overload;
    function getMechanismType(): JLString; overload; virtual; final;
    function getProvider(): JSProvider; overload; virtual; final;
    function newXMLSignature(para1: JXCDSignedInfo; para2: JXCDKKeyInfo): JXCDXMLSignature; overload; virtual; abstract;
    function newXMLSignature(para1: JXCDSignedInfo; para2: JXCDKKeyInfo; para3: JUList; para4: JLString; para5: JLString): JXCDXMLSignature; overload; virtual; abstract;
    function newReference(para1: JLString; para2: JXCDDigestMethod): JXCDReference; overload; virtual; abstract;
    function newReference(para1: JLString; para2: JXCDDigestMethod; para3: JUList; para4: JLString; para5: JLString): JXCDReference; overload; virtual; abstract;
    function newReference(para1: JLString; para2: JXCDDigestMethod; para3: JUList; para4: JLString; para5: JLString; para6: Arr1jbyte): JXCDReference; overload; virtual; abstract;
    function newReference(para1: JLString; para2: JXCDDigestMethod; para3: JUList; para4: JLString; para5: JLString; var para6: array of jbyte): JXCDReference; overload; virtual; abstract;
    function newReference(para1: JLString; para2: JXCDDigestMethod; para3: JUList; para4: JXCData; para5: JUList; para6: JLString; para7: JLString): JXCDReference; overload; virtual; abstract;
    function newSignedInfo(para1: JXCDCanonicalizationMethod; para2: JXCDSignatureMethod; para3: JUList): JXCDSignedInfo; overload; virtual; abstract;
    function newSignedInfo(para1: JXCDCanonicalizationMethod; para2: JXCDSignatureMethod; para3: JUList; para4: JLString): JXCDSignedInfo; overload; virtual; abstract;
    function newXMLObject(para1: JUList; para2: JLString; para3: JLString; para4: JLString): JXCDXMLObject; overload; virtual; abstract;
    function newManifest(para1: JUList): JXCDManifest; overload; virtual; abstract;
    function newManifest(para1: JUList; para2: JLString): JXCDManifest; overload; virtual; abstract;
    function newSignatureProperty(para1: JUList; para2: JLString; para3: JLString): JXCDSignatureProperty; overload; virtual; abstract;
    function newSignatureProperties(para1: JUList; para2: JLString): JXCDSignatureProperties; overload; virtual; abstract;
    function newDigestMethod(para1: JLString; para2: JXCDSDigestMethodParameterSpec): JXCDDigestMethod; overload; virtual; abstract;  // throws java.security.NoSuchAlgorithmException, java.security.InvalidAlgorithmParameterException
    function newSignatureMethod(para1: JLString; para2: JXCDSSignatureMethodParameterSpec): JXCDSignatureMethod; overload; virtual; abstract;  // throws java.security.NoSuchAlgorithmException, java.security.InvalidAlgorithmParameterException
    function newTransform(para1: JLString; para2: JXCDSTransformParameterSpec): JXCDTransform; overload; virtual; abstract;  // throws java.security.NoSuchAlgorithmException, java.security.InvalidAlgorithmParameterException
    function newTransform(para1: JLString; para2: JXCXMLStructure): JXCDTransform; overload; virtual; abstract;  // throws java.security.NoSuchAlgorithmException, java.security.InvalidAlgorithmParameterException
    function newCanonicalizationMethod(para1: JLString; para2: JXCDSC14NMethodParameterSpec): JXCDCanonicalizationMethod; overload; virtual; abstract;  // throws java.security.NoSuchAlgorithmException, java.security.InvalidAlgorithmParameterException
    function newCanonicalizationMethod(para1: JLString; para2: JXCXMLStructure): JXCDCanonicalizationMethod; overload; virtual; abstract;  // throws java.security.NoSuchAlgorithmException, java.security.InvalidAlgorithmParameterException
    function getKeyInfoFactory(): JXCDKKeyInfoFactory; overload; virtual; final;
    function unmarshalXMLSignature(para1: JXCDXMLValidateContext): JXCDXMLSignature; overload; virtual; abstract;  // throws javax.xml.crypto.MarshalException
    function unmarshalXMLSignature(para1: JXCXMLStructure): JXCDXMLSignature; overload; virtual; abstract;  // throws javax.xml.crypto.MarshalException
    function isFeatureSupported(para1: JLString): jboolean; overload; virtual; abstract;
    function getURIDereferencer(): JXCURIDereferencer; overload; virtual; abstract;
  end;

  JXCDKKeyInfoFactory = class abstract external 'javax.xml.crypto.dsig.keyinfo' name 'KeyInfoFactory' (JLObject)
  strict protected
    constructor create(); overload;
  public
    class function getInstance(para1: JLString): JXCDKKeyInfoFactory; static; overload;
    class function getInstance(para1: JLString; para2: JSProvider): JXCDKKeyInfoFactory; static; overload;
    class function getInstance(para1: JLString; para2: JLString): JXCDKKeyInfoFactory; static; overload;  // throws java.security.NoSuchProviderException
    class function getInstance(): JXCDKKeyInfoFactory; static; overload;
    function getMechanismType(): JLString; overload; virtual; final;
    function getProvider(): JSProvider; overload; virtual; final;
    function newKeyInfo(para1: JUList): JXCDKKeyInfo; overload; virtual; abstract;
    function newKeyInfo(para1: JUList; para2: JLString): JXCDKKeyInfo; overload; virtual; abstract;
    function newKeyName(para1: JLString): JXCDKKeyName; overload; virtual; abstract;
    function newKeyValue(para1: JSPublicKey): JXCDKKeyValue; overload; virtual; abstract;  // throws java.security.KeyException
    function newPGPData(para1: Arr1jbyte): JXCDKPGPData; overload; virtual; abstract;
    function newPGPData(var para1: array of jbyte): JXCDKPGPData; overload; virtual; abstract;
    function newPGPData(para1: Arr1jbyte; para2: Arr1jbyte; para3: JUList): JXCDKPGPData; overload; virtual; abstract;
    function newPGPData(var para1: array of jbyte; var para2: array of jbyte; para3: JUList): JXCDKPGPData; overload; virtual; abstract;
    function newPGPData(para1: Arr1jbyte; para2: JUList): JXCDKPGPData; overload; virtual; abstract;
    function newPGPData(var para1: array of jbyte; para2: JUList): JXCDKPGPData; overload; virtual; abstract;
    function newRetrievalMethod(para1: JLString): JXCDKRetrievalMethod; overload; virtual; abstract;
    function newRetrievalMethod(para1: JLString; para2: JLString; para3: JUList): JXCDKRetrievalMethod; overload; virtual; abstract;
    function newX509Data(para1: JUList): JXCDKX509Data; overload; virtual; abstract;
    function newX509IssuerSerial(para1: JLString; para2: JMBigInteger): JXCDKX509IssuerSerial; overload; virtual; abstract;
    function isFeatureSupported(para1: JLString): jboolean; overload; virtual; abstract;
    function getURIDereferencer(): JXCURIDereferencer; overload; virtual; abstract;
    function unmarshalKeyInfo(para1: JXCXMLStructure): JXCDKKeyInfo; overload; virtual; abstract;  // throws javax.xml.crypto.MarshalException
  end;

  JXCDSXPathType = class external 'javax.xml.crypto.dsig.spec' name 'XPathType' (JLObject)
  public
    type
      InnerFilter = class;
      Arr1InnerFilter = array of InnerFilter;
      Arr2InnerFilter = array of Arr1InnerFilter;
      Arr3InnerFilter = array of Arr2InnerFilter;
      InnerFilter = class external 'javax.xml.crypto.dsig.spec' name 'Filter' (JLObject)
      public
        final class var
          fINTERSECT: JXCDSXPathType.InnerFilter; external name 'INTERSECT';
          fSUBTRACT: JXCDSXPathType.InnerFilter; external name 'SUBTRACT';
          fUNION: JXCDSXPathType.InnerFilter; external name 'UNION';
      public
        function toString(): JLString; overload; virtual;
      end;

  public
    constructor create(para1: JLString; para2: JXCDSXPathType.InnerFilter); overload;
    constructor create(para1: JLString; para2: JXCDSXPathType.InnerFilter; para3: JUMap); overload;
    function getExpression(): JLString; overload; virtual;
    function getFilter(): JXCDSXPathType.InnerFilter; overload; virtual;
    function getNamespaceMap(): JUMap; overload; virtual;
  end;

  JXDDatatypeConstants = class sealed external 'javax.xml.datatype' name 'DatatypeConstants' (JLObject)
  public
    type
      InnerField = class;
      Arr1InnerField = array of InnerField;
      Arr2InnerField = array of Arr1InnerField;
      Arr3InnerField = array of Arr2InnerField;
      InnerField = class sealed external 'javax.xml.datatype' name 'Field' (JLObject)
      public
        function toString(): JLString; overload; virtual;
        function getId(): jint; overload; virtual;
      end;

  public
    const
      JANUARY = 1;
      FEBRUARY = 2;
      MARCH = 3;
      APRIL = 4;
      MAY = 5;
      JUNE = 6;
      JULY = 7;
      AUGUST = 8;
      SEPTEMBER = 9;
      OCTOBER = 10;
      NOVEMBER = 11;
      DECEMBER = 12;
      LESSER = -1;
      EQUAL = 0;
      GREATER = 1;
      INDETERMINATE = 2;
      FIELD_UNDEFINED = -2147483648;
  public
    final class var
      fYEARS: JXDDatatypeConstants.InnerField; external name 'YEARS';
      fMONTHS: JXDDatatypeConstants.InnerField; external name 'MONTHS';
      fDAYS: JXDDatatypeConstants.InnerField; external name 'DAYS';
      fHOURS: JXDDatatypeConstants.InnerField; external name 'HOURS';
      fMINUTES: JXDDatatypeConstants.InnerField; external name 'MINUTES';
      fSECONDS: JXDDatatypeConstants.InnerField; external name 'SECONDS';
      fDATETIME: JXNQName; external name 'DATETIME';
      fTIME: JXNQName; external name 'TIME';
      fDATE: JXNQName; external name 'DATE';
      fGYEARMONTH: JXNQName; external name 'GYEARMONTH';
      fGMONTHDAY: JXNQName; external name 'GMONTHDAY';
      fGYEAR: JXNQName; external name 'GYEAR';
      fGMONTH: JXNQName; external name 'GMONTH';
      fGDAY: JXNQName; external name 'GDAY';
      fDURATION: JXNQName; external name 'DURATION';
      fDURATION_DAYTIME: JXNQName; external name 'DURATION_DAYTIME';
      fDURATION_YEARMONTH: JXNQName; external name 'DURATION_YEARMONTH';
  public
    const
      MAX_TIMEZONE_OFFSET = -840;
      MIN_TIMEZONE_OFFSET = 840;
  end;

  JXDDatatypeFactory = class abstract external 'javax.xml.datatype' name 'DatatypeFactory' (JLObject)
  public
    const
      DATATYPEFACTORY_PROPERTY = 'javax.xml.datatype.DatatypeFactory';
  public
    final class var
      fDATATYPEFACTORY_IMPLEMENTATION_CLASS: JLString; external name 'DATATYPEFACTORY_IMPLEMENTATION_CLASS';
  strict protected
    constructor create(); overload;
  public
    class function newInstance(): JXDDatatypeFactory; static; overload;  // throws javax.xml.datatype.DatatypeConfigurationException
    class function newInstance(para1: JLString; para2: JLClassLoader): JXDDatatypeFactory; static; overload;  // throws javax.xml.datatype.DatatypeConfigurationException
    function newDuration(para1: JLString): JXDDuration; overload; virtual; abstract;
    function newDuration(para1: jlong): JXDDuration; overload; virtual; abstract;
    function newDuration(para1: jboolean; para2: JMBigInteger; para3: JMBigInteger; para4: JMBigInteger; para5: JMBigInteger; para6: JMBigInteger; para7: JMBigDecimal): JXDDuration; overload; virtual; abstract;
    function newDuration(para1: jboolean; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint): JXDDuration; overload; virtual;
    function newDurationDayTime(para1: JLString): JXDDuration; overload; virtual;
    function newDurationDayTime(para1: jlong): JXDDuration; overload; virtual;
    function newDurationDayTime(para1: jboolean; para2: JMBigInteger; para3: JMBigInteger; para4: JMBigInteger; para5: JMBigInteger): JXDDuration; overload; virtual;
    function newDurationDayTime(para1: jboolean; para2: jint; para3: jint; para4: jint; para5: jint): JXDDuration; overload; virtual;
    function newDurationYearMonth(para1: JLString): JXDDuration; overload; virtual;
    function newDurationYearMonth(para1: jlong): JXDDuration; overload; virtual;
    function newDurationYearMonth(para1: jboolean; para2: JMBigInteger; para3: JMBigInteger): JXDDuration; overload; virtual;
    function newDurationYearMonth(para1: jboolean; para2: jint; para3: jint): JXDDuration; overload; virtual;
    function newXMLGregorianCalendar(): JXDXMLGregorianCalendar; overload; virtual; abstract;
    function newXMLGregorianCalendar(para1: JLString): JXDXMLGregorianCalendar; overload; virtual; abstract;
    function newXMLGregorianCalendar(para1: JUGregorianCalendar): JXDXMLGregorianCalendar; overload; virtual; abstract;
    function newXMLGregorianCalendar(para1: JMBigInteger; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: JMBigDecimal; para8: jint): JXDXMLGregorianCalendar; overload; virtual; abstract;
    function newXMLGregorianCalendar(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint): JXDXMLGregorianCalendar; overload; virtual;
    function newXMLGregorianCalendarDate(para1: jint; para2: jint; para3: jint; para4: jint): JXDXMLGregorianCalendar; overload; virtual;
    function newXMLGregorianCalendarTime(para1: jint; para2: jint; para3: jint; para4: jint): JXDXMLGregorianCalendar; overload; virtual;
    function newXMLGregorianCalendarTime(para1: jint; para2: jint; para3: jint; para4: JMBigDecimal; para5: jint): JXDXMLGregorianCalendar; overload; virtual;
    function newXMLGregorianCalendarTime(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint): JXDXMLGregorianCalendar; overload; virtual;
  end;

  JXDFactoryFinder = class external 'javax.xml.datatype' name 'FactoryFinder' (JLObject)
  public
    type
      InnerConfigurationError = class;
      Arr1InnerConfigurationError = array of InnerConfigurationError;
      Arr2InnerConfigurationError = array of Arr1InnerConfigurationError;
      Arr3InnerConfigurationError = array of Arr2InnerConfigurationError;
      InnerConfigurationError = class external 'javax.xml.datatype' name 'ConfigurationError' 
      end;

  end;

  JXDSecuritySupport = class external 'javax.xml.datatype' name 'SecuritySupport' (JLObject)
  end;

  JXNNamespaceContext = interface external 'javax.xml.namespace' name 'NamespaceContext' 
    function getNamespaceURI(para1: JLString): JLString; overload;
    function getPrefix(para1: JLString): JLString; overload;
    function getPrefixes(para1: JLString): JUIterator; overload;
  end;

  JXPDocumentBuilder = class abstract external 'javax.xml.parsers' name 'DocumentBuilder' (JLObject)
  strict protected
    constructor create(); overload;
  public
    procedure reset(); overload; virtual;
    function parse(para1: JIInputStream): OWDDocument; overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    function parse(para1: JIInputStream; para2: JLString): OWDDocument; overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    function parse(para1: JLString): OWDDocument; overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    function parse(para1: JIFile): OWDDocument; overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    function parse(para1: OXSInputSource): OWDDocument; overload; virtual; abstract;  // throws org.xml.sax.SAXException, java.io.IOException
    function isNamespaceAware(): jboolean; overload; virtual; abstract;
    function isValidating(): jboolean; overload; virtual; abstract;
    procedure setEntityResolver(para1: OXSEntityResolver); overload; virtual; abstract;
    procedure setErrorHandler(para1: OXSErrorHandler); overload; virtual; abstract;
    function newDocument(): OWDDocument; overload; virtual; abstract;
    function getDOMImplementation(): OWDDOMImplementation; overload; virtual; abstract;
    function getSchema(): JXVSchema; overload; virtual;
    function isXIncludeAware(): jboolean; overload; virtual;
  end;

  JXPDocumentBuilderFactory = class abstract external 'javax.xml.parsers' name 'DocumentBuilderFactory' (JLObject)
  strict protected
    constructor create(); overload;
  public
    class function newInstance(): JXPDocumentBuilderFactory; static; overload;
    class function newInstance(para1: JLString; para2: JLClassLoader): JXPDocumentBuilderFactory; static; overload;
    function newDocumentBuilder(): JXPDocumentBuilder; overload; virtual; abstract;  // throws javax.xml.parsers.ParserConfigurationException
    procedure setNamespaceAware(para1: jboolean); overload; virtual;
    procedure setValidating(para1: jboolean); overload; virtual;
    procedure setIgnoringElementContentWhitespace(para1: jboolean); overload; virtual;
    procedure setExpandEntityReferences(para1: jboolean); overload; virtual;
    procedure setIgnoringComments(para1: jboolean); overload; virtual;
    procedure setCoalescing(para1: jboolean); overload; virtual;
    function isNamespaceAware(): jboolean; overload; virtual;
    function isValidating(): jboolean; overload; virtual;
    function isIgnoringElementContentWhitespace(): jboolean; overload; virtual;
    function isExpandEntityReferences(): jboolean; overload; virtual;
    function isIgnoringComments(): jboolean; overload; virtual;
    function isCoalescing(): jboolean; overload; virtual;
    procedure setAttribute(para1: JLString; para2: JLObject); overload; virtual; abstract;  // throws java.lang.IllegalArgumentException
    function getAttribute(para1: JLString): JLObject; overload; virtual; abstract;  // throws java.lang.IllegalArgumentException
    procedure setFeature(para1: JLString; para2: jboolean); overload; virtual; abstract;  // throws javax.xml.parsers.ParserConfigurationException
    function getFeature(para1: JLString): jboolean; overload; virtual; abstract;  // throws javax.xml.parsers.ParserConfigurationException
    function getSchema(): JXVSchema; overload; virtual;
    procedure setSchema(para1: JXVSchema); overload; virtual;
    procedure setXIncludeAware(para1: jboolean); overload; virtual;
    function isXIncludeAware(): jboolean; overload; virtual;
  end;

  JXPFactoryFinder = class external 'javax.xml.parsers' name 'FactoryFinder' (JLObject)
  public
    type
      InnerConfigurationError = class;
      Arr1InnerConfigurationError = array of InnerConfigurationError;
      Arr2InnerConfigurationError = array of Arr1InnerConfigurationError;
      Arr3InnerConfigurationError = array of Arr2InnerConfigurationError;
      InnerConfigurationError = class external 'javax.xml.parsers' name 'ConfigurationError' 
      end;

  end;

  JXPSAXParser = class abstract external 'javax.xml.parsers' name 'SAXParser' (JLObject)
  strict protected
    constructor create(); overload;
  public
    procedure reset(); overload; virtual;
    procedure parse(para1: JIInputStream; para2: OXSHandlerBase); overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    procedure parse(para1: JIInputStream; para2: OXSHandlerBase; para3: JLString); overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    procedure parse(para1: JIInputStream; para2: OXSHDefaultHandler); overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    procedure parse(para1: JIInputStream; para2: OXSHDefaultHandler; para3: JLString); overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    procedure parse(para1: JLString; para2: OXSHandlerBase); overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    procedure parse(para1: JLString; para2: OXSHDefaultHandler); overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    procedure parse(para1: JIFile; para2: OXSHandlerBase); overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    procedure parse(para1: JIFile; para2: OXSHDefaultHandler); overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    procedure parse(para1: OXSInputSource; para2: OXSHandlerBase); overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    procedure parse(para1: OXSInputSource; para2: OXSHDefaultHandler); overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    function getParser(): OXSParser; overload; virtual; abstract;  // throws org.xml.sax.SAXException
    function getXMLReader(): OXSXMLReader; overload; virtual; abstract;  // throws org.xml.sax.SAXException
    function isNamespaceAware(): jboolean; overload; virtual; abstract;
    function isValidating(): jboolean; overload; virtual; abstract;
    procedure setProperty(para1: JLString; para2: JLObject); overload; virtual; abstract;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    function getProperty(para1: JLString): JLObject; overload; virtual; abstract;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    function getSchema(): JXVSchema; overload; virtual;
    function isXIncludeAware(): jboolean; overload; virtual;
  end;

  JXPSAXParserFactory = class abstract external 'javax.xml.parsers' name 'SAXParserFactory' (JLObject)
  strict protected
    constructor create(); overload;
  public
    class function newInstance(): JXPSAXParserFactory; static; overload;
    class function newInstance(para1: JLString; para2: JLClassLoader): JXPSAXParserFactory; static; overload;
    function newSAXParser(): JXPSAXParser; overload; virtual; abstract;  // throws javax.xml.parsers.ParserConfigurationException, org.xml.sax.SAXException
    procedure setNamespaceAware(para1: jboolean); overload; virtual;
    procedure setValidating(para1: jboolean); overload; virtual;
    function isNamespaceAware(): jboolean; overload; virtual;
    function isValidating(): jboolean; overload; virtual;
    procedure setFeature(para1: JLString; para2: jboolean); overload; virtual; abstract;  // throws javax.xml.parsers.ParserConfigurationException, org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    function getFeature(para1: JLString): jboolean; overload; virtual; abstract;  // throws javax.xml.parsers.ParserConfigurationException, org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    function getSchema(): JXVSchema; overload; virtual;
    procedure setSchema(para1: JXVSchema); overload; virtual;
    procedure setXIncludeAware(para1: jboolean); overload; virtual;
    function isXIncludeAware(): jboolean; overload; virtual;
  end;

  JXPSecuritySupport = class external 'javax.xml.parsers' name 'SecuritySupport' (JLObject)
  end;

  JXSAttachmentPart = class abstract external 'javax.xml.soap' name 'AttachmentPart' (JLObject)
  public
    constructor create(); overload;
    function getSize(): jint; overload; virtual; abstract;  // throws javax.xml.soap.SOAPException
    procedure clearContent(); overload; virtual; abstract;
    function getContent(): JLObject; overload; virtual; abstract;  // throws javax.xml.soap.SOAPException
    function getRawContent(): JIInputStream; overload; virtual; abstract;  // throws javax.xml.soap.SOAPException
    function getRawContentBytes(): Arr1jbyte; overload; virtual; abstract;  // throws javax.xml.soap.SOAPException
    function getBase64Content(): JIInputStream; overload; virtual; abstract;  // throws javax.xml.soap.SOAPException
    procedure setContent(para1: JLObject; para2: JLString); overload; virtual; abstract;
    procedure setRawContent(para1: JIInputStream; para2: JLString); overload; virtual; abstract;  // throws javax.xml.soap.SOAPException
    procedure setRawContentBytes(para1: Arr1jbyte; para2: jint; para3: jint; para4: JLString); overload; virtual; abstract;  // throws javax.xml.soap.SOAPException
    procedure setRawContentBytes(var para1: array of jbyte; para2: jint; para3: jint; para4: JLString); overload; virtual; abstract;  // throws javax.xml.soap.SOAPException
    procedure setBase64Content(para1: JIInputStream; para2: JLString); overload; virtual; abstract;  // throws javax.xml.soap.SOAPException
    function getDataHandler(): JADataHandler; overload; virtual; abstract;  // throws javax.xml.soap.SOAPException
    procedure setDataHandler(para1: JADataHandler); overload; virtual; abstract;
    function getContentId(): JLString; overload; virtual;
    function getContentLocation(): JLString; overload; virtual;
    function getContentType(): JLString; overload; virtual;
    procedure setContentId(para1: JLString); overload; virtual;
    procedure setContentLocation(para1: JLString); overload; virtual;
    procedure setContentType(para1: JLString); overload; virtual;
    procedure removeMimeHeader(para1: JLString); overload; virtual; abstract;
    procedure removeAllMimeHeaders(); overload; virtual; abstract;
    function getMimeHeader(para1: JLString): Arr1JLString; overload; virtual; abstract;
    procedure setMimeHeader(para1: JLString; para2: JLString); overload; virtual; abstract;
    procedure addMimeHeader(para1: JLString; para2: JLString); overload; virtual; abstract;
    function getAllMimeHeaders(): JUIterator; overload; virtual; abstract;
    function getMatchingMimeHeaders(para1: Arr1JLString): JUIterator; overload; virtual; abstract;
    function getMatchingMimeHeaders(var para1: array of JLString): JUIterator; overload; virtual; abstract;
    function getNonMatchingMimeHeaders(para1: Arr1JLString): JUIterator; overload; virtual; abstract;
    function getNonMatchingMimeHeaders(var para1: array of JLString): JUIterator; overload; virtual; abstract;
  end;

  JXSoapFactoryFinder = class external 'javax.xml.soap' name 'FactoryFinder' (JLObject)
  end;

  JXSMessageFactory = class abstract external 'javax.xml.soap' name 'MessageFactory' (JLObject)
  public
    constructor create(); overload;
    class function newInstance(): JXSMessageFactory; static; overload;  // throws javax.xml.soap.SOAPException
    class function newInstance(para1: JLString): JXSMessageFactory; static; overload;  // throws javax.xml.soap.SOAPException
    function createMessage(): JXSSOAPMessage; overload; virtual; abstract;  // throws javax.xml.soap.SOAPException
    function createMessage(para1: JXSMimeHeaders; para2: JIInputStream): JXSSOAPMessage; overload; virtual; abstract;  // throws java.io.IOException, javax.xml.soap.SOAPException
  end;

  JXSMimeHeader = class external 'javax.xml.soap' name 'MimeHeader' (JLObject)
  public
    constructor create(para1: JLString; para2: JLString); overload;
    function getName(): JLString; overload; virtual;
    function getValue(): JLString; overload; virtual;
  end;

  JXSMimeHeaders = class external 'javax.xml.soap' name 'MimeHeaders' (JLObject)
  public
    type
      InnerMatchingIterator = class;
      Arr1InnerMatchingIterator = array of InnerMatchingIterator;
      Arr2InnerMatchingIterator = array of Arr1InnerMatchingIterator;
      Arr3InnerMatchingIterator = array of Arr2InnerMatchingIterator;
      InnerMatchingIterator = class external 'javax.xml.soap' name 'MatchingIterator' 
      end;

  public
    constructor create(); overload;
    function getHeader(para1: JLString): Arr1JLString; overload; virtual;
    procedure setHeader(para1: JLString; para2: JLString); overload; virtual;
    procedure addHeader(para1: JLString; para2: JLString); overload; virtual;
    procedure removeHeader(para1: JLString); overload; virtual;
    procedure removeAllHeaders(); overload; virtual;
    function getAllHeaders(): JUIterator; overload; virtual;
    function getMatchingHeaders(para1: Arr1JLString): JUIterator; overload; virtual;
    function getMatchingHeaders(var para1: array of JLString): JUIterator; overload; virtual;
    function getNonMatchingHeaders(para1: Arr1JLString): JUIterator; overload; virtual;
    function getNonMatchingHeaders(var para1: array of JLString): JUIterator; overload; virtual;
  end;

  JXSName = interface external 'javax.xml.soap' name 'Name' 
    function getLocalName(): JLString; overload;
    function getQualifiedName(): JLString; overload;
    function getPrefix(): JLString; overload;
    function getURI(): JLString; overload;
  end;

  JXSSAAJMetaFactory = class abstract external 'javax.xml.soap' name 'SAAJMetaFactory' (JLObject)
  strict protected
    constructor create(); overload;
    function newMessageFactory(para1: JLString): JXSMessageFactory; overload; virtual; abstract;  // throws javax.xml.soap.SOAPException
    function newSOAPFactory(para1: JLString): JXSSOAPFactory; overload; virtual; abstract;  // throws javax.xml.soap.SOAPException
  end;

  JXSSOAPConnection = class abstract external 'javax.xml.soap' name 'SOAPConnection' (JLObject)
  public
    constructor create(); overload;
    function call(para1: JXSSOAPMessage; para2: JLObject): JXSSOAPMessage; overload; virtual; abstract;  // throws javax.xml.soap.SOAPException
    function get(para1: JLObject): JXSSOAPMessage; overload; virtual;  // throws javax.xml.soap.SOAPException
    procedure close(); overload; virtual; abstract;  // throws javax.xml.soap.SOAPException
  end;

  JXSSOAPConnectionFactory = class abstract external 'javax.xml.soap' name 'SOAPConnectionFactory' (JLObject)
  public
    constructor create(); overload;
    class function newInstance(): JXSSOAPConnectionFactory; static; overload;  // throws javax.xml.soap.SOAPException, java.lang.UnsupportedOperationException
    function createConnection(): JXSSOAPConnection; overload; virtual; abstract;  // throws javax.xml.soap.SOAPException
  end;

  JXSSOAPConstants = interface external 'javax.xml.soap' name 'SOAPConstants' 
    const
      DYNAMIC_SOAP_PROTOCOL = 'Dynamic Protocol';
      SOAP_1_1_PROTOCOL = 'SOAP 1.1 Protocol';
      SOAP_1_2_PROTOCOL = 'SOAP 1.2 Protocol';
      DEFAULT_SOAP_PROTOCOL = 'SOAP 1.1 Protocol';
      URI_NS_SOAP_1_1_ENVELOPE = 'http://schemas.xmlsoap.org/soap/envelope/';
      URI_NS_SOAP_1_2_ENVELOPE = 'http://www.w3.org/2003/05/soap-envelope';
      URI_NS_SOAP_ENVELOPE = 'http://schemas.xmlsoap.org/soap/envelope/';
      URI_NS_SOAP_ENCODING = 'http://schemas.xmlsoap.org/soap/encoding/';
      URI_NS_SOAP_1_2_ENCODING = 'http://www.w3.org/2003/05/soap-encoding';
      SOAP_1_1_CONTENT_TYPE = 'text/xml';
      SOAP_1_2_CONTENT_TYPE = 'application/soap+xml';
      URI_SOAP_ACTOR_NEXT = 'http://schemas.xmlsoap.org/soap/actor/next';
      URI_SOAP_1_2_ROLE_NEXT = 'http://www.w3.org/2003/05/soap-envelope/role/next';
      URI_SOAP_1_2_ROLE_NONE = 'http://www.w3.org/2003/05/soap-envelope/role/none';
      URI_SOAP_1_2_ROLE_ULTIMATE_RECEIVER = 'http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver';
      SOAP_ENV_PREFIX = 'env';
    final class var
      fSOAP_VERSIONMISMATCH_FAULT: JXNQName; external name 'SOAP_VERSIONMISMATCH_FAULT';
      fSOAP_MUSTUNDERSTAND_FAULT: JXNQName; external name 'SOAP_MUSTUNDERSTAND_FAULT';
      fSOAP_DATAENCODINGUNKNOWN_FAULT: JXNQName; external name 'SOAP_DATAENCODINGUNKNOWN_FAULT';
      fSOAP_SENDER_FAULT: JXNQName; external name 'SOAP_SENDER_FAULT';
      fSOAP_RECEIVER_FAULT: JXNQName; external name 'SOAP_RECEIVER_FAULT';
  end;

  JXSSOAPElementFactory = class external 'javax.xml.soap' name 'SOAPElementFactory' (JLObject)
  public
    function create_(para1: JXSName): JXSSOAPElement; external name 'create'; overload; virtual;  // throws javax.xml.soap.SOAPException
    function create_(para1: JLString): JXSSOAPElement; external name 'create'; overload; virtual;  // throws javax.xml.soap.SOAPException
    function create_(para1: JLString; para2: JLString; para3: JLString): JXSSOAPElement; external name 'create'; overload; virtual;  // throws javax.xml.soap.SOAPException
    class function newInstance(): JXSSOAPElementFactory; static; overload;  // throws javax.xml.soap.SOAPException
  end;

  JXSSOAPFactory = class abstract external 'javax.xml.soap' name 'SOAPFactory' (JLObject)
  public
    constructor create(); overload;
    function createElement(para1: OWDElement): JXSSOAPElement; overload; virtual;  // throws javax.xml.soap.SOAPException
    function createElement(para1: JXSName): JXSSOAPElement; overload; virtual; abstract;  // throws javax.xml.soap.SOAPException
    function createElement(para1: JXNQName): JXSSOAPElement; overload; virtual;  // throws javax.xml.soap.SOAPException
    function createElement(para1: JLString): JXSSOAPElement; overload; virtual; abstract;  // throws javax.xml.soap.SOAPException
    function createElement(para1: JLString; para2: JLString; para3: JLString): JXSSOAPElement; overload; virtual; abstract;  // throws javax.xml.soap.SOAPException
    function createDetail(): JXSDetail; overload; virtual; abstract;  // throws javax.xml.soap.SOAPException
    function createFault(para1: JLString; para2: JXNQName): JXSSOAPFault; overload; virtual; abstract;  // throws javax.xml.soap.SOAPException
    function createFault(): JXSSOAPFault; overload; virtual; abstract;  // throws javax.xml.soap.SOAPException
    function createName(para1: JLString; para2: JLString; para3: JLString): JXSName; overload; virtual; abstract;  // throws javax.xml.soap.SOAPException
    function createName(para1: JLString): JXSName; overload; virtual; abstract;  // throws javax.xml.soap.SOAPException
    class function newInstance(): JXSSOAPFactory; static; overload;  // throws javax.xml.soap.SOAPException
    class function newInstance(para1: JLString): JXSSOAPFactory; static; overload;  // throws javax.xml.soap.SOAPException
  end;

  JXSSOAPMessage = class abstract external 'javax.xml.soap' name 'SOAPMessage' (JLObject)
  public
    const
      CHARACTER_SET_ENCODING = 'javax.xml.soap.character-set-encoding';
      WRITE_XML_DECLARATION = 'javax.xml.soap.write-xml-declaration';
  public
    constructor create(); overload;
    procedure setContentDescription(para1: JLString); overload; virtual; abstract;
    function getContentDescription(): JLString; overload; virtual; abstract;
    function getSOAPPart(): JXSSOAPPart; overload; virtual; abstract;
    function getSOAPBody(): JXSSOAPBody; overload; virtual;  // throws javax.xml.soap.SOAPException
    function getSOAPHeader(): JXSSOAPHeader; overload; virtual;  // throws javax.xml.soap.SOAPException
    procedure removeAllAttachments(); overload; virtual; abstract;
    function countAttachments(): jint; overload; virtual; abstract;
    function getAttachments(): JUIterator; overload; virtual; abstract;
    function getAttachments(para1: JXSMimeHeaders): JUIterator; overload; virtual; abstract;
    procedure removeAttachments(para1: JXSMimeHeaders); overload; virtual; abstract;
    function getAttachment(para1: JXSSOAPElement): JXSAttachmentPart; overload; virtual; abstract;  // throws javax.xml.soap.SOAPException
    procedure addAttachmentPart(para1: JXSAttachmentPart); overload; virtual; abstract;
    function createAttachmentPart(): JXSAttachmentPart; overload; virtual; abstract;
    function createAttachmentPart(para1: JADataHandler): JXSAttachmentPart; overload; virtual;
    function getMimeHeaders(): JXSMimeHeaders; overload; virtual; abstract;
    function createAttachmentPart(para1: JLObject; para2: JLString): JXSAttachmentPart; overload; virtual;
    procedure saveChanges(); overload; virtual; abstract;  // throws javax.xml.soap.SOAPException
    function saveRequired(): jboolean; overload; virtual; abstract;
    procedure writeTo(para1: JIOutputStream); overload; virtual; abstract;  // throws javax.xml.soap.SOAPException, java.io.IOException
    procedure setProperty(para1: JLString; para2: JLObject); overload; virtual;  // throws javax.xml.soap.SOAPException
    function getProperty(para1: JLString): JLObject; overload; virtual;  // throws javax.xml.soap.SOAPException
  end;

  JXSEventFilter = interface external 'javax.xml.stream' name 'EventFilter' 
    function accept(para1: JXSEXMLEvent): jboolean; overload;
  end;

  JXStreamFactoryFinder = class external 'javax.xml.stream' name 'FactoryFinder' (JLObject)
  public
    type
      InnerConfigurationError = class;
      Arr1InnerConfigurationError = array of InnerConfigurationError;
      Arr2InnerConfigurationError = array of Arr1InnerConfigurationError;
      Arr3InnerConfigurationError = array of Arr2InnerConfigurationError;
      InnerConfigurationError = class external 'javax.xml.stream' name 'ConfigurationError' 
      end;

  end;

  JXSLocation = interface external 'javax.xml.stream' name 'Location' 
    function getLineNumber(): jint; overload;
    function getColumnNumber(): jint; overload;
    function getCharacterOffset(): jint; overload;
    function getPublicId(): JLString; overload;
    function getSystemId(): JLString; overload;
  end;

  JXSSecuritySupport = class external 'javax.xml.stream' name 'SecuritySupport' (JLObject)
  end;

  JXSStreamFilter = interface external 'javax.xml.stream' name 'StreamFilter' 
    function accept(para1: JXSXMLStreamReader): jboolean; overload;
  end;

  JXSXMLEventFactory = class abstract external 'javax.xml.stream' name 'XMLEventFactory' (JLObject)
  strict protected
    constructor create(); overload;
  public
    class function newInstance(): JXSXMLEventFactory; static; overload;  // throws javax.xml.stream.FactoryConfigurationError
    class function newFactory(): JXSXMLEventFactory; static; overload;  // throws javax.xml.stream.FactoryConfigurationError
    class function newInstance(para1: JLString; para2: JLClassLoader): JXSXMLEventFactory; static; overload;  // throws javax.xml.stream.FactoryConfigurationError
    class function newFactory(para1: JLString; para2: JLClassLoader): JXSXMLEventFactory; static; overload;  // throws javax.xml.stream.FactoryConfigurationError
    procedure setLocation(para1: JXSLocation); overload; virtual; abstract;
    function createAttribute(para1: JLString; para2: JLString; para3: JLString; para4: JLString): JXSEAttribute; overload; virtual; abstract;
    function createAttribute(para1: JLString; para2: JLString): JXSEAttribute; overload; virtual; abstract;
    function createAttribute(para1: JXNQName; para2: JLString): JXSEAttribute; overload; virtual; abstract;
    function createNamespace(para1: JLString): JXSENamespace; overload; virtual; abstract;
    function createNamespace(para1: JLString; para2: JLString): JXSENamespace; overload; virtual; abstract;
    function createStartElement(para1: JXNQName; para2: JUIterator; para3: JUIterator): JXSEStartElement; overload; virtual; abstract;
    function createStartElement(para1: JLString; para2: JLString; para3: JLString): JXSEStartElement; overload; virtual; abstract;
    function createStartElement(para1: JLString; para2: JLString; para3: JLString; para4: JUIterator; para5: JUIterator): JXSEStartElement; overload; virtual; abstract;
    function createStartElement(para1: JLString; para2: JLString; para3: JLString; para4: JUIterator; para5: JUIterator; para6: JXNNamespaceContext): JXSEStartElement; overload; virtual; abstract;
    function createEndElement(para1: JXNQName; para2: JUIterator): JXSEEndElement; overload; virtual; abstract;
    function createEndElement(para1: JLString; para2: JLString; para3: JLString): JXSEEndElement; overload; virtual; abstract;
    function createEndElement(para1: JLString; para2: JLString; para3: JLString; para4: JUIterator): JXSEEndElement; overload; virtual; abstract;
    function createCharacters(para1: JLString): JXSECharacters; overload; virtual; abstract;
    function createCData(para1: JLString): JXSECharacters; overload; virtual; abstract;
    function createSpace(para1: JLString): JXSECharacters; overload; virtual; abstract;
    function createIgnorableSpace(para1: JLString): JXSECharacters; overload; virtual; abstract;
    function createStartDocument(): JXSEStartDocument; overload; virtual; abstract;
    function createStartDocument(para1: JLString; para2: JLString; para3: jboolean): JXSEStartDocument; overload; virtual; abstract;
    function createStartDocument(para1: JLString; para2: JLString): JXSEStartDocument; overload; virtual; abstract;
    function createStartDocument(para1: JLString): JXSEStartDocument; overload; virtual; abstract;
    function createEndDocument(): JXSEEndDocument; overload; virtual; abstract;
    function createEntityReference(para1: JLString; para2: JXSEEntityDeclaration): JXSEEntityReference; overload; virtual; abstract;
    function createComment(para1: JLString): JXSEComment; overload; virtual; abstract;
    function createProcessingInstruction(para1: JLString; para2: JLString): JXSEProcessingInstruction; overload; virtual; abstract;
    function createDTD(para1: JLString): JXSEDTD; overload; virtual; abstract;
  end;

  JXSXMLInputFactory = class abstract external 'javax.xml.stream' name 'XMLInputFactory' (JLObject)
  public
    const
      IS_NAMESPACE_AWARE = 'javax.xml.stream.isNamespaceAware';
      IS_VALIDATING = 'javax.xml.stream.isValidating';
      IS_COALESCING = 'javax.xml.stream.isCoalescing';
      IS_REPLACING_ENTITY_REFERENCES = 'javax.xml.stream.isReplacingEntityReferences';
      IS_SUPPORTING_EXTERNAL_ENTITIES = 'javax.xml.stream.isSupportingExternalEntities';
      SUPPORT_DTD = 'javax.xml.stream.supportDTD';
      REPORTER = 'javax.xml.stream.reporter';
      RESOLVER = 'javax.xml.stream.resolver';
      ALLOCATOR = 'javax.xml.stream.allocator';
  strict protected
    constructor create(); overload;
  public
    class function newInstance(): JXSXMLInputFactory; static; overload;  // throws javax.xml.stream.FactoryConfigurationError
    class function newFactory(): JXSXMLInputFactory; static; overload;  // throws javax.xml.stream.FactoryConfigurationError
    class function newInstance(para1: JLString; para2: JLClassLoader): JXSXMLInputFactory; static; overload;  // throws javax.xml.stream.FactoryConfigurationError
    class function newFactory(para1: JLString; para2: JLClassLoader): JXSXMLInputFactory; static; overload;  // throws javax.xml.stream.FactoryConfigurationError
    function createXMLStreamReader(para1: JIReader): JXSXMLStreamReader; overload; virtual; abstract;  // throws javax.xml.stream.XMLStreamException
    function createXMLStreamReader(para1: JXTSource): JXSXMLStreamReader; overload; virtual; abstract;  // throws javax.xml.stream.XMLStreamException
    function createXMLStreamReader(para1: JIInputStream): JXSXMLStreamReader; overload; virtual; abstract;  // throws javax.xml.stream.XMLStreamException
    function createXMLStreamReader(para1: JIInputStream; para2: JLString): JXSXMLStreamReader; overload; virtual; abstract;  // throws javax.xml.stream.XMLStreamException
    function createXMLStreamReader(para1: JLString; para2: JIInputStream): JXSXMLStreamReader; overload; virtual; abstract;  // throws javax.xml.stream.XMLStreamException
    function createXMLStreamReader(para1: JLString; para2: JIReader): JXSXMLStreamReader; overload; virtual; abstract;  // throws javax.xml.stream.XMLStreamException
    function createXMLEventReader(para1: JIReader): JXSXMLEventReader; overload; virtual; abstract;  // throws javax.xml.stream.XMLStreamException
    function createXMLEventReader(para1: JLString; para2: JIReader): JXSXMLEventReader; overload; virtual; abstract;  // throws javax.xml.stream.XMLStreamException
    function createXMLEventReader(para1: JXSXMLStreamReader): JXSXMLEventReader; overload; virtual; abstract;  // throws javax.xml.stream.XMLStreamException
    function createXMLEventReader(para1: JXTSource): JXSXMLEventReader; overload; virtual; abstract;  // throws javax.xml.stream.XMLStreamException
    function createXMLEventReader(para1: JIInputStream): JXSXMLEventReader; overload; virtual; abstract;  // throws javax.xml.stream.XMLStreamException
    function createXMLEventReader(para1: JIInputStream; para2: JLString): JXSXMLEventReader; overload; virtual; abstract;  // throws javax.xml.stream.XMLStreamException
    function createXMLEventReader(para1: JLString; para2: JIInputStream): JXSXMLEventReader; overload; virtual; abstract;  // throws javax.xml.stream.XMLStreamException
    function createFilteredReader(para1: JXSXMLStreamReader; para2: JXSStreamFilter): JXSXMLStreamReader; overload; virtual; abstract;  // throws javax.xml.stream.XMLStreamException
    function createFilteredReader(para1: JXSXMLEventReader; para2: JXSEventFilter): JXSXMLEventReader; overload; virtual; abstract;  // throws javax.xml.stream.XMLStreamException
    function getXMLResolver(): JXSXMLResolver; overload; virtual; abstract;
    procedure setXMLResolver(para1: JXSXMLResolver); overload; virtual; abstract;
    function getXMLReporter(): JXSXMLReporter; overload; virtual; abstract;
    procedure setXMLReporter(para1: JXSXMLReporter); overload; virtual; abstract;
    procedure setProperty(para1: JLString; para2: JLObject); overload; virtual; abstract;  // throws java.lang.IllegalArgumentException
    function getProperty(para1: JLString): JLObject; overload; virtual; abstract;  // throws java.lang.IllegalArgumentException
    function isPropertySupported(para1: JLString): jboolean; overload; virtual; abstract;
    procedure setEventAllocator(para1: JXSUXMLEventAllocator); overload; virtual; abstract;
    function getEventAllocator(): JXSUXMLEventAllocator; overload; virtual; abstract;
  end;

  JXSXMLOutputFactory = class abstract external 'javax.xml.stream' name 'XMLOutputFactory' (JLObject)
  public
    const
      IS_REPAIRING_NAMESPACES = 'javax.xml.stream.isRepairingNamespaces';
  strict protected
    constructor create(); overload;
  public
    class function newInstance(): JXSXMLOutputFactory; static; overload;  // throws javax.xml.stream.FactoryConfigurationError
    class function newFactory(): JXSXMLOutputFactory; static; overload;  // throws javax.xml.stream.FactoryConfigurationError
    class function newInstance(para1: JLString; para2: JLClassLoader): JXSXMLInputFactory; static; overload;  // throws javax.xml.stream.FactoryConfigurationError
    class function newFactory(para1: JLString; para2: JLClassLoader): JXSXMLOutputFactory; static; overload;  // throws javax.xml.stream.FactoryConfigurationError
    function createXMLStreamWriter(para1: JIWriter): JXSXMLStreamWriter; overload; virtual; abstract;  // throws javax.xml.stream.XMLStreamException
    function createXMLStreamWriter(para1: JIOutputStream): JXSXMLStreamWriter; overload; virtual; abstract;  // throws javax.xml.stream.XMLStreamException
    function createXMLStreamWriter(para1: JIOutputStream; para2: JLString): JXSXMLStreamWriter; overload; virtual; abstract;  // throws javax.xml.stream.XMLStreamException
    function createXMLStreamWriter(para1: JXTResult): JXSXMLStreamWriter; overload; virtual; abstract;  // throws javax.xml.stream.XMLStreamException
    function createXMLEventWriter(para1: JXTResult): JXSXMLEventWriter; overload; virtual; abstract;  // throws javax.xml.stream.XMLStreamException
    function createXMLEventWriter(para1: JIOutputStream): JXSXMLEventWriter; overload; virtual; abstract;  // throws javax.xml.stream.XMLStreamException
    function createXMLEventWriter(para1: JIOutputStream; para2: JLString): JXSXMLEventWriter; overload; virtual; abstract;  // throws javax.xml.stream.XMLStreamException
    function createXMLEventWriter(para1: JIWriter): JXSXMLEventWriter; overload; virtual; abstract;  // throws javax.xml.stream.XMLStreamException
    procedure setProperty(para1: JLString; para2: JLObject); overload; virtual; abstract;  // throws java.lang.IllegalArgumentException
    function getProperty(para1: JLString): JLObject; overload; virtual; abstract;  // throws java.lang.IllegalArgumentException
    function isPropertySupported(para1: JLString): jboolean; overload; virtual; abstract;
  end;

  JXSXMLReporter = interface external 'javax.xml.stream' name 'XMLReporter' 
    procedure report(para1: JLString; para2: JLString; para3: JLObject; para4: JXSLocation); overload;  // throws javax.xml.stream.XMLStreamException
  end;

  JXSXMLResolver = interface external 'javax.xml.stream' name 'XMLResolver' 
    function resolveEntity(para1: JLString; para2: JLString; para3: JLString; para4: JLString): JLObject; overload;  // throws javax.xml.stream.XMLStreamException
  end;

  JXSXMLStreamConstants = interface external 'javax.xml.stream' name 'XMLStreamConstants' 
    const
      START_ELEMENT = 1;
      END_ELEMENT = 2;
      PROCESSING_INSTRUCTION = 3;
      CHARACTERS = 4;
      COMMENT = 5;
      SPACE = 6;
      START_DOCUMENT = 7;
      END_DOCUMENT = 8;
      ENTITY_REFERENCE = 9;
      ATTRIBUTE = 10;
      DTD = 11;
      CDATA = 12;
      NAMESPACE = 13;
      NOTATION_DECLARATION = 14;
      ENTITY_DECLARATION = 15;
  end;

  JXSXMLStreamWriter = interface external 'javax.xml.stream' name 'XMLStreamWriter' 
    procedure writeStartElement(para1: JLString); overload;  // throws javax.xml.stream.XMLStreamException
    procedure writeStartElement(para1: JLString; para2: JLString); overload;  // throws javax.xml.stream.XMLStreamException
    procedure writeStartElement(para1: JLString; para2: JLString; para3: JLString); overload;  // throws javax.xml.stream.XMLStreamException
    procedure writeEmptyElement(para1: JLString; para2: JLString); overload;  // throws javax.xml.stream.XMLStreamException
    procedure writeEmptyElement(para1: JLString; para2: JLString; para3: JLString); overload;  // throws javax.xml.stream.XMLStreamException
    procedure writeEmptyElement(para1: JLString); overload;  // throws javax.xml.stream.XMLStreamException
    procedure writeEndElement(); overload;  // throws javax.xml.stream.XMLStreamException
    procedure writeEndDocument(); overload;  // throws javax.xml.stream.XMLStreamException
    procedure close(); overload;  // throws javax.xml.stream.XMLStreamException
    procedure flush(); overload;  // throws javax.xml.stream.XMLStreamException
    procedure writeAttribute(para1: JLString; para2: JLString); overload;  // throws javax.xml.stream.XMLStreamException
    procedure writeAttribute(para1: JLString; para2: JLString; para3: JLString; para4: JLString); overload;  // throws javax.xml.stream.XMLStreamException
    procedure writeAttribute(para1: JLString; para2: JLString; para3: JLString); overload;  // throws javax.xml.stream.XMLStreamException
    procedure writeNamespace(para1: JLString; para2: JLString); overload;  // throws javax.xml.stream.XMLStreamException
    procedure writeDefaultNamespace(para1: JLString); overload;  // throws javax.xml.stream.XMLStreamException
    procedure writeComment(para1: JLString); overload;  // throws javax.xml.stream.XMLStreamException
    procedure writeProcessingInstruction(para1: JLString); overload;  // throws javax.xml.stream.XMLStreamException
    procedure writeProcessingInstruction(para1: JLString; para2: JLString); overload;  // throws javax.xml.stream.XMLStreamException
    procedure writeCData(para1: JLString); overload;  // throws javax.xml.stream.XMLStreamException
    procedure writeDTD(para1: JLString); overload;  // throws javax.xml.stream.XMLStreamException
    procedure writeEntityRef(para1: JLString); overload;  // throws javax.xml.stream.XMLStreamException
    procedure writeStartDocument(); overload;  // throws javax.xml.stream.XMLStreamException
    procedure writeStartDocument(para1: JLString); overload;  // throws javax.xml.stream.XMLStreamException
    procedure writeStartDocument(para1: JLString; para2: JLString); overload;  // throws javax.xml.stream.XMLStreamException
    procedure writeCharacters(para1: JLString); overload;  // throws javax.xml.stream.XMLStreamException
    procedure writeCharacters(para1: Arr1jchar; para2: jint; para3: jint); overload;  // throws javax.xml.stream.XMLStreamException
    procedure writeCharacters(var para1: array of jchar; para2: jint; para3: jint); overload;  // throws javax.xml.stream.XMLStreamException
    function getPrefix(para1: JLString): JLString; overload;  // throws javax.xml.stream.XMLStreamException
    procedure setPrefix(para1: JLString; para2: JLString); overload;  // throws javax.xml.stream.XMLStreamException
    procedure setDefaultNamespace(para1: JLString); overload;  // throws javax.xml.stream.XMLStreamException
    procedure setNamespaceContext(para1: JXNNamespaceContext); overload;  // throws javax.xml.stream.XMLStreamException
    function getNamespaceContext(): JXNNamespaceContext; overload;
    function getProperty(para1: JLString): JLObject; overload;  // throws java.lang.IllegalArgumentException
  end;

  JXSUXMLEventAllocator = interface external 'javax.xml.stream.util' name 'XMLEventAllocator' 
    function newInstance(): JXSUXMLEventAllocator; overload;
    function allocate(para1: JXSXMLStreamReader): JXSEXMLEvent; overload;  // throws javax.xml.stream.XMLStreamException
    procedure allocate(para1: JXSXMLStreamReader; para2: JXSUXMLEventConsumer); overload;  // throws javax.xml.stream.XMLStreamException
  end;

  JXSUXMLEventConsumer = interface external 'javax.xml.stream.util' name 'XMLEventConsumer' 
    procedure add(para1: JXSEXMLEvent); overload;  // throws javax.xml.stream.XMLStreamException
  end;

  JXTErrorListener = interface external 'javax.xml.transform' name 'ErrorListener' 
    procedure warning(para1: JXTTransformerException); overload;  // throws javax.xml.transform.TransformerException
    procedure error(para1: JXTTransformerException); overload;  // throws javax.xml.transform.TransformerException
    procedure fatalError(para1: JXTTransformerException); overload;  // throws javax.xml.transform.TransformerException
  end;

  JXTFactoryFinder = class external 'javax.xml.transform' name 'FactoryFinder' (JLObject)
  public
    type
      InnerConfigurationError = class;
      Arr1InnerConfigurationError = array of InnerConfigurationError;
      Arr2InnerConfigurationError = array of Arr1InnerConfigurationError;
      Arr3InnerConfigurationError = array of Arr2InnerConfigurationError;
      InnerConfigurationError = class external 'javax.xml.transform' name 'ConfigurationError' 
      end;

  end;

  JXTOutputKeys = class external 'javax.xml.transform' name 'OutputKeys' (JLObject)
  public
    const
      METHOD = 'method';
      VERSION = 'version';
      ENCODING = 'encoding';
      OMIT_XML_DECLARATION = 'omit-xml-declaration';
      STANDALONE = 'standalone';
      DOCTYPE_PUBLIC = 'doctype-public';
      DOCTYPE_SYSTEM = 'doctype-system';
      CDATA_SECTION_ELEMENTS = 'cdata-section-elements';
      INDENT = 'indent';
      MEDIA_TYPE = 'media-type';
  end;

  JXTResult = interface external 'javax.xml.transform' name 'Result' 
    const
      PI_DISABLE_OUTPUT_ESCAPING = 'javax.xml.transform.disable-output-escaping';
      PI_ENABLE_OUTPUT_ESCAPING = 'javax.xml.transform.enable-output-escaping';
    procedure setSystemId(para1: JLString); overload;
    function getSystemId(): JLString; overload;
  end;

  JXTSecuritySupport = class external 'javax.xml.transform' name 'SecuritySupport' (JLObject)
  end;

  JXTSource = interface external 'javax.xml.transform' name 'Source' 
    procedure setSystemId(para1: JLString); overload;
    function getSystemId(): JLString; overload;
  end;

  JXTSourceLocator = interface external 'javax.xml.transform' name 'SourceLocator' 
    function getPublicId(): JLString; overload;
    function getSystemId(): JLString; overload;
    function getLineNumber(): jint; overload;
    function getColumnNumber(): jint; overload;
  end;

  JXTTemplates = interface external 'javax.xml.transform' name 'Templates' 
    function newTransformer(): JXTTransformer; overload;  // throws javax.xml.transform.TransformerConfigurationException
    function getOutputProperties(): JUProperties; overload;
  end;

  JXTTransformer = class abstract external 'javax.xml.transform' name 'Transformer' (JLObject)
  strict protected
    constructor create(); overload;
  public
    procedure reset(); overload; virtual;
    procedure transform(para1: JXTSource; para2: JXTResult); overload; virtual; abstract;  // throws javax.xml.transform.TransformerException
    procedure setParameter(para1: JLString; para2: JLObject); overload; virtual; abstract;
    function getParameter(para1: JLString): JLObject; overload; virtual; abstract;
    procedure clearParameters(); overload; virtual; abstract;
    procedure setURIResolver(para1: JXTURIResolver); overload; virtual; abstract;
    function getURIResolver(): JXTURIResolver; overload; virtual; abstract;
    procedure setOutputProperties(para1: JUProperties); overload; virtual; abstract;
    function getOutputProperties(): JUProperties; overload; virtual; abstract;
    procedure setOutputProperty(para1: JLString; para2: JLString); overload; virtual; abstract;  // throws java.lang.IllegalArgumentException
    function getOutputProperty(para1: JLString): JLString; overload; virtual; abstract;  // throws java.lang.IllegalArgumentException
    procedure setErrorListener(para1: JXTErrorListener); overload; virtual; abstract;  // throws java.lang.IllegalArgumentException
    function getErrorListener(): JXTErrorListener; overload; virtual; abstract;
  end;

  JXTTransformerFactory = class abstract external 'javax.xml.transform' name 'TransformerFactory' (JLObject)
  strict protected
    constructor create(); overload;
  public
    class function newInstance(): JXTTransformerFactory; static; overload;  // throws javax.xml.transform.TransformerFactoryConfigurationError
    class function newInstance(para1: JLString; para2: JLClassLoader): JXTTransformerFactory; static; overload;  // throws javax.xml.transform.TransformerFactoryConfigurationError
    function newTransformer(para1: JXTSource): JXTTransformer; overload; virtual; abstract;  // throws javax.xml.transform.TransformerConfigurationException
    function newTransformer(): JXTTransformer; overload; virtual; abstract;  // throws javax.xml.transform.TransformerConfigurationException
    function newTemplates(para1: JXTSource): JXTTemplates; overload; virtual; abstract;  // throws javax.xml.transform.TransformerConfigurationException
    function getAssociatedStylesheet(para1: JXTSource; para2: JLString; para3: JLString; para4: JLString): JXTSource; overload; virtual; abstract;  // throws javax.xml.transform.TransformerConfigurationException
    procedure setURIResolver(para1: JXTURIResolver); overload; virtual; abstract;
    function getURIResolver(): JXTURIResolver; overload; virtual; abstract;
    procedure setFeature(para1: JLString; para2: jboolean); overload; virtual; abstract;  // throws javax.xml.transform.TransformerConfigurationException
    function getFeature(para1: JLString): jboolean; overload; virtual; abstract;
    procedure setAttribute(para1: JLString; para2: JLObject); overload; virtual; abstract;
    function getAttribute(para1: JLString): JLObject; overload; virtual; abstract;
    procedure setErrorListener(para1: JXTErrorListener); overload; virtual; abstract;
    function getErrorListener(): JXTErrorListener; overload; virtual; abstract;
  end;

  JXTURIResolver = interface external 'javax.xml.transform' name 'URIResolver' 
    function resolve(para1: JLString; para2: JLString): JXTSource; overload;  // throws javax.xml.transform.TransformerException
  end;

  JXVSchema = class abstract external 'javax.xml.validation' name 'Schema' (JLObject)
  strict protected
    constructor create(); overload;
  public
    function newValidator(): JXVValidator; overload; virtual; abstract;
    function newValidatorHandler(): JXVValidatorHandler; overload; virtual; abstract;
  end;

  JXVSchemaFactory = class abstract external 'javax.xml.validation' name 'SchemaFactory' (JLObject)
  strict protected
    constructor create(); overload;
  public
    class function newInstance(para1: JLString): JXVSchemaFactory; static; overload; final;
    class function newInstance(para1: JLString; para2: JLString; para3: JLClassLoader): JXVSchemaFactory; static; overload;
    function isSchemaLanguageSupported(para1: JLString): jboolean; overload; virtual; abstract;
    function getFeature(para1: JLString): jboolean; overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    procedure setFeature(para1: JLString; para2: jboolean); overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    procedure setProperty(para1: JLString; para2: JLObject); overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    function getProperty(para1: JLString): JLObject; overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    procedure setErrorHandler(para1: OXSErrorHandler); overload; virtual; abstract;
    function getErrorHandler(): OXSErrorHandler; overload; virtual; abstract;
    procedure setResourceResolver(para1: OWDLLSResourceResolver); overload; virtual; abstract;
    function getResourceResolver(): OWDLLSResourceResolver; overload; virtual; abstract;
    function newSchema(para1: JXTSource): JXVSchema; overload; virtual;  // throws org.xml.sax.SAXException
    function newSchema(para1: JIFile): JXVSchema; overload; virtual;  // throws org.xml.sax.SAXException
    function newSchema(para1: JNURL): JXVSchema; overload; virtual;  // throws org.xml.sax.SAXException
    function newSchema(para1: Arr1JXTSource): JXVSchema; overload; virtual; abstract;  // throws org.xml.sax.SAXException
    function newSchema(var para1: array of JXTSource): JXVSchema; overload; virtual; abstract;  // throws org.xml.sax.SAXException
    function newSchema(): JXVSchema; overload; virtual; abstract;  // throws org.xml.sax.SAXException
  end;

  JXVSchemaFactoryFinder = class external 'javax.xml.validation' name 'SchemaFactoryFinder' (JLObject)
  public
    type
      InnerSingleIterator = class;
      Arr1InnerSingleIterator = array of InnerSingleIterator;
      Arr2InnerSingleIterator = array of Arr1InnerSingleIterator;
      Arr3InnerSingleIterator = array of Arr2InnerSingleIterator;
      InnerSingleIterator = class abstract external 'javax.xml.validation' name 'SingleIterator' 
      end;

  public
    constructor create(para1: JLClassLoader); overload;
    function newFactory(para1: JLString): JXVSchemaFactory; overload; virtual;
  end;

  JXVSchemaFactoryLoader = class abstract external 'javax.xml.validation' name 'SchemaFactoryLoader' (JLObject)
  strict protected
    constructor create(); overload;
  public
    function newFactory(para1: JLString): JXVSchemaFactory; overload; virtual; abstract;
  end;

  JXVSecuritySupport = class external 'javax.xml.validation' name 'SecuritySupport' (JLObject)
  end;

  JXVTypeInfoProvider = class abstract external 'javax.xml.validation' name 'TypeInfoProvider' (JLObject)
  strict protected
    constructor create(); overload;
  public
    function getElementTypeInfo(): OWDTypeInfo; overload; virtual; abstract;
    function getAttributeTypeInfo(para1: jint): OWDTypeInfo; overload; virtual; abstract;
    function isIdAttribute(para1: jint): jboolean; overload; virtual; abstract;
    function isSpecified(para1: jint): jboolean; overload; virtual; abstract;
  end;

  JXVValidator = class abstract external 'javax.xml.validation' name 'Validator' (JLObject)
  strict protected
    constructor create(); overload;
  public
    procedure reset(); overload; virtual; abstract;
    procedure validate(para1: JXTSource); overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    procedure validate(para1: JXTSource; para2: JXTResult); overload; virtual; abstract;  // throws org.xml.sax.SAXException, java.io.IOException
    procedure setErrorHandler(para1: OXSErrorHandler); overload; virtual; abstract;
    function getErrorHandler(): OXSErrorHandler; overload; virtual; abstract;
    procedure setResourceResolver(para1: OWDLLSResourceResolver); overload; virtual; abstract;
    function getResourceResolver(): OWDLLSResourceResolver; overload; virtual; abstract;
    function getFeature(para1: JLString): jboolean; overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    procedure setFeature(para1: JLString; para2: jboolean); overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    procedure setProperty(para1: JLString; para2: JLObject); overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    function getProperty(para1: JLString): JLObject; overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
  end;

  JXWAsyncHandler = interface external 'javax.xml.ws' name 'AsyncHandler' 
    procedure handleResponse(para1: JXWResponse); overload;
  end;

  JXWBinding = interface external 'javax.xml.ws' name 'Binding' 
    function getHandlerChain(): JUList; overload;
    procedure setHandlerChain(para1: JUList); overload;
    function getBindingID(): JLString; overload;
  end;

  JXWBindingProvider = interface external 'javax.xml.ws' name 'BindingProvider' 
    const
      USERNAME_PROPERTY = 'javax.xml.ws.security.auth.username';
      PASSWORD_PROPERTY = 'javax.xml.ws.security.auth.password';
      ENDPOINT_ADDRESS_PROPERTY = 'javax.xml.ws.service.endpoint.address';
      SESSION_MAINTAIN_PROPERTY = 'javax.xml.ws.session.maintain';
      SOAPACTION_USE_PROPERTY = 'javax.xml.ws.soap.http.soapaction.use';
      SOAPACTION_URI_PROPERTY = 'javax.xml.ws.soap.http.soapaction.uri';
    function getRequestContext(): JUMap; overload;
    function getResponseContext(): JUMap; overload;
    function getBinding(): JXWBinding; overload;
    function getEndpointReference(): JXWEndpointReference; overload;
    function getEndpointReference(para1: JLClass): JXWEndpointReference; overload;
  end;

  JXWEndpoint = class abstract external 'javax.xml.ws' name 'Endpoint' (JLObject)
  public
    const
      WSDL_SERVICE = 'javax.xml.ws.wsdl.service';
      WSDL_PORT = 'javax.xml.ws.wsdl.port';
  public
    constructor create(); overload;
    class function create_(para1: JLObject): JXWEndpoint; static; external name 'create'; overload;
    class function create_(para1: JLString; para2: JLObject): JXWEndpoint; static; external name 'create'; overload;
    function getBinding(): JXWBinding; overload; virtual; abstract;
    function getImplementor(): JLObject; overload; virtual; abstract;
    procedure publish(para1: JLString); overload; virtual; abstract;
    class function publish(para1: JLString; para2: JLObject): JXWEndpoint; static; overload;
    procedure publish(para1: JLObject); overload; virtual; abstract;
    procedure stop(); overload; virtual; abstract;
    function isPublished(): jboolean; overload; virtual; abstract;
    function getMetadata(): JUList; overload; virtual; abstract;
    procedure setMetadata(para1: JUList); overload; virtual; abstract;
    function getExecutor(): JUCExecutor; overload; virtual; abstract;
    procedure setExecutor(para1: JUCExecutor); overload; virtual; abstract;
    function getProperties(): JUMap; overload; virtual; abstract;
    procedure setProperties(para1: JUMap); overload; virtual; abstract;
    function getEndpointReference(para1: Arr1OWDElement): JXWEndpointReference; overload; virtual; abstract;
    function getEndpointReference(const para1: array of OWDElement): JXWEndpointReference; overload; virtual; abstract;
    function getEndpointReference(para1: JLClass; para2: Arr1OWDElement): JXWEndpointReference; overload; virtual; abstract;
    function getEndpointReference(para1: JLClass; const para2: array of OWDElement): JXWEndpointReference; overload; virtual; abstract;
  end;

  JXWEndpointReference = class abstract external 'javax.xml.ws' name 'EndpointReference' (JLObject)
  strict protected
    constructor create(); overload;
  public
    class function readFrom(para1: JXTSource): JXWEndpointReference; static; overload;
    procedure writeTo(para1: JXTResult); overload; virtual; abstract;
    function getPort(para1: JLClass; para2: Arr1JXWWebServiceFeature): JLObject; overload; virtual;
    function getPort(para1: JLClass; const para2: array of JXWWebServiceFeature): JLObject; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JXWHolder = class sealed external 'javax.xml.ws' name 'Holder' (JLObject)
  public
    var
      fvalue: JLObject; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: JLObject); overload;
  end;

  JXWLogicalMessage = interface external 'javax.xml.ws' name 'LogicalMessage' 
    function getPayload(): JXTSource; overload;
    procedure setPayload(para1: JXTSource); overload;
    function getPayload(para1: JXBJAXBContext): JLObject; overload;
    procedure setPayload(para1: JLObject; para2: JXBJAXBContext); overload;
  end;

  JXWProvider = interface external 'javax.xml.ws' name 'Provider' 
    function invoke(para1: JLObject): JLObject; overload;
  end;

  JXWWebServiceContext = interface external 'javax.xml.ws' name 'WebServiceContext' 
    function getMessageContext(): JXWHMessageContext; overload;
    function getUserPrincipal(): JSPrincipal; overload;
    function isUserInRole(para1: JLString): jboolean; overload;
    function getEndpointReference(para1: Arr1OWDElement): JXWEndpointReference; overload;
    function getEndpointReference(const para1: array of OWDElement): JXWEndpointReference; overload;
    function getEndpointReference(para1: JLClass; para2: Arr1OWDElement): JXWEndpointReference; overload;
    function getEndpointReference(para1: JLClass; const para2: array of OWDElement): JXWEndpointReference; overload;
  end;

  JXWWebServiceFeature = class abstract external 'javax.xml.ws' name 'WebServiceFeature' (JLObject)
  strict protected
    var
      fenabled: jboolean; external name 'enabled';
  public
    function getID(): JLString; overload; virtual; abstract;
  strict protected
    constructor create(); overload;
  public
    function isEnabled(): jboolean; overload; virtual;
  end;

  JXWHHandler = interface external 'javax.xml.ws.handler' name 'Handler' 
    function handleMessage(para1: JXWHMessageContext): jboolean; overload;
    function handleFault(para1: JXWHMessageContext): jboolean; overload;
    procedure close(para1: JXWHMessageContext); overload;
  end;

  JXWHHandlerResolver = interface external 'javax.xml.ws.handler' name 'HandlerResolver' 
    function getHandlerChain(para1: JXWHPortInfo): JUList; overload;
  end;

  JXWHPortInfo = interface external 'javax.xml.ws.handler' name 'PortInfo' 
    function getServiceName(): JXNQName; overload;
    function getPortName(): JXNQName; overload;
    function getBindingID(): JLString; overload;
  end;

  JXWSFactoryFinder = class external 'javax.xml.ws.spi' name 'FactoryFinder' (JLObject)
  end;

  JXWSProvider = class abstract external 'javax.xml.ws.spi' name 'Provider' (JLObject)
  public
    const
      JAXWSPROVIDER_PROPERTY = 'javax.xml.ws.spi.Provider';
  strict protected
    constructor create(); overload;
  public
    class function provider(): JXWSProvider; static; overload;
    function createServiceDelegate(para1: JNURL; para2: JXNQName; para3: JLClass): JXWSServiceDelegate; overload; virtual; abstract;
    function createEndpoint(para1: JLString; para2: JLObject): JXWEndpoint; overload; virtual; abstract;
    function createAndPublishEndpoint(para1: JLString; para2: JLObject): JXWEndpoint; overload; virtual; abstract;
    function readEndpointReference(para1: JXTSource): JXWEndpointReference; overload; virtual; abstract;
    function getPort(para1: JXWEndpointReference; para2: JLClass; para3: Arr1JXWWebServiceFeature): JLObject; overload; virtual; abstract;
    function getPort(para1: JXWEndpointReference; para2: JLClass; const para3: array of JXWWebServiceFeature): JLObject; overload; virtual; abstract;
    function createW3CEndpointReference(para1: JLString; para2: JXNQName; para3: JXNQName; para4: JUList; para5: JLString; para6: JUList): JXWWW3CEndpointReference; overload; virtual; abstract;
  end;

  JXWWW3CEndpointReferenceBuilder = class sealed external 'javax.xml.ws.wsaddressing' name 'W3CEndpointReferenceBuilder' (JLObject)
  public
    constructor create(); overload;
    function address(para1: JLString): JXWWW3CEndpointReferenceBuilder; overload; virtual;
    function serviceName(para1: JXNQName): JXWWW3CEndpointReferenceBuilder; overload; virtual;
    function endpointName(para1: JXNQName): JXWWW3CEndpointReferenceBuilder; overload; virtual;
    function wsdlDocumentLocation(para1: JLString): JXWWW3CEndpointReferenceBuilder; overload; virtual;
    function referenceParameter(para1: OWDElement): JXWWW3CEndpointReferenceBuilder; overload; virtual;
    function metadata(para1: OWDElement): JXWWW3CEndpointReferenceBuilder; overload; virtual;
    function build(): JXWWW3CEndpointReference; overload; virtual;
  end;

  JXWWpackage_info = interface external 'javax.xml.ws.wsaddressing' name 'package-info' 
  end;

  JXXSecuritySupport = class external 'javax.xml.xpath' name 'SecuritySupport' (JLObject)
  end;

  JXXXPath = interface external 'javax.xml.xpath' name 'XPath' 
    procedure reset(); overload;
    procedure setXPathVariableResolver(para1: JXXXPathVariableResolver); overload;
    function getXPathVariableResolver(): JXXXPathVariableResolver; overload;
    procedure setXPathFunctionResolver(para1: JXXXPathFunctionResolver); overload;
    function getXPathFunctionResolver(): JXXXPathFunctionResolver; overload;
    procedure setNamespaceContext(para1: JXNNamespaceContext); overload;
    function getNamespaceContext(): JXNNamespaceContext; overload;
    function compile(para1: JLString): JXXXPathExpression; overload;  // throws javax.xml.xpath.XPathExpressionException
    function evaluate(para1: JLString; para2: JLObject; para3: JXNQName): JLObject; overload;  // throws javax.xml.xpath.XPathExpressionException
    function evaluate(para1: JLString; para2: JLObject): JLString; overload;  // throws javax.xml.xpath.XPathExpressionException
    function evaluate(para1: JLString; para2: OXSInputSource; para3: JXNQName): JLObject; overload;  // throws javax.xml.xpath.XPathExpressionException
    function evaluate(para1: JLString; para2: OXSInputSource): JLString; overload;  // throws javax.xml.xpath.XPathExpressionException
  end;

  JXXXPathConstants = class external 'javax.xml.xpath' name 'XPathConstants' (JLObject)
  public
    final class var
      fNUMBER: JXNQName; external name 'NUMBER';
      fSTRING: JXNQName; external name 'STRING';
      fBOOLEAN: JXNQName; external name 'BOOLEAN';
      fNODESET: JXNQName; external name 'NODESET';
      fNODE: JXNQName; external name 'NODE';
  public
    const
      DOM_OBJECT_MODEL = 'http://java.sun.com/jaxp/xpath/dom';
  end;

  JXXXPathExpression = interface external 'javax.xml.xpath' name 'XPathExpression' 
    function evaluate(para1: JLObject; para2: JXNQName): JLObject; overload;  // throws javax.xml.xpath.XPathExpressionException
    function evaluate(para1: JLObject): JLString; overload;  // throws javax.xml.xpath.XPathExpressionException
    function evaluate(para1: OXSInputSource; para2: JXNQName): JLObject; overload;  // throws javax.xml.xpath.XPathExpressionException
    function evaluate(para1: OXSInputSource): JLString; overload;  // throws javax.xml.xpath.XPathExpressionException
  end;

  JXXXPathFactory = class abstract external 'javax.xml.xpath' name 'XPathFactory' (JLObject)
  public
    const
      DEFAULT_PROPERTY_NAME = 'javax.xml.xpath.XPathFactory';
      DEFAULT_OBJECT_MODEL_URI = 'http://java.sun.com/jaxp/xpath/dom';
  strict protected
    constructor create(); overload;
  public
    class function newInstance(): JXXXPathFactory; static; overload; final;
    class function newInstance(para1: JLString): JXXXPathFactory; static; overload; final;  // throws javax.xml.xpath.XPathFactoryConfigurationException
    class function newInstance(para1: JLString; para2: JLString; para3: JLClassLoader): JXXXPathFactory; static; overload;  // throws javax.xml.xpath.XPathFactoryConfigurationException
    function isObjectModelSupported(para1: JLString): jboolean; overload; virtual; abstract;
    procedure setFeature(para1: JLString; para2: jboolean); overload; virtual; abstract;  // throws javax.xml.xpath.XPathFactoryConfigurationException
    function getFeature(para1: JLString): jboolean; overload; virtual; abstract;  // throws javax.xml.xpath.XPathFactoryConfigurationException
    procedure setXPathVariableResolver(para1: JXXXPathVariableResolver); overload; virtual; abstract;
    procedure setXPathFunctionResolver(para1: JXXXPathFunctionResolver); overload; virtual; abstract;
    function newXPath(): JXXXPath; overload; virtual; abstract;
  end;

  JXXXPathFactoryFinder = class external 'javax.xml.xpath' name 'XPathFactoryFinder' (JLObject)
  public
    type
      InnerSingleIterator = class;
      Arr1InnerSingleIterator = array of InnerSingleIterator;
      Arr2InnerSingleIterator = array of Arr1InnerSingleIterator;
      Arr3InnerSingleIterator = array of Arr2InnerSingleIterator;
      InnerSingleIterator = class abstract external 'javax.xml.xpath' name 'SingleIterator' 
      end;

  public
    constructor create(para1: JLClassLoader); overload;
    function newFactory(para1: JLString): JXXXPathFactory; overload; virtual;
  end;

  JXXXPathFunction = interface external 'javax.xml.xpath' name 'XPathFunction' 
    function evaluate(para1: JUList): JLObject; overload;  // throws javax.xml.xpath.XPathFunctionException
  end;

  JXXXPathFunctionResolver = interface external 'javax.xml.xpath' name 'XPathFunctionResolver' 
    function resolveFunction(para1: JXNQName; para2: jint): JXXXPathFunction; overload;
  end;

  JXXXPathVariableResolver = interface external 'javax.xml.xpath' name 'XPathVariableResolver' 
    function resolveVariable(para1: JXNQName): JLObject; overload;
  end;

  OIJChannelBinding = class external 'org.ietf.jgss' name 'ChannelBinding' (JLObject)
  public
    constructor create(para1: JNInetAddress; para2: JNInetAddress; para3: Arr1jbyte); overload;
    constructor create(para1: JNInetAddress; para2: JNInetAddress; const para3: array of jbyte); overload;
    constructor create(para1: Arr1jbyte); overload;
    constructor create(const para1: array of jbyte); overload;
    function getInitiatorAddress(): JNInetAddress; overload; virtual;
    function getAcceptorAddress(): JNInetAddress; overload; virtual;
    function getApplicationData(): Arr1jbyte; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  OIJGSSContext = interface external 'org.ietf.jgss' name 'GSSContext' 
    const
      DEFAULT_LIFETIME = 0;
      INDEFINITE_LIFETIME = 2147483647;
    function initSecContext(para1: Arr1jbyte; para2: jint; para3: jint): Arr1jbyte; overload;  // throws org.ietf.jgss.GSSException
    function initSecContext(var para1: array of jbyte; para2: jint; para3: jint): Arr1jbyte; overload;  // throws org.ietf.jgss.GSSException
    function initSecContext(para1: JIInputStream; para2: JIOutputStream): jint; overload;  // throws org.ietf.jgss.GSSException
    function acceptSecContext(para1: Arr1jbyte; para2: jint; para3: jint): Arr1jbyte; overload;  // throws org.ietf.jgss.GSSException
    function acceptSecContext(var para1: array of jbyte; para2: jint; para3: jint): Arr1jbyte; overload;  // throws org.ietf.jgss.GSSException
    procedure acceptSecContext(para1: JIInputStream; para2: JIOutputStream); overload;  // throws org.ietf.jgss.GSSException
    function isEstablished(): jboolean; overload;
    procedure dispose(); overload;  // throws org.ietf.jgss.GSSException
    function getWrapSizeLimit(para1: jint; para2: jboolean; para3: jint): jint; overload;  // throws org.ietf.jgss.GSSException
    function wrap(para1: Arr1jbyte; para2: jint; para3: jint; para4: OIJMessageProp): Arr1jbyte; overload;  // throws org.ietf.jgss.GSSException
    function wrap(var para1: array of jbyte; para2: jint; para3: jint; para4: OIJMessageProp): Arr1jbyte; overload;  // throws org.ietf.jgss.GSSException
    procedure wrap(para1: JIInputStream; para2: JIOutputStream; para3: OIJMessageProp); overload;  // throws org.ietf.jgss.GSSException
    function unwrap(para1: Arr1jbyte; para2: jint; para3: jint; para4: OIJMessageProp): Arr1jbyte; overload;  // throws org.ietf.jgss.GSSException
    function unwrap(var para1: array of jbyte; para2: jint; para3: jint; para4: OIJMessageProp): Arr1jbyte; overload;  // throws org.ietf.jgss.GSSException
    procedure unwrap(para1: JIInputStream; para2: JIOutputStream; para3: OIJMessageProp); overload;  // throws org.ietf.jgss.GSSException
    function getMIC(para1: Arr1jbyte; para2: jint; para3: jint; para4: OIJMessageProp): Arr1jbyte; overload;  // throws org.ietf.jgss.GSSException
    function getMIC(var para1: array of jbyte; para2: jint; para3: jint; para4: OIJMessageProp): Arr1jbyte; overload;  // throws org.ietf.jgss.GSSException
    procedure getMIC(para1: JIInputStream; para2: JIOutputStream; para3: OIJMessageProp); overload;  // throws org.ietf.jgss.GSSException
    procedure verifyMIC(para1: Arr1jbyte; para2: jint; para3: jint; para4: Arr1jbyte; para5: jint; para6: jint; para7: OIJMessageProp); overload;  // throws org.ietf.jgss.GSSException
    procedure verifyMIC(var para1: array of jbyte; para2: jint; para3: jint; var para4: array of jbyte; para5: jint; para6: jint; para7: OIJMessageProp); overload;  // throws org.ietf.jgss.GSSException
    procedure verifyMIC(para1: JIInputStream; para2: JIInputStream; para3: OIJMessageProp); overload;  // throws org.ietf.jgss.GSSException
    function export(): Arr1jbyte; overload;  // throws org.ietf.jgss.GSSException
    procedure requestMutualAuth(para1: jboolean); overload;  // throws org.ietf.jgss.GSSException
    procedure requestReplayDet(para1: jboolean); overload;  // throws org.ietf.jgss.GSSException
    procedure requestSequenceDet(para1: jboolean); overload;  // throws org.ietf.jgss.GSSException
    procedure requestCredDeleg(para1: jboolean); overload;  // throws org.ietf.jgss.GSSException
    procedure requestAnonymity(para1: jboolean); overload;  // throws org.ietf.jgss.GSSException
    procedure requestConf(para1: jboolean); overload;  // throws org.ietf.jgss.GSSException
    procedure requestInteg(para1: jboolean); overload;  // throws org.ietf.jgss.GSSException
    procedure requestLifetime(para1: jint); overload;  // throws org.ietf.jgss.GSSException
    procedure setChannelBinding(para1: OIJChannelBinding); overload;  // throws org.ietf.jgss.GSSException
    function getCredDelegState(): jboolean; overload;
    function getMutualAuthState(): jboolean; overload;
    function getReplayDetState(): jboolean; overload;
    function getSequenceDetState(): jboolean; overload;
    function getAnonymityState(): jboolean; overload;
    function isTransferable(): jboolean; overload;  // throws org.ietf.jgss.GSSException
    function isProtReady(): jboolean; overload;
    function getConfState(): jboolean; overload;
    function getIntegState(): jboolean; overload;
    function getLifetime(): jint; overload;
    function getSrcName(): OIJGSSName; overload;  // throws org.ietf.jgss.GSSException
    function getTargName(): OIJGSSName; overload;  // throws org.ietf.jgss.GSSException
    function getMech(): OIJOid; overload;  // throws org.ietf.jgss.GSSException
    function getDelegCred(): OIJGSSCredential; overload;  // throws org.ietf.jgss.GSSException
    function isInitiator(): jboolean; overload;  // throws org.ietf.jgss.GSSException
  end;

  OIJGSSManager = class abstract external 'org.ietf.jgss' name 'GSSManager' (JLObject)
  public
    constructor create(); overload;
    class function getInstance(): OIJGSSManager; static; overload;
    function getMechs(): Arr1OIJOid; overload; virtual; abstract;
    function getNamesForMech(para1: OIJOid): Arr1OIJOid; overload; virtual; abstract;  // throws org.ietf.jgss.GSSException
    function getMechsForName(para1: OIJOid): Arr1OIJOid; overload; virtual; abstract;
    function createName(para1: JLString; para2: OIJOid): OIJGSSName; overload; virtual; abstract;  // throws org.ietf.jgss.GSSException
    function createName(para1: Arr1jbyte; para2: OIJOid): OIJGSSName; overload; virtual; abstract;  // throws org.ietf.jgss.GSSException
    function createName(var para1: array of jbyte; para2: OIJOid): OIJGSSName; overload; virtual; abstract;  // throws org.ietf.jgss.GSSException
    function createName(para1: JLString; para2: OIJOid; para3: OIJOid): OIJGSSName; overload; virtual; abstract;  // throws org.ietf.jgss.GSSException
    function createName(para1: Arr1jbyte; para2: OIJOid; para3: OIJOid): OIJGSSName; overload; virtual; abstract;  // throws org.ietf.jgss.GSSException
    function createName(var para1: array of jbyte; para2: OIJOid; para3: OIJOid): OIJGSSName; overload; virtual; abstract;  // throws org.ietf.jgss.GSSException
    function createCredential(para1: jint): OIJGSSCredential; overload; virtual; abstract;  // throws org.ietf.jgss.GSSException
    function createCredential(para1: OIJGSSName; para2: jint; para3: OIJOid; para4: jint): OIJGSSCredential; overload; virtual; abstract;  // throws org.ietf.jgss.GSSException
    function createCredential(para1: OIJGSSName; para2: jint; para3: Arr1OIJOid; para4: jint): OIJGSSCredential; overload; virtual; abstract;  // throws org.ietf.jgss.GSSException
    function createCredential(para1: OIJGSSName; para2: jint; var para3: array of OIJOid; para4: jint): OIJGSSCredential; overload; virtual; abstract;  // throws org.ietf.jgss.GSSException
    function createContext(para1: OIJGSSName; para2: OIJOid; para3: OIJGSSCredential; para4: jint): OIJGSSContext; overload; virtual; abstract;  // throws org.ietf.jgss.GSSException
    function createContext(para1: OIJGSSCredential): OIJGSSContext; overload; virtual; abstract;  // throws org.ietf.jgss.GSSException
    function createContext(para1: Arr1jbyte): OIJGSSContext; overload; virtual; abstract;  // throws org.ietf.jgss.GSSException
    function createContext(var para1: array of jbyte): OIJGSSContext; overload; virtual; abstract;  // throws org.ietf.jgss.GSSException
    procedure addProviderAtFront(para1: JSProvider; para2: OIJOid); overload; virtual; abstract;  // throws org.ietf.jgss.GSSException
    procedure addProviderAtEnd(para1: JSProvider; para2: OIJOid); overload; virtual; abstract;  // throws org.ietf.jgss.GSSException
  end;

  OIJGSSName = interface external 'org.ietf.jgss' name 'GSSName' 
    final class var
      fNT_HOSTBASED_SERVICE: OIJOid; external name 'NT_HOSTBASED_SERVICE';
      fNT_USER_NAME: OIJOid; external name 'NT_USER_NAME';
      fNT_MACHINE_UID_NAME: OIJOid; external name 'NT_MACHINE_UID_NAME';
      fNT_STRING_UID_NAME: OIJOid; external name 'NT_STRING_UID_NAME';
      fNT_ANONYMOUS: OIJOid; external name 'NT_ANONYMOUS';
      fNT_EXPORT_NAME: OIJOid; external name 'NT_EXPORT_NAME';
    function equals(para1: OIJGSSName): jboolean; overload;  // throws org.ietf.jgss.GSSException
    function equals(para1: JLObject): jboolean; overload;
    function hashCode(): jint; overload;
    function canonicalize(para1: OIJOid): OIJGSSName; overload;  // throws org.ietf.jgss.GSSException
    function export(): Arr1jbyte; overload;  // throws org.ietf.jgss.GSSException
    function toString(): JLString; overload;
    function getStringNameType(): OIJOid; overload;  // throws org.ietf.jgss.GSSException
    function isAnonymous(): jboolean; overload;
    function isMN(): jboolean; overload;
  end;

  OIJMessageProp = class external 'org.ietf.jgss' name 'MessageProp' (JLObject)
  public
    constructor create(para1: jboolean); overload;
    constructor create(para1: jint; para2: jboolean); overload;
    function getQOP(): jint; overload; virtual;
    function getPrivacy(): jboolean; overload; virtual;
    procedure setQOP(para1: jint); overload; virtual;
    procedure setPrivacy(para1: jboolean); overload; virtual;
    function isDuplicateToken(): jboolean; overload; virtual;
    function isOldToken(): jboolean; overload; virtual;
    function isUnseqToken(): jboolean; overload; virtual;
    function isGapToken(): jboolean; overload; virtual;
    function getMinorStatus(): jint; overload; virtual;
    function getMinorString(): JLString; overload; virtual;
    procedure setSupplementaryStates(para1: jboolean; para2: jboolean; para3: jboolean; para4: jboolean; para5: jint; para6: JLString); overload; virtual;
  end;

  OIJOid = class external 'org.ietf.jgss' name 'Oid' (JLObject)
  public
    constructor create(para1: JLString); overload;  // throws org.ietf.jgss.GSSException
    constructor create(para1: JIInputStream); overload;  // throws org.ietf.jgss.GSSException
    constructor create(para1: Arr1jbyte); overload;  // throws org.ietf.jgss.GSSException
    constructor create(const para1: array of jbyte); overload;  // throws org.ietf.jgss.GSSException
    function toString(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getDER(): Arr1jbyte; overload; virtual;  // throws org.ietf.jgss.GSSException
    function containedIn(para1: Arr1OIJOid): jboolean; overload; virtual;
    function containedIn(var para1: array of OIJOid): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  OJXDIDDOMUtils = class external 'org.jcp.xml.dsig.internal.dom' name 'DOMUtils' (JLObject)
  public
    type
      InnerNodeSet = class;
      Arr1InnerNodeSet = array of InnerNodeSet;
      Arr2InnerNodeSet = array of Arr1InnerNodeSet;
      Arr3InnerNodeSet = array of Arr2InnerNodeSet;
      InnerNodeSet = class external 'org.jcp.xml.dsig.internal.dom' name 'NodeSet' 
      end;

  public
    class function getOwnerDocument(para1: OWDNode): OWDDocument; static; overload;
    class function createElement(para1: OWDDocument; para2: JLString; para3: JLString; para4: JLString): OWDElement; static; overload;
    class procedure setAttribute(para1: OWDElement; para2: JLString; para3: JLString); static; overload;
    class procedure setAttributeID(para1: OWDElement; para2: JLString; para3: JLString); static; overload;
    class function getFirstChildElement(para1: OWDNode): OWDElement; static; overload;
    class function getLastChildElement(para1: OWDNode): OWDElement; static; overload;
    class function getNextSiblingElement(para1: OWDNode): OWDElement; static; overload;
    class function getAttributeValue(para1: OWDElement; para2: JLString): JLString; static; overload;
    class function nodeSet(para1: OWDNodeList): JUSet; static; overload;
    class function getNSPrefix(para1: JXCXMLCryptoContext; para2: JLString): JLString; static; overload;
    class function getSignaturePrefix(para1: JXCXMLCryptoContext): JLString; static; overload;
    class procedure removeAllChildren(para1: OWDNode); static; overload;
    class function nodesEqual(para1: OWDNode; para2: OWDNode): jboolean; static; overload;
    class procedure appendChild(para1: OWDNode; para2: OWDNode); static; overload;
    class function paramsEqual(para1: JSSAlgorithmParameterSpec; para2: JSSAlgorithmParameterSpec): jboolean; static; overload;
  end;

  OJXDIDUtils = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'Utils' (JLObject)
  public
    class function readBytesFromStream(para1: JIInputStream): Arr1jbyte; static; overload;  // throws java.io.IOException
    class function parseIdFromSameDocumentURI(para1: JLString): JLString; static; overload;
    class function sameDocumentURI(para1: JLString): jboolean; static; overload;
  end;

  OOCARG_IN = interface external 'org.omg.CORBA' name 'ARG_IN' 
    const
      value = 1;
  end;

  OOCARG_INOUT = interface external 'org.omg.CORBA' name 'ARG_INOUT' 
    const
      value = 3;
  end;

  OOCARG_OUT = interface external 'org.omg.CORBA' name 'ARG_OUT' 
    const
      value = 2;
  end;

  OOCAnySeqHelper = class abstract external 'org.omg.CORBA' name 'AnySeqHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: Arr1OOCAny); static; overload;
    class procedure insert(para1: OOCAny; var para2: array of OOCAny); static; overload;
    class function extract(para1: OOCAny): Arr1OOCAny; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): Arr1OOCAny; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: Arr1OOCAny); static; overload;
    class procedure write(para1: OOCPOutputStream; var para2: array of OOCAny); static; overload;
  end;

  OOCBAD_POLICY = interface external 'org.omg.CORBA' name 'BAD_POLICY' 
    const
      value = 0;
  end;

  OOCBAD_POLICY_TYPE = interface external 'org.omg.CORBA' name 'BAD_POLICY_TYPE' 
    const
      value = 2;
  end;

  OOCBAD_POLICY_VALUE = interface external 'org.omg.CORBA' name 'BAD_POLICY_VALUE' 
    const
      value = 3;
  end;

  OOCBooleanSeqHelper = class abstract external 'org.omg.CORBA' name 'BooleanSeqHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: Arr1jboolean); static; overload;
    class procedure insert(para1: OOCAny; var para2: array of jboolean); static; overload;
    class function extract(para1: OOCAny): Arr1jboolean; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): Arr1jboolean; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: Arr1jboolean); static; overload;
    class procedure write(para1: OOCPOutputStream; var para2: array of jboolean); static; overload;
  end;

  OOCCTX_RESTRICT_SCOPE = interface external 'org.omg.CORBA' name 'CTX_RESTRICT_SCOPE' 
    const
      value = 15;
  end;

  OOCCharSeqHelper = class abstract external 'org.omg.CORBA' name 'CharSeqHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: Arr1jchar); static; overload;
    class procedure insert(para1: OOCAny; var para2: array of jchar); static; overload;
    class function extract(para1: OOCAny): Arr1jchar; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): Arr1jchar; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: Arr1jchar); static; overload;
    class procedure write(para1: OOCPOutputStream; var para2: array of jchar); static; overload;
  end;

  OOCCompletionStatusHelper = class abstract external 'org.omg.CORBA' name 'CompletionStatusHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOCCompletionStatus); static; overload;
    class function extract(para1: OOCAny): OOCCompletionStatus; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOCCompletionStatus; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOCCompletionStatus); static; overload;
  end;

  OOCContext = class abstract external 'org.omg.CORBA' name 'Context' (JLObject)
  public
    constructor create(); overload;
    function context_name(): JLString; overload; virtual; abstract;
    function parent(): OOCContext; overload; virtual; abstract;
    function create_child(para1: JLString): OOCContext; overload; virtual; abstract;
    procedure set_one_value(para1: JLString; para2: OOCAny); overload; virtual; abstract;
    procedure set_values(para1: OOCNVList); overload; virtual; abstract;
    procedure delete_values(para1: JLString); overload; virtual; abstract;
    function get_values(para1: JLString; para2: jint; para3: JLString): OOCNVList; overload; virtual; abstract;
  end;

  OOCContextList = class abstract external 'org.omg.CORBA' name 'ContextList' (JLObject)
  public
    constructor create(); overload;
    function count(): jint; overload; virtual; abstract;
    procedure add(para1: JLString); overload; virtual; abstract;
    function item(para1: jint): JLString; overload; virtual; abstract;  // throws org.omg.CORBA.Bounds
    procedure remove(para1: jint); overload; virtual; abstract;  // throws org.omg.CORBA.Bounds
  end;

  OOCCurrentHelper = class abstract external 'org.omg.CORBA' name 'CurrentHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOCCurrent); static; overload;
    class function extract(para1: OOCAny): OOCCurrent; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOCCurrent; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOCCurrent); static; overload;
    class function narrow(para1: OOCObject): OOCCurrent; static; overload;
  end;

  OOCCurrentOperations = interface external 'org.omg.CORBA' name 'CurrentOperations' 
  end;

  OOCCustomMarshal = interface external 'org.omg.CORBA' name 'CustomMarshal' 
    procedure marshal(para1: OOCDataOutputStream); overload;
    procedure unmarshal(para1: OOCDataInputStream); overload;
  end;

  OOCDefinitionKindHelper = class abstract external 'org.omg.CORBA' name 'DefinitionKindHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOCDefinitionKind); static; overload;
    class function extract(para1: OOCAny): OOCDefinitionKind; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOCDefinitionKind; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOCDefinitionKind); static; overload;
  end;

  OOCDomainManagerOperations = interface external 'org.omg.CORBA' name 'DomainManagerOperations' 
    function get_domain_policy(para1: jint): OOCPolicy; overload;
  end;

  OOCDoubleSeqHelper = class abstract external 'org.omg.CORBA' name 'DoubleSeqHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: Arr1jdouble); static; overload;
    class procedure insert(para1: OOCAny; var para2: array of jdouble); static; overload;
    class function extract(para1: OOCAny): Arr1jdouble; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): Arr1jdouble; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: Arr1jdouble); static; overload;
    class procedure write(para1: OOCPOutputStream; var para2: array of jdouble); static; overload;
  end;

  OOCEnvironment = class abstract external 'org.omg.CORBA' name 'Environment' (JLObject)
  public
    constructor create(); overload;
    function exception(): JLException; overload; virtual; abstract;
    procedure exception(para1: JLException); overload; virtual; abstract;
    procedure clear(); overload; virtual; abstract;
  end;

  OOCExceptionList = class abstract external 'org.omg.CORBA' name 'ExceptionList' (JLObject)
  public
    constructor create(); overload;
    function count(): jint; overload; virtual; abstract;
    procedure add(para1: OOCTypeCode); overload; virtual; abstract;
    function item(para1: jint): OOCTypeCode; overload; virtual; abstract;  // throws org.omg.CORBA.Bounds
    procedure remove(para1: jint); overload; virtual; abstract;  // throws org.omg.CORBA.Bounds
  end;

  OOCFieldNameHelper = class abstract external 'org.omg.CORBA' name 'FieldNameHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: JLString); static; overload;
    class function extract(para1: OOCAny): JLString; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): JLString; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: JLString); static; overload;
  end;

  OOCFloatSeqHelper = class abstract external 'org.omg.CORBA' name 'FloatSeqHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: Arr1jfloat); static; overload;
    class procedure insert(para1: OOCAny; var para2: array of jfloat); static; overload;
    class function extract(para1: OOCAny): Arr1jfloat; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): Arr1jfloat; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: Arr1jfloat); static; overload;
    class procedure write(para1: OOCPOutputStream; var para2: array of jfloat); static; overload;
  end;

  OOCIDLTypeHelper = class abstract external 'org.omg.CORBA' name 'IDLTypeHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOCIDLType); static; overload;
    class function extract(para1: OOCAny): OOCIDLType; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOCIDLType; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOCIDLType); static; overload;
    class function narrow(para1: OOCObject): OOCIDLType; static; overload;
  end;

  OOCIRObjectOperations = interface external 'org.omg.CORBA' name 'IRObjectOperations' 
    function def_kind(): OOCDefinitionKind; overload;
    procedure destroy(); overload;
  end;

  OOCIdentifierHelper = class abstract external 'org.omg.CORBA' name 'IdentifierHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: JLString); static; overload;
    class function extract(para1: OOCAny): JLString; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): JLString; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: JLString); static; overload;
  end;

  OOCLongLongSeqHelper = class abstract external 'org.omg.CORBA' name 'LongLongSeqHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: Arr1jlong); static; overload;
    class procedure insert(para1: OOCAny; var para2: array of jlong); static; overload;
    class function extract(para1: OOCAny): Arr1jlong; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): Arr1jlong; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: Arr1jlong); static; overload;
    class procedure write(para1: OOCPOutputStream; var para2: array of jlong); static; overload;
  end;

  OOCLongSeqHelper = class abstract external 'org.omg.CORBA' name 'LongSeqHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: Arr1jint); static; overload;
    class procedure insert(para1: OOCAny; var para2: array of jint); static; overload;
    class function extract(para1: OOCAny): Arr1jint; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): Arr1jint; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: Arr1jint); static; overload;
    class procedure write(para1: OOCPOutputStream; var para2: array of jint); static; overload;
  end;

  OOCNVList = class abstract external 'org.omg.CORBA' name 'NVList' (JLObject)
  public
    constructor create(); overload;
    function count(): jint; overload; virtual; abstract;
    function add(para1: jint): OOCNamedValue; overload; virtual; abstract;
    function add_item(para1: JLString; para2: jint): OOCNamedValue; overload; virtual; abstract;
    function add_value(para1: JLString; para2: OOCAny; para3: jint): OOCNamedValue; overload; virtual; abstract;
    function item(para1: jint): OOCNamedValue; overload; virtual; abstract;  // throws org.omg.CORBA.Bounds
    procedure remove(para1: jint); overload; virtual; abstract;  // throws org.omg.CORBA.Bounds
  end;

  OOCNameValuePairHelper = class abstract external 'org.omg.CORBA' name 'NameValuePairHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOCNameValuePair); static; overload;
    class function extract(para1: OOCAny): OOCNameValuePair; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOCNameValuePair; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOCNameValuePair); static; overload;
  end;

  OOCNamedValue = class abstract external 'org.omg.CORBA' name 'NamedValue' (JLObject)
  public
    constructor create(); overload;
    function name(): JLString; overload; virtual; abstract;
    function value(): OOCAny; overload; virtual; abstract;
    function flags(): jint; overload; virtual; abstract;
  end;

  OOCOMGVMCID = interface external 'org.omg.CORBA' name 'OMGVMCID' 
    const
      value = 1330446336;
  end;

  OOCORB = class abstract external 'org.omg.CORBA' name 'ORB' (JLObject)
  public
    constructor create(); overload;
    class function init(): OOCORB; static; overload;
    class function init(para1: Arr1JLString; para2: JUProperties): OOCORB; static; overload;
    class function init(var para1: array of JLString; para2: JUProperties): OOCORB; static; overload;
    class function init(para1: JAApplet; para2: JUProperties): OOCORB; static; overload;
  strict protected
    procedure set_parameters(para1: Arr1JLString; para2: JUProperties); overload; virtual; abstract;
    procedure set_parameters(var para1: array of JLString; para2: JUProperties); overload; virtual; abstract;
    procedure set_parameters(para1: JAApplet; para2: JUProperties); overload; virtual; abstract;
  public
    procedure connect(para1: OOCObject); overload; virtual;
    procedure destroy(); overload; virtual;
    procedure disconnect(para1: OOCObject); overload; virtual;
    function list_initial_services(): Arr1JLString; overload; virtual; abstract;
    function resolve_initial_references(para1: JLString): OOCObject; overload; virtual; abstract;  // throws org.omg.CORBA.ORBPackage.InvalidName
    function object_to_string(para1: OOCObject): JLString; overload; virtual; abstract;
    function string_to_object(para1: JLString): OOCObject; overload; virtual; abstract;
    function create_list(para1: jint): OOCNVList; overload; virtual; abstract;
    function create_operation_list(para1: OOCObject): OOCNVList; overload; virtual;
    function create_named_value(para1: JLString; para2: OOCAny; para3: jint): OOCNamedValue; overload; virtual; abstract;
    function create_exception_list(): OOCExceptionList; overload; virtual; abstract;
    function create_context_list(): OOCContextList; overload; virtual; abstract;
    function get_default_context(): OOCContext; overload; virtual; abstract;
    function create_environment(): OOCEnvironment; overload; virtual; abstract;
    function create_output_stream(): OOCPOutputStream; overload; virtual; abstract;
    procedure send_multiple_requests_oneway(para1: Arr1OOCRequest); overload; virtual; abstract;
    procedure send_multiple_requests_oneway(var para1: array of OOCRequest); overload; virtual; abstract;
    procedure send_multiple_requests_deferred(para1: Arr1OOCRequest); overload; virtual; abstract;
    procedure send_multiple_requests_deferred(var para1: array of OOCRequest); overload; virtual; abstract;
    function poll_next_response(): jboolean; overload; virtual; abstract;
    function get_next_response(): OOCRequest; overload; virtual; abstract;  // throws org.omg.CORBA.WrongTransaction
    function get_primitive_tc(para1: OOCTCKind): OOCTypeCode; overload; virtual; abstract;
    function create_struct_tc(para1: JLString; para2: JLString; para3: Arr1OOCStructMember): OOCTypeCode; overload; virtual; abstract;
    function create_struct_tc(para1: JLString; para2: JLString; var para3: array of OOCStructMember): OOCTypeCode; overload; virtual; abstract;
    function create_union_tc(para1: JLString; para2: JLString; para3: OOCTypeCode; para4: Arr1OOCUnionMember): OOCTypeCode; overload; virtual; abstract;
    function create_union_tc(para1: JLString; para2: JLString; para3: OOCTypeCode; var para4: array of OOCUnionMember): OOCTypeCode; overload; virtual; abstract;
    function create_enum_tc(para1: JLString; para2: JLString; para3: Arr1JLString): OOCTypeCode; overload; virtual; abstract;
    function create_enum_tc(para1: JLString; para2: JLString; var para3: array of JLString): OOCTypeCode; overload; virtual; abstract;
    function create_alias_tc(para1: JLString; para2: JLString; para3: OOCTypeCode): OOCTypeCode; overload; virtual; abstract;
    function create_exception_tc(para1: JLString; para2: JLString; para3: Arr1OOCStructMember): OOCTypeCode; overload; virtual; abstract;
    function create_exception_tc(para1: JLString; para2: JLString; var para3: array of OOCStructMember): OOCTypeCode; overload; virtual; abstract;
    function create_interface_tc(para1: JLString; para2: JLString): OOCTypeCode; overload; virtual; abstract;
    function create_string_tc(para1: jint): OOCTypeCode; overload; virtual; abstract;
    function create_wstring_tc(para1: jint): OOCTypeCode; overload; virtual; abstract;
    function create_sequence_tc(para1: jint; para2: OOCTypeCode): OOCTypeCode; overload; virtual; abstract;
    function create_recursive_sequence_tc(para1: jint; para2: jint): OOCTypeCode; overload; virtual; abstract;
    function create_array_tc(para1: jint; para2: OOCTypeCode): OOCTypeCode; overload; virtual; abstract;
    function create_native_tc(para1: JLString; para2: JLString): OOCTypeCode; overload; virtual;
    function create_abstract_interface_tc(para1: JLString; para2: JLString): OOCTypeCode; overload; virtual;
    function create_fixed_tc(para1: jshort; para2: jshort): OOCTypeCode; overload; virtual;
    function create_value_tc(para1: JLString; para2: JLString; para3: jshort; para4: OOCTypeCode; para5: Arr1OOCValueMember): OOCTypeCode; overload; virtual;
    function create_value_tc(para1: JLString; para2: JLString; para3: jshort; para4: OOCTypeCode; var para5: array of OOCValueMember): OOCTypeCode; overload; virtual;
    function create_recursive_tc(para1: JLString): OOCTypeCode; overload; virtual;
    function create_value_box_tc(para1: JLString; para2: JLString; para3: OOCTypeCode): OOCTypeCode; overload; virtual;
    function create_any(): OOCAny; overload; virtual; abstract;
    function get_current(): OOCCurrent; overload; virtual;
    procedure run(); overload; virtual;
    procedure shutdown(para1: jboolean); overload; virtual;
    function work_pending(): jboolean; overload; virtual;
    procedure perform_work(); overload; virtual;
    function get_service_information(para1: jshort; para2: OOCServiceInformationHolder): jboolean; overload; virtual;
    function create_dyn_any(para1: OOCAny): OOCDynAny; overload; virtual;
    function create_basic_dyn_any(para1: OOCTypeCode): OOCDynAny; overload; virtual;  // throws org.omg.CORBA.ORBPackage.InconsistentTypeCode
    function create_dyn_struct(para1: OOCTypeCode): OOCDynStruct; overload; virtual;  // throws org.omg.CORBA.ORBPackage.InconsistentTypeCode
    function create_dyn_sequence(para1: OOCTypeCode): OOCDynSequence; overload; virtual;  // throws org.omg.CORBA.ORBPackage.InconsistentTypeCode
    function create_dyn_array(para1: OOCTypeCode): OOCDynArray; overload; virtual;  // throws org.omg.CORBA.ORBPackage.InconsistentTypeCode
    function create_dyn_union(para1: OOCTypeCode): OOCDynUnion; overload; virtual;  // throws org.omg.CORBA.ORBPackage.InconsistentTypeCode
    function create_dyn_enum(para1: OOCTypeCode): OOCDynEnum; overload; virtual;  // throws org.omg.CORBA.ORBPackage.InconsistentTypeCode
    function create_policy(para1: jint; para2: OOCAny): OOCPolicy; overload; virtual;  // throws org.omg.CORBA.PolicyError
  end;

  OOCObject = interface external 'org.omg.CORBA' name 'Object' 
    function _is_a(para1: JLString): jboolean; overload;
    function _is_equivalent(para1: OOCObject): jboolean; overload;
    function _non_existent(): jboolean; overload;
    function _hash(para1: jint): jint; overload;
    function _duplicate(): OOCObject; overload;
    procedure _release(); overload;
    function _get_interface_def(): OOCObject; overload;
    function _request(para1: JLString): OOCRequest; overload;
    function _create_request(para1: OOCContext; para2: JLString; para3: OOCNVList; para4: OOCNamedValue): OOCRequest; overload;
    function _create_request(para1: OOCContext; para2: JLString; para3: OOCNVList; para4: OOCNamedValue; para5: OOCExceptionList; para6: OOCContextList): OOCRequest; overload;
    function _get_policy(para1: jint): OOCPolicy; overload;
    function _get_domain_managers(): Arr1OOCDomainManager; overload;
    function _set_policy_override(para1: Arr1OOCPolicy; para2: OOCSetOverrideType): OOCObject; overload;
    function _set_policy_override(var para1: array of OOCPolicy; para2: OOCSetOverrideType): OOCObject; overload;
  end;

  OOCObjectHelper = class abstract external 'org.omg.CORBA' name 'ObjectHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOCObject); static; overload;
    class function extract(para1: OOCAny): OOCObject; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOCObject; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOCObject); static; overload;
  end;

  OOCOctetSeqHelper = class abstract external 'org.omg.CORBA' name 'OctetSeqHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: Arr1jbyte); static; overload;
    class procedure insert(para1: OOCAny; var para2: array of jbyte); static; overload;
    class function extract(para1: OOCAny): Arr1jbyte; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): Arr1jbyte; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: Arr1jbyte); static; overload;
    class procedure write(para1: OOCPOutputStream; var para2: array of jbyte); static; overload;
  end;

  OOCPRIVATE_MEMBER = interface external 'org.omg.CORBA' name 'PRIVATE_MEMBER' 
    const
      value = 0;
  end;

  OOCPUBLIC_MEMBER = interface external 'org.omg.CORBA' name 'PUBLIC_MEMBER' 
    const
      value = 1;
  end;

  OOCParameterModeHelper = class abstract external 'org.omg.CORBA' name 'ParameterModeHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOCParameterMode); static; overload;
    class function extract(para1: OOCAny): OOCParameterMode; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOCParameterMode; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOCParameterMode); static; overload;
  end;

  OOCPolicyErrorCodeHelper = class abstract external 'org.omg.CORBA' name 'PolicyErrorCodeHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: jshort); static; overload;
    class function extract(para1: OOCAny): jshort; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): jshort; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: jshort); static; overload;
  end;

  OOCPolicyErrorHelper = class abstract external 'org.omg.CORBA' name 'PolicyErrorHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOCPolicyError); static; overload;
    class function extract(para1: OOCAny): OOCPolicyError; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOCPolicyError; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOCPolicyError); static; overload;
  end;

  OOCPolicyHelper = class abstract external 'org.omg.CORBA' name 'PolicyHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOCPolicy); static; overload;
    class function extract(para1: OOCAny): OOCPolicy; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOCPolicy; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOCPolicy); static; overload;
    class function narrow(para1: OOCObject): OOCPolicy; static; overload;
  end;

  OOCPolicyListHelper = class abstract external 'org.omg.CORBA' name 'PolicyListHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: Arr1OOCPolicy); static; overload;
    class procedure insert(para1: OOCAny; var para2: array of OOCPolicy); static; overload;
    class function extract(para1: OOCAny): Arr1OOCPolicy; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): Arr1OOCPolicy; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: Arr1OOCPolicy); static; overload;
    class procedure write(para1: OOCPOutputStream; var para2: array of OOCPolicy); static; overload;
  end;

  OOCPolicyOperations = interface external 'org.omg.CORBA' name 'PolicyOperations' 
    function policy_type(): jint; overload;
    function copy(): OOCPolicy; overload;
    procedure destroy(); overload;
  end;

  OOCPolicyTypeHelper = class abstract external 'org.omg.CORBA' name 'PolicyTypeHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: jint); static; overload;
    class function extract(para1: OOCAny): jint; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): jint; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: jint); static; overload;
  end;

  OOCPrincipal = class external 'org.omg.CORBA' name 'Principal' (JLObject)
  public
    constructor create(); overload;
    procedure name(para1: Arr1jbyte); overload; virtual;
    procedure name(var para1: array of jbyte); overload; virtual;
    function name(): Arr1jbyte; overload; virtual;
  end;

  OOCRepositoryIdHelper = class abstract external 'org.omg.CORBA' name 'RepositoryIdHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: JLString); static; overload;
    class function extract(para1: OOCAny): JLString; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): JLString; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: JLString); static; overload;
  end;

  OOCRequest = class abstract external 'org.omg.CORBA' name 'Request' (JLObject)
  public
    constructor create(); overload;
    function target(): OOCObject; overload; virtual; abstract;
    function operation(): JLString; overload; virtual; abstract;
    function arguments(): OOCNVList; overload; virtual; abstract;
    function result(): OOCNamedValue; overload; virtual; abstract;
    function env(): OOCEnvironment; overload; virtual; abstract;
    function exceptions(): OOCExceptionList; overload; virtual; abstract;
    function contexts(): OOCContextList; overload; virtual; abstract;
    function ctx(): OOCContext; overload; virtual; abstract;
    procedure ctx(para1: OOCContext); overload; virtual; abstract;
    function add_in_arg(): OOCAny; overload; virtual; abstract;
    function add_named_in_arg(para1: JLString): OOCAny; overload; virtual; abstract;
    function add_inout_arg(): OOCAny; overload; virtual; abstract;
    function add_named_inout_arg(para1: JLString): OOCAny; overload; virtual; abstract;
    function add_out_arg(): OOCAny; overload; virtual; abstract;
    function add_named_out_arg(para1: JLString): OOCAny; overload; virtual; abstract;
    procedure set_return_type(para1: OOCTypeCode); overload; virtual; abstract;
    function return_value(): OOCAny; overload; virtual; abstract;
    procedure invoke(); overload; virtual; abstract;
    procedure send_oneway(); overload; virtual; abstract;
    procedure send_deferred(); overload; virtual; abstract;
    function poll_response(): jboolean; overload; virtual; abstract;
    procedure get_response(); overload; virtual; abstract;  // throws org.omg.CORBA.WrongTransaction
  end;

  OOCServerRequest = class abstract external 'org.omg.CORBA' name 'ServerRequest' (JLObject)
  public
    constructor create(); overload;
    function op_name(): JLString; overload; virtual;
    function operation(): JLString; overload; virtual;
    procedure params(para1: OOCNVList); overload; virtual;
    procedure arguments(para1: OOCNVList); overload; virtual;
    procedure result(para1: OOCAny); overload; virtual;
    procedure set_result(para1: OOCAny); overload; virtual;
    procedure &except(para1: OOCAny); overload; virtual;
    procedure set_exception(para1: OOCAny); overload; virtual;
    function ctx(): OOCContext; overload; virtual; abstract;
  end;

  OOCServiceDetailHelper = class abstract external 'org.omg.CORBA' name 'ServiceDetailHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure write(para1: OOCPOutputStream; para2: OOCServiceDetail); static; overload;
    class function read(para1: OOCPInputStream): OOCServiceDetail; static; overload;
    class function extract(para1: OOCAny): OOCServiceDetail; static; overload;
    class procedure insert(para1: OOCAny; para2: OOCServiceDetail); static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
  end;

  OOCServiceInformationHelper = class abstract external 'org.omg.CORBA' name 'ServiceInformationHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure write(para1: OOCPOutputStream; para2: OOCServiceInformation); static; overload;
    class function read(para1: OOCPInputStream): OOCServiceInformation; static; overload;
    class function extract(para1: OOCAny): OOCServiceInformation; static; overload;
    class procedure insert(para1: OOCAny; para2: OOCServiceInformation); static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
  end;

  OOCSetOverrideTypeHelper = class abstract external 'org.omg.CORBA' name 'SetOverrideTypeHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOCSetOverrideType); static; overload;
    class function extract(para1: OOCAny): OOCSetOverrideType; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOCSetOverrideType; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOCSetOverrideType); static; overload;
  end;

  OOCShortSeqHelper = class abstract external 'org.omg.CORBA' name 'ShortSeqHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: Arr1jshort); static; overload;
    class procedure insert(para1: OOCAny; var para2: array of jshort); static; overload;
    class function extract(para1: OOCAny): Arr1jshort; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): Arr1jshort; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: Arr1jshort); static; overload;
    class procedure write(para1: OOCPOutputStream; var para2: array of jshort); static; overload;
  end;

  OOCStringSeqHelper = class abstract external 'org.omg.CORBA' name 'StringSeqHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: Arr1JLString); static; overload;
    class procedure insert(para1: OOCAny; var para2: array of JLString); static; overload;
    class function extract(para1: OOCAny): Arr1JLString; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): Arr1JLString; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: Arr1JLString); static; overload;
    class procedure write(para1: OOCPOutputStream; var para2: array of JLString); static; overload;
  end;

  OOCStructMemberHelper = class abstract external 'org.omg.CORBA' name 'StructMemberHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOCStructMember); static; overload;
    class function extract(para1: OOCAny): OOCStructMember; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOCStructMember; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOCStructMember); static; overload;
  end;

  OOCTCKind = class external 'org.omg.CORBA' name 'TCKind' (JLObject)
  public
    const
      _tk_null = 0;
      _tk_void = 1;
      _tk_short = 2;
      _tk_long = 3;
      _tk_ushort = 4;
      _tk_ulong = 5;
      _tk_float = 6;
      _tk_double = 7;
      _tk_boolean = 8;
      _tk_char = 9;
      _tk_octet = 10;
      _tk_any = 11;
      _tk_TypeCode = 12;
      _tk_Principal = 13;
      _tk_objref = 14;
      _tk_struct = 15;
      _tk_union = 16;
      _tk_enum = 17;
      _tk_string = 18;
      _tk_sequence = 19;
      _tk_array = 20;
      _tk_alias = 21;
      _tk_except = 22;
      _tk_longlong = 23;
      _tk_ulonglong = 24;
      _tk_longdouble = 25;
      _tk_wchar = 26;
      _tk_wstring = 27;
      _tk_fixed = 28;
      _tk_value = 29;
      _tk_value_box = 30;
      _tk_native = 31;
      _tk_abstract_interface = 32;
  public
    final class var
      ftk_null: OOCTCKind; external name 'tk_null';
      ftk_void: OOCTCKind; external name 'tk_void';
      ftk_short: OOCTCKind; external name 'tk_short';
      ftk_long: OOCTCKind; external name 'tk_long';
      ftk_ushort: OOCTCKind; external name 'tk_ushort';
      ftk_ulong: OOCTCKind; external name 'tk_ulong';
      ftk_float: OOCTCKind; external name 'tk_float';
      ftk_double: OOCTCKind; external name 'tk_double';
      ftk_boolean: OOCTCKind; external name 'tk_boolean';
      ftk_char: OOCTCKind; external name 'tk_char';
      ftk_octet: OOCTCKind; external name 'tk_octet';
      ftk_any: OOCTCKind; external name 'tk_any';
      ftk_TypeCode: OOCTCKind; external name 'tk_TypeCode';
      ftk_Principal: OOCTCKind; external name 'tk_Principal';
      ftk_objref: OOCTCKind; external name 'tk_objref';
      ftk_struct: OOCTCKind; external name 'tk_struct';
      ftk_union: OOCTCKind; external name 'tk_union';
      ftk_enum: OOCTCKind; external name 'tk_enum';
      ftk_string: OOCTCKind; external name 'tk_string';
      ftk_sequence: OOCTCKind; external name 'tk_sequence';
      ftk_array: OOCTCKind; external name 'tk_array';
      ftk_alias: OOCTCKind; external name 'tk_alias';
      ftk_except: OOCTCKind; external name 'tk_except';
      ftk_longlong: OOCTCKind; external name 'tk_longlong';
      ftk_ulonglong: OOCTCKind; external name 'tk_ulonglong';
      ftk_longdouble: OOCTCKind; external name 'tk_longdouble';
      ftk_wchar: OOCTCKind; external name 'tk_wchar';
      ftk_wstring: OOCTCKind; external name 'tk_wstring';
      ftk_fixed: OOCTCKind; external name 'tk_fixed';
      ftk_value: OOCTCKind; external name 'tk_value';
      ftk_value_box: OOCTCKind; external name 'tk_value_box';
      ftk_native: OOCTCKind; external name 'tk_native';
      ftk_abstract_interface: OOCTCKind; external name 'tk_abstract_interface';
  public
    function value(): jint; overload; virtual;
    class function from_int(para1: jint): OOCTCKind; static; overload;
  strict protected
    constructor create(para1: jint); overload;
  end;

  OOCULongLongSeqHelper = class abstract external 'org.omg.CORBA' name 'ULongLongSeqHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: Arr1jlong); static; overload;
    class procedure insert(para1: OOCAny; var para2: array of jlong); static; overload;
    class function extract(para1: OOCAny): Arr1jlong; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): Arr1jlong; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: Arr1jlong); static; overload;
    class procedure write(para1: OOCPOutputStream; var para2: array of jlong); static; overload;
  end;

  OOCULongSeqHelper = class abstract external 'org.omg.CORBA' name 'ULongSeqHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: Arr1jint); static; overload;
    class procedure insert(para1: OOCAny; var para2: array of jint); static; overload;
    class function extract(para1: OOCAny): Arr1jint; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): Arr1jint; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: Arr1jint); static; overload;
    class procedure write(para1: OOCPOutputStream; var para2: array of jint); static; overload;
  end;

  OOCUNSUPPORTED_POLICY = interface external 'org.omg.CORBA' name 'UNSUPPORTED_POLICY' 
    const
      value = 1;
  end;

  OOCUNSUPPORTED_POLICY_VALUE = interface external 'org.omg.CORBA' name 'UNSUPPORTED_POLICY_VALUE' 
    const
      value = 4;
  end;

  OOCUShortSeqHelper = class abstract external 'org.omg.CORBA' name 'UShortSeqHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: Arr1jshort); static; overload;
    class procedure insert(para1: OOCAny; var para2: array of jshort); static; overload;
    class function extract(para1: OOCAny): Arr1jshort; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): Arr1jshort; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: Arr1jshort); static; overload;
    class procedure write(para1: OOCPOutputStream; var para2: array of jshort); static; overload;
  end;

  OOCUnionMemberHelper = class abstract external 'org.omg.CORBA' name 'UnionMemberHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOCUnionMember); static; overload;
    class function extract(para1: OOCAny): OOCUnionMember; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOCUnionMember; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOCUnionMember); static; overload;
  end;

  OOCUnknownUserExceptionHelper = class abstract external 'org.omg.CORBA' name 'UnknownUserExceptionHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOCUnknownUserException); static; overload;
    class function extract(para1: OOCAny): OOCUnknownUserException; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOCUnknownUserException; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOCUnknownUserException); static; overload;
  end;

  OOCVM_ABSTRACT = interface external 'org.omg.CORBA' name 'VM_ABSTRACT' 
    const
      value = 2;
  end;

  OOCVM_CUSTOM = interface external 'org.omg.CORBA' name 'VM_CUSTOM' 
    const
      value = 1;
  end;

  OOCVM_NONE = interface external 'org.omg.CORBA' name 'VM_NONE' 
    const
      value = 0;
  end;

  OOCVM_TRUNCATABLE = interface external 'org.omg.CORBA' name 'VM_TRUNCATABLE' 
    const
      value = 3;
  end;

  OOCValueBaseHelper = class abstract external 'org.omg.CORBA' name 'ValueBaseHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: JISerializable); static; overload;
    class function extract(para1: OOCAny): JISerializable; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): JISerializable; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: JISerializable); static; overload;
  end;

  OOCValueMemberHelper = class abstract external 'org.omg.CORBA' name 'ValueMemberHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOCValueMember); static; overload;
    class function extract(para1: OOCAny): OOCValueMember; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOCValueMember; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOCValueMember); static; overload;
  end;

  OOCVersionSpecHelper = class abstract external 'org.omg.CORBA' name 'VersionSpecHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: JLString); static; overload;
    class function extract(para1: OOCAny): JLString; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): JLString; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: JLString); static; overload;
  end;

  OOCVisibilityHelper = class abstract external 'org.omg.CORBA' name 'VisibilityHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: jshort); static; overload;
    class function extract(para1: OOCAny): jshort; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): jshort; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: jshort); static; overload;
  end;

  OOCWCharSeqHelper = class abstract external 'org.omg.CORBA' name 'WCharSeqHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: Arr1jchar); static; overload;
    class procedure insert(para1: OOCAny; var para2: array of jchar); static; overload;
    class function extract(para1: OOCAny): Arr1jchar; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): Arr1jchar; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: Arr1jchar); static; overload;
    class procedure write(para1: OOCPOutputStream; var para2: array of jchar); static; overload;
  end;

  OOCWStringSeqHelper = class abstract external 'org.omg.CORBA' name 'WStringSeqHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: Arr1JLString); static; overload;
    class procedure insert(para1: OOCAny; var para2: array of JLString); static; overload;
    class function extract(para1: OOCAny): Arr1JLString; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): Arr1JLString; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: Arr1JLString); static; overload;
    class procedure write(para1: OOCPOutputStream; var para2: array of JLString); static; overload;
  end;

  OOCWrongTransactionHelper = class abstract external 'org.omg.CORBA' name 'WrongTransactionHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOCWrongTransaction); static; overload;
    class function extract(para1: OOCAny): OOCWrongTransaction; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOCWrongTransaction; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOCWrongTransaction); static; overload;
  end;

  OOCPBoxedValueHelper = interface external 'org.omg.CORBA.portable' name 'BoxedValueHelper' 
    function read_value(para1: OOCPInputStream): JISerializable; overload;
    procedure write_value(para1: OOCPOutputStream; para2: JISerializable); overload;
    function get_id(): JLString; overload;
  end;

  OOCPDelegate = class abstract external 'org.omg.CORBA.portable' name 'Delegate' (JLObject)
  public
    constructor create(); overload;
    function get_interface_def(para1: OOCObject): OOCObject; overload; virtual; abstract;
    function duplicate(para1: OOCObject): OOCObject; overload; virtual; abstract;
    procedure release(para1: OOCObject); overload; virtual; abstract;
    function is_a(para1: OOCObject; para2: JLString): jboolean; overload; virtual; abstract;
    function non_existent(para1: OOCObject): jboolean; overload; virtual; abstract;
    function is_equivalent(para1: OOCObject; para2: OOCObject): jboolean; overload; virtual; abstract;
    function hash(para1: OOCObject; para2: jint): jint; overload; virtual; abstract;
    function request(para1: OOCObject; para2: JLString): OOCRequest; overload; virtual; abstract;
    function create_request(para1: OOCObject; para2: OOCContext; para3: JLString; para4: OOCNVList; para5: OOCNamedValue): OOCRequest; overload; virtual; abstract;
    function create_request(para1: OOCObject; para2: OOCContext; para3: JLString; para4: OOCNVList; para5: OOCNamedValue; para6: OOCExceptionList; para7: OOCContextList): OOCRequest; overload; virtual; abstract;
    function orb(para1: OOCObject): OOCORB; overload; virtual;
    function get_policy(para1: OOCObject; para2: jint): OOCPolicy; overload; virtual;
    function get_domain_managers(para1: OOCObject): Arr1OOCDomainManager; overload; virtual;
    function set_policy_override(para1: OOCObject; para2: Arr1OOCPolicy; para3: OOCSetOverrideType): OOCObject; overload; virtual;
    function set_policy_override(para1: OOCObject; var para2: array of OOCPolicy; para3: OOCSetOverrideType): OOCObject; overload; virtual;
    function is_local(para1: OOCObject): jboolean; overload; virtual;
    function servant_preinvoke(para1: OOCObject; para2: JLString; para3: JLClass): OOCPServantObject; overload; virtual;
    procedure servant_postinvoke(para1: OOCObject; para2: OOCPServantObject); overload; virtual;
    function request(para1: OOCObject; para2: JLString; para3: jboolean): OOCPOutputStream; overload; virtual;
    function invoke(para1: OOCObject; para2: OOCPOutputStream): OOCPInputStream; overload; virtual;  // throws org.omg.CORBA.portable.ApplicationException, org.omg.CORBA.portable.RemarshalException
    procedure releaseReply(para1: OOCObject; para2: OOCPInputStream); overload; virtual;
    function toString(para1: OOCObject): JLString; overload; virtual;
    function hashCode(para1: OOCObject): jint; overload; virtual;
    function equals(para1: OOCObject; para2: JLObject): jboolean; overload; virtual;
  end;

  OOCPInvokeHandler = interface external 'org.omg.CORBA.portable' name 'InvokeHandler' 
    function _invoke(para1: JLString; para2: OOCPInputStream; para3: OOCPResponseHandler): OOCPOutputStream; overload;  // throws org.omg.CORBA.SystemException
  end;

  OOCPResponseHandler = interface external 'org.omg.CORBA.portable' name 'ResponseHandler' 
    function createReply(): OOCPOutputStream; overload;
    function createExceptionReply(): OOCPOutputStream; overload;
  end;

  OOCPServantObject = class external 'org.omg.CORBA.portable' name 'ServantObject' (JLObject)
  public
    var
      fservant: JLObject; external name 'servant';
  public
    constructor create(); overload;
  end;

  OOCPStreamable = interface external 'org.omg.CORBA.portable' name 'Streamable' 
    procedure _read(para1: OOCPInputStream); overload;
    procedure _write(para1: OOCPOutputStream); overload;
    function _type(): OOCTypeCode; overload;
  end;

  OOCPValueFactory = interface external 'org.omg.CORBA.portable' name 'ValueFactory' 
    function read_value(para1: OOC_2_3PInputStream): JISerializable; overload;
  end;

  OOCPValueInputStream = interface external 'org.omg.CORBA.portable' name 'ValueInputStream' 
    procedure start_value(); overload;
    procedure end_value(); overload;
  end;

  OOCPValueOutputStream = interface external 'org.omg.CORBA.portable' name 'ValueOutputStream' 
    procedure start_value(para1: JLString); overload;
    procedure end_value(); overload;
  end;

  OOCBindingHelper = class abstract external 'org.omg.CosNaming' name 'BindingHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOCBinding); static; overload;
    class function extract(para1: OOCAny): OOCBinding; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOCBinding; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOCBinding); static; overload;
  end;

  OOCBindingIteratorHelper = class abstract external 'org.omg.CosNaming' name 'BindingIteratorHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOCBindingIterator); static; overload;
    class function extract(para1: OOCAny): OOCBindingIterator; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOCBindingIterator; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOCBindingIterator); static; overload;
    class function narrow(para1: OOCObject): OOCBindingIterator; static; overload;
    class function unchecked_narrow(para1: OOCObject): OOCBindingIterator; static; overload;
  end;

  OOCBindingIteratorOperations = interface external 'org.omg.CosNaming' name 'BindingIteratorOperations' 
    function next_one(para1: OOCBindingHolder): jboolean; overload;
    function next_n(para1: jint; para2: OOCBindingListHolder): jboolean; overload;
    procedure destroy(); overload;
  end;

  OOCBindingListHelper = class abstract external 'org.omg.CosNaming' name 'BindingListHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: Arr1OOCBinding); static; overload;
    class procedure insert(para1: OOCAny; var para2: array of OOCBinding); static; overload;
    class function extract(para1: OOCAny): Arr1OOCBinding; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): Arr1OOCBinding; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: Arr1OOCBinding); static; overload;
    class procedure write(para1: OOCPOutputStream; var para2: array of OOCBinding); static; overload;
  end;

  OOCBindingTypeHelper = class abstract external 'org.omg.CosNaming' name 'BindingTypeHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOCBindingType); static; overload;
    class function extract(para1: OOCAny): OOCBindingType; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOCBindingType; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOCBindingType); static; overload;
  end;

  OOCIstringHelper = class abstract external 'org.omg.CosNaming' name 'IstringHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: JLString); static; overload;
    class function extract(para1: OOCAny): JLString; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): JLString; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: JLString); static; overload;
  end;

  OOCNameComponentHelper = class abstract external 'org.omg.CosNaming' name 'NameComponentHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOCNameComponent); static; overload;
    class function extract(para1: OOCAny): OOCNameComponent; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOCNameComponent; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOCNameComponent); static; overload;
  end;

  OOCNameHelper = class abstract external 'org.omg.CosNaming' name 'NameHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: Arr1OOCNameComponent); static; overload;
    class procedure insert(para1: OOCAny; var para2: array of OOCNameComponent); static; overload;
    class function extract(para1: OOCAny): Arr1OOCNameComponent; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): Arr1OOCNameComponent; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: Arr1OOCNameComponent); static; overload;
    class procedure write(para1: OOCPOutputStream; var para2: array of OOCNameComponent); static; overload;
  end;

  OOCNamingContextExtHelper = class abstract external 'org.omg.CosNaming' name 'NamingContextExtHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOCNamingContextExt); static; overload;
    class function extract(para1: OOCAny): OOCNamingContextExt; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOCNamingContextExt; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOCNamingContextExt); static; overload;
    class function narrow(para1: OOCObject): OOCNamingContextExt; static; overload;
    class function unchecked_narrow(para1: OOCObject): OOCNamingContextExt; static; overload;
  end;

  OOCNAddressHelper = class abstract external 'org.omg.CosNaming.NamingContextExtPackage' name 'AddressHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: JLString); static; overload;
    class function extract(para1: OOCAny): JLString; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): JLString; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: JLString); static; overload;
  end;

  OOCNInvalidAddressHelper = class abstract external 'org.omg.CosNaming.NamingContextExtPackage' name 'InvalidAddressHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOCNInvalidAddress); static; overload;
    class function extract(para1: OOCAny): OOCNInvalidAddress; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOCNInvalidAddress; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOCNInvalidAddress); static; overload;
  end;

  OOCNStringNameHelper = class abstract external 'org.omg.CosNaming.NamingContextExtPackage' name 'StringNameHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: JLString); static; overload;
    class function extract(para1: OOCAny): JLString; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): JLString; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: JLString); static; overload;
  end;

  OOCNURLStringHelper = class abstract external 'org.omg.CosNaming.NamingContextExtPackage' name 'URLStringHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: JLString); static; overload;
    class function extract(para1: OOCAny): JLString; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): JLString; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: JLString); static; overload;
  end;

  OOCNamingContextHelper = class abstract external 'org.omg.CosNaming' name 'NamingContextHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOCNamingContext); static; overload;
    class function extract(para1: OOCAny): OOCNamingContext; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOCNamingContext; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOCNamingContext); static; overload;
    class function narrow(para1: OOCObject): OOCNamingContext; static; overload;
    class function unchecked_narrow(para1: OOCObject): OOCNamingContext; static; overload;
  end;

  OOCNamingContextOperations = interface external 'org.omg.CosNaming' name 'NamingContextOperations' 
    procedure bind(para1: Arr1OOCNameComponent; para2: OOCObject); overload;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName, org.omg.CosNaming.NamingContextPackage.AlreadyBound
    procedure bind(var para1: array of OOCNameComponent; para2: OOCObject); overload;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName, org.omg.CosNaming.NamingContextPackage.AlreadyBound
    procedure bind_context(para1: Arr1OOCNameComponent; para2: OOCNamingContext); overload;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName, org.omg.CosNaming.NamingContextPackage.AlreadyBound
    procedure bind_context(var para1: array of OOCNameComponent; para2: OOCNamingContext); overload;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName, org.omg.CosNaming.NamingContextPackage.AlreadyBound
    procedure rebind(para1: Arr1OOCNameComponent; para2: OOCObject); overload;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName
    procedure rebind(var para1: array of OOCNameComponent; para2: OOCObject); overload;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName
    procedure rebind_context(para1: Arr1OOCNameComponent; para2: OOCNamingContext); overload;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName
    procedure rebind_context(var para1: array of OOCNameComponent; para2: OOCNamingContext); overload;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName
    function resolve(para1: Arr1OOCNameComponent): OOCObject; overload;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName
    function resolve(var para1: array of OOCNameComponent): OOCObject; overload;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName
    procedure unbind(para1: Arr1OOCNameComponent); overload;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName
    procedure unbind(var para1: array of OOCNameComponent); overload;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName
    procedure list(para1: jint; para2: OOCBindingListHolder; para3: OOCBindingIteratorHolder); overload;
    function new_context(): OOCNamingContext; overload;
    function bind_new_context(para1: Arr1OOCNameComponent): OOCNamingContext; overload;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.AlreadyBound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName
    function bind_new_context(var para1: array of OOCNameComponent): OOCNamingContext; overload;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.AlreadyBound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName
    procedure destroy(); overload;  // throws org.omg.CosNaming.NamingContextPackage.NotEmpty
  end;

  OOCNAlreadyBoundHelper = class abstract external 'org.omg.CosNaming.NamingContextPackage' name 'AlreadyBoundHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOCNAlreadyBound); static; overload;
    class function extract(para1: OOCAny): OOCNAlreadyBound; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOCNAlreadyBound; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOCNAlreadyBound); static; overload;
  end;

  OOCNCannotProceedHelper = class abstract external 'org.omg.CosNaming.NamingContextPackage' name 'CannotProceedHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOCNCannotProceed); static; overload;
    class function extract(para1: OOCAny): OOCNCannotProceed; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOCNCannotProceed; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOCNCannotProceed); static; overload;
  end;

  OOCNInvalidNameHelper = class abstract external 'org.omg.CosNaming.NamingContextPackage' name 'InvalidNameHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOCNInvalidName); static; overload;
    class function extract(para1: OOCAny): OOCNInvalidName; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOCNInvalidName; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOCNInvalidName); static; overload;
  end;

  OOCNNotEmptyHelper = class abstract external 'org.omg.CosNaming.NamingContextPackage' name 'NotEmptyHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOCNNotEmpty); static; overload;
    class function extract(para1: OOCAny): OOCNNotEmpty; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOCNNotEmpty; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOCNNotEmpty); static; overload;
  end;

  OOCNNotFoundHelper = class abstract external 'org.omg.CosNaming.NamingContextPackage' name 'NotFoundHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOCNNotFound); static; overload;
    class function extract(para1: OOCAny): OOCNNotFound; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOCNNotFound; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOCNNotFound); static; overload;
  end;

  OOCNNotFoundReasonHelper = class abstract external 'org.omg.CosNaming.NamingContextPackage' name 'NotFoundReasonHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOCNNotFoundReason); static; overload;
    class function extract(para1: OOCAny): OOCNNotFoundReason; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOCNNotFoundReason; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOCNNotFoundReason); static; overload;
  end;

  OODAnySeqHelper = class abstract external 'org.omg.DynamicAny' name 'AnySeqHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: Arr1OOCAny); static; overload;
    class procedure insert(para1: OOCAny; var para2: array of OOCAny); static; overload;
    class function extract(para1: OOCAny): Arr1OOCAny; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): Arr1OOCAny; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: Arr1OOCAny); static; overload;
    class procedure write(para1: OOCPOutputStream; var para2: array of OOCAny); static; overload;
  end;

  OODDynAnyFactoryHelper = class abstract external 'org.omg.DynamicAny' name 'DynAnyFactoryHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OODDynAnyFactory); static; overload;
    class function extract(para1: OOCAny): OODDynAnyFactory; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OODDynAnyFactory; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OODDynAnyFactory); static; overload;
    class function narrow(para1: OOCObject): OODDynAnyFactory; static; overload;
    class function unchecked_narrow(para1: OOCObject): OODDynAnyFactory; static; overload;
  end;

  OODDynAnyFactoryOperations = interface external 'org.omg.DynamicAny' name 'DynAnyFactoryOperations' 
    function create_dyn_any(para1: OOCAny): OODDynAny; overload;  // throws org.omg.DynamicAny.DynAnyFactoryPackage.InconsistentTypeCode
    function create_dyn_any_from_type_code(para1: OOCTypeCode): OODDynAny; overload;  // throws org.omg.DynamicAny.DynAnyFactoryPackage.InconsistentTypeCode
  end;

  OODDInconsistentTypeCodeHelper = class abstract external 'org.omg.DynamicAny.DynAnyFactoryPackage' name 'InconsistentTypeCodeHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OODDInconsistentTypeCode); static; overload;
    class function extract(para1: OOCAny): OODDInconsistentTypeCode; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OODDInconsistentTypeCode; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OODDInconsistentTypeCode); static; overload;
  end;

  OODDynAnyHelper = class abstract external 'org.omg.DynamicAny' name 'DynAnyHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OODDynAny); static; overload;
    class function extract(para1: OOCAny): OODDynAny; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OODDynAny; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OODDynAny); static; overload;
    class function narrow(para1: OOCObject): OODDynAny; static; overload;
    class function unchecked_narrow(para1: OOCObject): OODDynAny; static; overload;
  end;

  OODDynAnyOperations = interface external 'org.omg.DynamicAny' name 'DynAnyOperations' 
    function &type(): OOCTypeCode; overload;
    procedure assign(para1: OODDynAny); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch
    procedure from_any(para1: OOCAny); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function to_any(): OOCAny; overload;
    function equal(para1: OODDynAny): jboolean; overload;
    procedure destroy(); overload;
    function copy(): OODDynAny; overload;
    procedure insert_boolean(para1: jboolean); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_octet(para1: jbyte); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_char(para1: jchar); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_short(para1: jshort); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_ushort(para1: jshort); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_long(para1: jint); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_ulong(para1: jint); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_float(para1: jfloat); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_double(para1: jdouble); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_string(para1: JLString); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_reference(para1: OOCObject); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_typecode(para1: OOCTypeCode); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_longlong(para1: jlong); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_ulonglong(para1: jlong); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_wchar(para1: jchar); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_wstring(para1: JLString); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_any(para1: OOCAny); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_dyn_any(para1: OODDynAny); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_val(para1: JISerializable); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_boolean(): jboolean; overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_octet(): jbyte; overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_char(): jchar; overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_short(): jshort; overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_ushort(): jshort; overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_long(): jint; overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_ulong(): jint; overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_float(): jfloat; overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_double(): jdouble; overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_string(): JLString; overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_reference(): OOCObject; overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_typecode(): OOCTypeCode; overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_longlong(): jlong; overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_ulonglong(): jlong; overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_wchar(): jchar; overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_wstring(): JLString; overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_any(): OOCAny; overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_dyn_any(): OODDynAny; overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_val(): JISerializable; overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function seek(para1: jint): jboolean; overload;
    procedure rewind(); overload;
    function next(): jboolean; overload;
    function component_count(): jint; overload;
    function current_component(): OODDynAny; overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch
  end;

  OODDInvalidValueHelper = class abstract external 'org.omg.DynamicAny.DynAnyPackage' name 'InvalidValueHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OODDInvalidValue); static; overload;
    class function extract(para1: OOCAny): OODDInvalidValue; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OODDInvalidValue; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OODDInvalidValue); static; overload;
  end;

  OODDTypeMismatchHelper = class abstract external 'org.omg.DynamicAny.DynAnyPackage' name 'TypeMismatchHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OODDTypeMismatch); static; overload;
    class function extract(para1: OOCAny): OODDTypeMismatch; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OODDTypeMismatch; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OODDTypeMismatch); static; overload;
  end;

  OODDynAnySeqHelper = class abstract external 'org.omg.DynamicAny' name 'DynAnySeqHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: Arr1OODDynAny); static; overload;
    class procedure insert(para1: OOCAny; var para2: array of OODDynAny); static; overload;
    class function extract(para1: OOCAny): Arr1OODDynAny; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): Arr1OODDynAny; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: Arr1OODDynAny); static; overload;
    class procedure write(para1: OOCPOutputStream; var para2: array of OODDynAny); static; overload;
  end;

  OODDynArrayHelper = class abstract external 'org.omg.DynamicAny' name 'DynArrayHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OODDynArray); static; overload;
    class function extract(para1: OOCAny): OODDynArray; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OODDynArray; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OODDynArray); static; overload;
    class function narrow(para1: OOCObject): OODDynArray; static; overload;
    class function unchecked_narrow(para1: OOCObject): OODDynArray; static; overload;
  end;

  OODDynEnumHelper = class abstract external 'org.omg.DynamicAny' name 'DynEnumHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OODDynEnum); static; overload;
    class function extract(para1: OOCAny): OODDynEnum; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OODDynEnum; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OODDynEnum); static; overload;
    class function narrow(para1: OOCObject): OODDynEnum; static; overload;
    class function unchecked_narrow(para1: OOCObject): OODDynEnum; static; overload;
  end;

  OODDynFixedHelper = class abstract external 'org.omg.DynamicAny' name 'DynFixedHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OODDynFixed); static; overload;
    class function extract(para1: OOCAny): OODDynFixed; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OODDynFixed; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OODDynFixed); static; overload;
    class function narrow(para1: OOCObject): OODDynFixed; static; overload;
    class function unchecked_narrow(para1: OOCObject): OODDynFixed; static; overload;
  end;

  OODDynSequenceHelper = class abstract external 'org.omg.DynamicAny' name 'DynSequenceHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OODDynSequence); static; overload;
    class function extract(para1: OOCAny): OODDynSequence; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OODDynSequence; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OODDynSequence); static; overload;
    class function narrow(para1: OOCObject): OODDynSequence; static; overload;
    class function unchecked_narrow(para1: OOCObject): OODDynSequence; static; overload;
  end;

  OODDynStructHelper = class abstract external 'org.omg.DynamicAny' name 'DynStructHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OODDynStruct); static; overload;
    class function extract(para1: OOCAny): OODDynStruct; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OODDynStruct; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OODDynStruct); static; overload;
    class function narrow(para1: OOCObject): OODDynStruct; static; overload;
    class function unchecked_narrow(para1: OOCObject): OODDynStruct; static; overload;
  end;

  OODDynUnionHelper = class abstract external 'org.omg.DynamicAny' name 'DynUnionHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OODDynUnion); static; overload;
    class function extract(para1: OOCAny): OODDynUnion; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OODDynUnion; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OODDynUnion); static; overload;
    class function narrow(para1: OOCObject): OODDynUnion; static; overload;
    class function unchecked_narrow(para1: OOCObject): OODDynUnion; static; overload;
  end;

  OODDynValueHelper = class abstract external 'org.omg.DynamicAny' name 'DynValueHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OODDynValue); static; overload;
    class function extract(para1: OOCAny): OODDynValue; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OODDynValue; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OODDynValue); static; overload;
    class function narrow(para1: OOCObject): OODDynValue; static; overload;
    class function unchecked_narrow(para1: OOCObject): OODDynValue; static; overload;
  end;

  OODFieldNameHelper = class abstract external 'org.omg.DynamicAny' name 'FieldNameHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: JLString); static; overload;
    class function extract(para1: OOCAny): JLString; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): JLString; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: JLString); static; overload;
  end;

  OODNameDynAnyPairHelper = class abstract external 'org.omg.DynamicAny' name 'NameDynAnyPairHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OODNameDynAnyPair); static; overload;
    class function extract(para1: OOCAny): OODNameDynAnyPair; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OODNameDynAnyPair; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OODNameDynAnyPair); static; overload;
  end;

  OODNameDynAnyPairSeqHelper = class abstract external 'org.omg.DynamicAny' name 'NameDynAnyPairSeqHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: Arr1OODNameDynAnyPair); static; overload;
    class procedure insert(para1: OOCAny; var para2: array of OODNameDynAnyPair); static; overload;
    class function extract(para1: OOCAny): Arr1OODNameDynAnyPair; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): Arr1OODNameDynAnyPair; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: Arr1OODNameDynAnyPair); static; overload;
    class procedure write(para1: OOCPOutputStream; var para2: array of OODNameDynAnyPair); static; overload;
  end;

  OODNameValuePairHelper = class abstract external 'org.omg.DynamicAny' name 'NameValuePairHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OODNameValuePair); static; overload;
    class function extract(para1: OOCAny): OODNameValuePair; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OODNameValuePair; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OODNameValuePair); static; overload;
  end;

  OODNameValuePairSeqHelper = class abstract external 'org.omg.DynamicAny' name 'NameValuePairSeqHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: Arr1OODNameValuePair); static; overload;
    class procedure insert(para1: OOCAny; var para2: array of OODNameValuePair); static; overload;
    class function extract(para1: OOCAny): Arr1OODNameValuePair; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): Arr1OODNameValuePair; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: Arr1OODNameValuePair); static; overload;
    class procedure write(para1: OOCPOutputStream; var para2: array of OODNameValuePair); static; overload;
  end;

  OOICodeSets = interface external 'org.omg.IOP' name 'CodeSets' 
    const
      value = 1;
  end;

  OOICodecFactoryHelper = class abstract external 'org.omg.IOP' name 'CodecFactoryHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOICodecFactory); static; overload;
    class function extract(para1: OOCAny): OOICodecFactory; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOICodecFactory; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOICodecFactory); static; overload;
    class function narrow(para1: OOCObject): OOICodecFactory; static; overload;
    class function unchecked_narrow(para1: OOCObject): OOICodecFactory; static; overload;
  end;

  OOICodecFactoryOperations = interface external 'org.omg.IOP' name 'CodecFactoryOperations' 
    function create_codec(para1: OOIEncoding): OOICodec; overload;  // throws org.omg.IOP.CodecFactoryPackage.UnknownEncoding
  end;

  OOICUnknownEncodingHelper = class abstract external 'org.omg.IOP.CodecFactoryPackage' name 'UnknownEncodingHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOICUnknownEncoding); static; overload;
    class function extract(para1: OOCAny): OOICUnknownEncoding; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOICUnknownEncoding; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOICUnknownEncoding); static; overload;
  end;

  OOICodecOperations = interface external 'org.omg.IOP' name 'CodecOperations' 
    function encode(para1: OOCAny): Arr1jbyte; overload;  // throws org.omg.IOP.CodecPackage.InvalidTypeForEncoding
    function decode(para1: Arr1jbyte): OOCAny; overload;  // throws org.omg.IOP.CodecPackage.FormatMismatch
    function decode(var para1: array of jbyte): OOCAny; overload;  // throws org.omg.IOP.CodecPackage.FormatMismatch
    function encode_value(para1: OOCAny): Arr1jbyte; overload;  // throws org.omg.IOP.CodecPackage.InvalidTypeForEncoding
    function decode_value(para1: Arr1jbyte; para2: OOCTypeCode): OOCAny; overload;  // throws org.omg.IOP.CodecPackage.FormatMismatch, org.omg.IOP.CodecPackage.TypeMismatch
    function decode_value(var para1: array of jbyte; para2: OOCTypeCode): OOCAny; overload;  // throws org.omg.IOP.CodecPackage.FormatMismatch, org.omg.IOP.CodecPackage.TypeMismatch
  end;

  OOICFormatMismatchHelper = class abstract external 'org.omg.IOP.CodecPackage' name 'FormatMismatchHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOICFormatMismatch); static; overload;
    class function extract(para1: OOCAny): OOICFormatMismatch; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOICFormatMismatch; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOICFormatMismatch); static; overload;
  end;

  OOICInvalidTypeForEncodingHelper = class abstract external 'org.omg.IOP.CodecPackage' name 'InvalidTypeForEncodingHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOICInvalidTypeForEncoding); static; overload;
    class function extract(para1: OOCAny): OOICInvalidTypeForEncoding; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOICInvalidTypeForEncoding; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOICInvalidTypeForEncoding); static; overload;
  end;

  OOICTypeMismatchHelper = class abstract external 'org.omg.IOP.CodecPackage' name 'TypeMismatchHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOICTypeMismatch); static; overload;
    class function extract(para1: OOCAny): OOICTypeMismatch; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOICTypeMismatch; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOICTypeMismatch); static; overload;
  end;

  OOIComponentIdHelper = class abstract external 'org.omg.IOP' name 'ComponentIdHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: jint); static; overload;
    class function extract(para1: OOCAny): jint; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): jint; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: jint); static; overload;
  end;

  OOIENCODING_CDR_ENCAPS = interface external 'org.omg.IOP' name 'ENCODING_CDR_ENCAPS' 
    const
      value = 0;
  end;

  OOIExceptionDetailMessage = interface external 'org.omg.IOP' name 'ExceptionDetailMessage' 
    const
      value = 14;
  end;

  OOIIORHelper = class abstract external 'org.omg.IOP' name 'IORHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOIIOR); static; overload;
    class function extract(para1: OOCAny): OOIIOR; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOIIOR; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOIIOR); static; overload;
  end;

  OOIMultipleComponentProfileHelper = class abstract external 'org.omg.IOP' name 'MultipleComponentProfileHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: Arr1OOITaggedComponent); static; overload;
    class procedure insert(para1: OOCAny; var para2: array of OOITaggedComponent); static; overload;
    class function extract(para1: OOCAny): Arr1OOITaggedComponent; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): Arr1OOITaggedComponent; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: Arr1OOITaggedComponent); static; overload;
    class procedure write(para1: OOCPOutputStream; var para2: array of OOITaggedComponent); static; overload;
  end;

  OOIProfileIdHelper = class abstract external 'org.omg.IOP' name 'ProfileIdHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: jint); static; overload;
    class function extract(para1: OOCAny): jint; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): jint; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: jint); static; overload;
  end;

  OOIRMICustomMaxStreamFormat = interface external 'org.omg.IOP' name 'RMICustomMaxStreamFormat' 
    const
      value = 17;
  end;

  OOIServiceContextHelper = class abstract external 'org.omg.IOP' name 'ServiceContextHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOIServiceContext); static; overload;
    class function extract(para1: OOCAny): OOIServiceContext; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOIServiceContext; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOIServiceContext); static; overload;
  end;

  OOIServiceContextListHelper = class abstract external 'org.omg.IOP' name 'ServiceContextListHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: Arr1OOIServiceContext); static; overload;
    class procedure insert(para1: OOCAny; var para2: array of OOIServiceContext); static; overload;
    class function extract(para1: OOCAny): Arr1OOIServiceContext; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): Arr1OOIServiceContext; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: Arr1OOIServiceContext); static; overload;
    class procedure write(para1: OOCPOutputStream; var para2: array of OOIServiceContext); static; overload;
  end;

  OOIServiceIdHelper = class abstract external 'org.omg.IOP' name 'ServiceIdHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: jint); static; overload;
    class function extract(para1: OOCAny): jint; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): jint; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: jint); static; overload;
  end;

  OOITAG_ALTERNATE_IIOP_ADDRESS = interface external 'org.omg.IOP' name 'TAG_ALTERNATE_IIOP_ADDRESS' 
    const
      value = 3;
  end;

  OOITAG_CODE_SETS = interface external 'org.omg.IOP' name 'TAG_CODE_SETS' 
    const
      value = 1;
  end;

  OOITAG_INTERNET_IOP = interface external 'org.omg.IOP' name 'TAG_INTERNET_IOP' 
    const
      value = 0;
  end;

  OOITAG_JAVA_CODEBASE = interface external 'org.omg.IOP' name 'TAG_JAVA_CODEBASE' 
    const
      value = 25;
  end;

  OOITAG_MULTIPLE_COMPONENTS = interface external 'org.omg.IOP' name 'TAG_MULTIPLE_COMPONENTS' 
    const
      value = 1;
  end;

  OOITAG_ORB_TYPE = interface external 'org.omg.IOP' name 'TAG_ORB_TYPE' 
    const
      value = 0;
  end;

  OOITAG_POLICIES = interface external 'org.omg.IOP' name 'TAG_POLICIES' 
    const
      value = 2;
  end;

  OOITAG_RMI_CUSTOM_MAX_STREAM_FORMAT = interface external 'org.omg.IOP' name 'TAG_RMI_CUSTOM_MAX_STREAM_FORMAT' 
    const
      value = 38;
  end;

  OOITaggedComponentHelper = class abstract external 'org.omg.IOP' name 'TaggedComponentHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOITaggedComponent); static; overload;
    class function extract(para1: OOCAny): OOITaggedComponent; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOITaggedComponent; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOITaggedComponent); static; overload;
  end;

  OOITaggedProfileHelper = class abstract external 'org.omg.IOP' name 'TaggedProfileHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOITaggedProfile); static; overload;
    class function extract(para1: OOCAny): OOITaggedProfile; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOITaggedProfile; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOITaggedProfile); static; overload;
  end;

  OOITransactionService = interface external 'org.omg.IOP' name 'TransactionService' 
    const
      value = 0;
  end;

  OOMSYNC_WITH_TRANSPORT = interface external 'org.omg.Messaging' name 'SYNC_WITH_TRANSPORT' 
    const
      value = 1;
  end;

  OOMSyncScopeHelper = class abstract external 'org.omg.Messaging' name 'SyncScopeHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: jshort); static; overload;
    class function extract(para1: OOCAny): jshort; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): jshort; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: jshort); static; overload;
  end;

  OOPACTIVE = interface external 'org.omg.PortableInterceptor' name 'ACTIVE' 
    const
      value = 1;
  end;

  OOPAdapterManagerIdHelper = class abstract external 'org.omg.PortableInterceptor' name 'AdapterManagerIdHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: jint); static; overload;
    class function extract(para1: OOCAny): jint; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): jint; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: jint); static; overload;
  end;

  OOPAdapterNameHelper = class abstract external 'org.omg.PortableInterceptor' name 'AdapterNameHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: Arr1JLString); static; overload;
    class procedure insert(para1: OOCAny; var para2: array of JLString); static; overload;
    class function extract(para1: OOCAny): Arr1JLString; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): Arr1JLString; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: Arr1JLString); static; overload;
    class procedure write(para1: OOCPOutputStream; var para2: array of JLString); static; overload;
  end;

  OOPAdapterStateHelper = class abstract external 'org.omg.PortableInterceptor' name 'AdapterStateHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: jshort); static; overload;
    class function extract(para1: OOCAny): jshort; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): jshort; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: jshort); static; overload;
  end;

  OOPInterceptorCurrentHelper = class abstract external 'org.omg.PortableInterceptor' name 'CurrentHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOPInterceptorCurrent); static; overload;
    class function extract(para1: OOCAny): OOPInterceptorCurrent; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOPInterceptorCurrent; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOPInterceptorCurrent); static; overload;
    class function narrow(para1: OOCObject): OOPInterceptorCurrent; static; overload;
    class function unchecked_narrow(para1: OOCObject): OOPInterceptorCurrent; static; overload;
  end;

  OOPDISCARDING = interface external 'org.omg.PortableInterceptor' name 'DISCARDING' 
    const
      value = 2;
  end;

  OOPInterceptorForwardRequestHelper = class abstract external 'org.omg.PortableInterceptor' name 'ForwardRequestHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOPInterceptorForwardRequest); static; overload;
    class function extract(para1: OOCAny): OOPInterceptorForwardRequest; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOPInterceptorForwardRequest; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOPInterceptorForwardRequest); static; overload;
  end;

  OOPHOLDING = interface external 'org.omg.PortableInterceptor' name 'HOLDING' 
    const
      value = 0;
  end;

  OOPINACTIVE = interface external 'org.omg.PortableInterceptor' name 'INACTIVE' 
    const
      value = 3;
  end;

  OOPIORInfoOperations = interface external 'org.omg.PortableInterceptor' name 'IORInfoOperations' 
    function get_effective_policy(para1: jint): OOCPolicy; overload;
    procedure add_ior_component(para1: OOITaggedComponent); overload;
    procedure add_ior_component_to_profile(para1: OOITaggedComponent; para2: jint); overload;
    function manager_id(): jint; overload;
    function state(): jshort; overload;
    function adapter_template(): OOPObjectReferenceTemplate; overload;
    function current_factory(): OOPObjectReferenceFactory; overload;
    procedure current_factory(para1: OOPObjectReferenceFactory); overload;
  end;

  OOPIORInterceptor_3_0Helper = class abstract external 'org.omg.PortableInterceptor' name 'IORInterceptor_3_0Helper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOPIORInterceptor_3_0); static; overload;
    class function extract(para1: OOCAny): OOPIORInterceptor_3_0; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOPIORInterceptor_3_0; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOPIORInterceptor_3_0); static; overload;
    class function narrow(para1: OOCObject): OOPIORInterceptor_3_0; static; overload;
    class function unchecked_narrow(para1: OOCObject): OOPIORInterceptor_3_0; static; overload;
  end;

  OOPInterceptorOperations = interface external 'org.omg.PortableInterceptor' name 'InterceptorOperations' 
    function name(): JLString; overload;
    procedure destroy(); overload;
  end;

  OOPInvalidSlotHelper = class abstract external 'org.omg.PortableInterceptor' name 'InvalidSlotHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOPInvalidSlot); static; overload;
    class function extract(para1: OOCAny): OOPInvalidSlot; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOPInvalidSlot; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOPInvalidSlot); static; overload;
  end;

  OOPLOCATION_FORWARD = interface external 'org.omg.PortableInterceptor' name 'LOCATION_FORWARD' 
    const
      value = 3;
  end;

  OOPNON_EXISTENT = interface external 'org.omg.PortableInterceptor' name 'NON_EXISTENT' 
    const
      value = 4;
  end;

  OOPORBIdHelper = class abstract external 'org.omg.PortableInterceptor' name 'ORBIdHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: JLString); static; overload;
    class function extract(para1: OOCAny): JLString; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): JLString; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: JLString); static; overload;
  end;

  OOPORBInitInfoOperations = interface external 'org.omg.PortableInterceptor' name 'ORBInitInfoOperations' 
    function arguments(): Arr1JLString; overload;
    function orb_id(): JLString; overload;
    function codec_factory(): OOICodecFactory; overload;
    procedure register_initial_reference(para1: JLString; para2: OOCObject); overload;  // throws org.omg.PortableInterceptor.ORBInitInfoPackage.InvalidName
    function resolve_initial_references(para1: JLString): OOCObject; overload;  // throws org.omg.PortableInterceptor.ORBInitInfoPackage.InvalidName
    procedure add_client_request_interceptor(para1: OOPClientRequestInterceptor); overload;  // throws org.omg.PortableInterceptor.ORBInitInfoPackage.DuplicateName
    procedure add_server_request_interceptor(para1: OOPServerRequestInterceptor); overload;  // throws org.omg.PortableInterceptor.ORBInitInfoPackage.DuplicateName
    procedure add_ior_interceptor(para1: OOPIORInterceptor); overload;  // throws org.omg.PortableInterceptor.ORBInitInfoPackage.DuplicateName
    function allocate_slot_id(): jint; overload;
    procedure register_policy_factory(para1: jint; para2: OOPPolicyFactory); overload;
  end;

  OOPODuplicateNameHelper = class abstract external 'org.omg.PortableInterceptor.ORBInitInfoPackage' name 'DuplicateNameHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOPODuplicateName); static; overload;
    class function extract(para1: OOCAny): OOPODuplicateName; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOPODuplicateName; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOPODuplicateName); static; overload;
  end;

  OOPOInvalidNameHelper = class abstract external 'org.omg.PortableInterceptor.ORBInitInfoPackage' name 'InvalidNameHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOPOInvalidName); static; overload;
    class function extract(para1: OOCAny): OOPOInvalidName; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOPOInvalidName; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOPOInvalidName); static; overload;
  end;

  OOPOObjectIdHelper = class abstract external 'org.omg.PortableInterceptor.ORBInitInfoPackage' name 'ObjectIdHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: JLString); static; overload;
    class function extract(para1: OOCAny): JLString; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): JLString; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: JLString); static; overload;
  end;

  OOPORBInitializerOperations = interface external 'org.omg.PortableInterceptor' name 'ORBInitializerOperations' 
    procedure pre_init(para1: OOPORBInitInfo); overload;
    procedure post_init(para1: OOPORBInitInfo); overload;
  end;

  OOPObjectIdHelper = class abstract external 'org.omg.PortableInterceptor' name 'ObjectIdHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: Arr1jbyte); static; overload;
    class procedure insert(para1: OOCAny; var para2: array of jbyte); static; overload;
    class function extract(para1: OOCAny): Arr1jbyte; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): Arr1jbyte; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: Arr1jbyte); static; overload;
    class procedure write(para1: OOCPOutputStream; var para2: array of jbyte); static; overload;
  end;

  OOPObjectReferenceFactoryHelper = class abstract external 'org.omg.PortableInterceptor' name 'ObjectReferenceFactoryHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOPObjectReferenceFactory); static; overload;
    class function extract(para1: OOCAny): OOPObjectReferenceFactory; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOPObjectReferenceFactory; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOPObjectReferenceFactory); static; overload;
  end;

  OOPObjectReferenceTemplateHelper = class abstract external 'org.omg.PortableInterceptor' name 'ObjectReferenceTemplateHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOPObjectReferenceTemplate); static; overload;
    class function extract(para1: OOCAny): OOPObjectReferenceTemplate; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOPObjectReferenceTemplate; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOPObjectReferenceTemplate); static; overload;
  end;

  OOPObjectReferenceTemplateSeqHelper = class abstract external 'org.omg.PortableInterceptor' name 'ObjectReferenceTemplateSeqHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: Arr1OOPObjectReferenceTemplate); static; overload;
    class procedure insert(para1: OOCAny; var para2: array of OOPObjectReferenceTemplate); static; overload;
    class function extract(para1: OOCAny): Arr1OOPObjectReferenceTemplate; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): Arr1OOPObjectReferenceTemplate; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: Arr1OOPObjectReferenceTemplate); static; overload;
    class procedure write(para1: OOCPOutputStream; var para2: array of OOPObjectReferenceTemplate); static; overload;
  end;

  OOPPolicyFactoryOperations = interface external 'org.omg.PortableInterceptor' name 'PolicyFactoryOperations' 
    function create_policy(para1: jint; para2: OOCAny): OOCPolicy; overload;  // throws org.omg.CORBA.PolicyError
  end;

  OOPRequestInfoOperations = interface external 'org.omg.PortableInterceptor' name 'RequestInfoOperations' 
    function request_id(): jint; overload;
    function operation(): JLString; overload;
    function arguments(): Arr1OODParameter; overload;
    function exceptions(): Arr1OOCTypeCode; overload;
    function contexts(): Arr1JLString; overload;
    function operation_context(): Arr1JLString; overload;
    function result(): OOCAny; overload;
    function response_expected(): jboolean; overload;
    function sync_scope(): jshort; overload;
    function reply_status(): jshort; overload;
    function forward_reference(): OOCObject; overload;
    function get_slot(para1: jint): OOCAny; overload;  // throws org.omg.PortableInterceptor.InvalidSlot
    function get_request_service_context(para1: jint): OOIServiceContext; overload;
    function get_reply_service_context(para1: jint): OOIServiceContext; overload;
  end;

  OOPSUCCESSFUL = interface external 'org.omg.PortableInterceptor' name 'SUCCESSFUL' 
    const
      value = 0;
  end;

  OOPSYSTEM_EXCEPTION = interface external 'org.omg.PortableInterceptor' name 'SYSTEM_EXCEPTION' 
    const
      value = 1;
  end;

  OOPServerIdHelper = class abstract external 'org.omg.PortableInterceptor' name 'ServerIdHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: JLString); static; overload;
    class function extract(para1: OOCAny): JLString; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): JLString; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: JLString); static; overload;
  end;

  OOPTRANSPORT_RETRY = interface external 'org.omg.PortableInterceptor' name 'TRANSPORT_RETRY' 
    const
      value = 4;
  end;

  OOPUSER_EXCEPTION = interface external 'org.omg.PortableInterceptor' name 'USER_EXCEPTION' 
    const
      value = 2;
  end;

  OOPAdapterActivatorOperations = interface external 'org.omg.PortableServer' name 'AdapterActivatorOperations' 
    function unknown_adapter(para1: OOPPOA; para2: JLString): jboolean; overload;
  end;

  OOPServerCurrentHelper = class abstract external 'org.omg.PortableServer' name 'CurrentHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOPServerCurrent); static; overload;
    class function extract(para1: OOCAny): OOPServerCurrent; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOPServerCurrent; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOPServerCurrent); static; overload;
    class function narrow(para1: OOCObject): OOPServerCurrent; static; overload;
  end;

  OOPCNoContextHelper = class abstract external 'org.omg.PortableServer.CurrentPackage' name 'NoContextHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOPCNoContext); static; overload;
    class function extract(para1: OOCAny): OOPCNoContext; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOPCNoContext; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOPCNoContext); static; overload;
  end;

  OOPServerForwardRequestHelper = class abstract external 'org.omg.PortableServer' name 'ForwardRequestHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOPServerForwardRequest); static; overload;
    class function extract(para1: OOCAny): OOPServerForwardRequest; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOPServerForwardRequest; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOPServerForwardRequest); static; overload;
  end;

  OOPID_ASSIGNMENT_POLICY_ID = interface external 'org.omg.PortableServer' name 'ID_ASSIGNMENT_POLICY_ID' 
    const
      value = 19;
  end;

  OOPID_UNIQUENESS_POLICY_ID = interface external 'org.omg.PortableServer' name 'ID_UNIQUENESS_POLICY_ID' 
    const
      value = 18;
  end;

  OOPIMPLICIT_ACTIVATION_POLICY_ID = interface external 'org.omg.PortableServer' name 'IMPLICIT_ACTIVATION_POLICY_ID' 
    const
      value = 20;
  end;

  OOPLIFESPAN_POLICY_ID = interface external 'org.omg.PortableServer' name 'LIFESPAN_POLICY_ID' 
    const
      value = 17;
  end;

  OOPPOAHelper = class abstract external 'org.omg.PortableServer' name 'POAHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOPPOA); static; overload;
    class function extract(para1: OOCAny): OOPPOA; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOPPOA; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOPPOA); static; overload;
    class function narrow(para1: OOCObject): OOPPOA; static; overload;
  end;

  OOPPOAManagerOperations = interface external 'org.omg.PortableServer' name 'POAManagerOperations' 
    procedure activate(); overload;  // throws org.omg.PortableServer.POAManagerPackage.AdapterInactive
    procedure hold_requests(para1: jboolean); overload;  // throws org.omg.PortableServer.POAManagerPackage.AdapterInactive
    procedure discard_requests(para1: jboolean); overload;  // throws org.omg.PortableServer.POAManagerPackage.AdapterInactive
    procedure deactivate(para1: jboolean; para2: jboolean); overload;  // throws org.omg.PortableServer.POAManagerPackage.AdapterInactive
    function get_state(): OOPPState; overload;
  end;

  OOPPAdapterInactiveHelper = class abstract external 'org.omg.PortableServer.POAManagerPackage' name 'AdapterInactiveHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOPPAdapterInactive); static; overload;
    class function extract(para1: OOCAny): OOPPAdapterInactive; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOPPAdapterInactive; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOPPAdapterInactive); static; overload;
  end;

  OOPPOAOperations = interface external 'org.omg.PortableServer' name 'POAOperations' 
    function create_POA(para1: JLString; para2: OOPPOAManager; para3: Arr1OOCPolicy): OOPPOA; overload;  // throws org.omg.PortableServer.POAPackage.AdapterAlreadyExists, org.omg.PortableServer.POAPackage.InvalidPolicy
    function create_POA(para1: JLString; para2: OOPPOAManager; var para3: array of OOCPolicy): OOPPOA; overload;  // throws org.omg.PortableServer.POAPackage.AdapterAlreadyExists, org.omg.PortableServer.POAPackage.InvalidPolicy
    function find_POA(para1: JLString; para2: jboolean): OOPPOA; overload;  // throws org.omg.PortableServer.POAPackage.AdapterNonExistent
    procedure destroy(para1: jboolean; para2: jboolean); overload;
    function create_thread_policy(para1: OOPThreadPolicyValue): OOPThreadPolicy; overload;
    function create_lifespan_policy(para1: OOPLifespanPolicyValue): OOPLifespanPolicy; overload;
    function create_id_uniqueness_policy(para1: OOPIdUniquenessPolicyValue): OOPIdUniquenessPolicy; overload;
    function create_id_assignment_policy(para1: OOPIdAssignmentPolicyValue): OOPIdAssignmentPolicy; overload;
    function create_implicit_activation_policy(para1: OOPImplicitActivationPolicyValue): OOPImplicitActivationPolicy; overload;
    function create_servant_retention_policy(para1: OOPServantRetentionPolicyValue): OOPServantRetentionPolicy; overload;
    function create_request_processing_policy(para1: OOPRequestProcessingPolicyValue): OOPRequestProcessingPolicy; overload;
    function the_name(): JLString; overload;
    function the_parent(): OOPPOA; overload;
    function the_children(): Arr1OOPPOA; overload;
    function the_POAManager(): OOPPOAManager; overload;
    function the_activator(): OOPAdapterActivator; overload;
    procedure the_activator(para1: OOPAdapterActivator); overload;
    function get_servant_manager(): OOPServantManager; overload;  // throws org.omg.PortableServer.POAPackage.WrongPolicy
    procedure set_servant_manager(para1: OOPServantManager); overload;  // throws org.omg.PortableServer.POAPackage.WrongPolicy
    function get_servant(): OOPServant; overload;  // throws org.omg.PortableServer.POAPackage.NoServant, org.omg.PortableServer.POAPackage.WrongPolicy
    procedure set_servant(para1: OOPServant); overload;  // throws org.omg.PortableServer.POAPackage.WrongPolicy
    function activate_object(para1: OOPServant): Arr1jbyte; overload;  // throws org.omg.PortableServer.POAPackage.ServantAlreadyActive, org.omg.PortableServer.POAPackage.WrongPolicy
    procedure activate_object_with_id(para1: Arr1jbyte; para2: OOPServant); overload;  // throws org.omg.PortableServer.POAPackage.ServantAlreadyActive, org.omg.PortableServer.POAPackage.ObjectAlreadyActive, org.omg.PortableServer.POAPackage.WrongPolicy
    procedure activate_object_with_id(var para1: array of jbyte; para2: OOPServant); overload;  // throws org.omg.PortableServer.POAPackage.ServantAlreadyActive, org.omg.PortableServer.POAPackage.ObjectAlreadyActive, org.omg.PortableServer.POAPackage.WrongPolicy
    procedure deactivate_object(para1: Arr1jbyte); overload;  // throws org.omg.PortableServer.POAPackage.ObjectNotActive, org.omg.PortableServer.POAPackage.WrongPolicy
    procedure deactivate_object(var para1: array of jbyte); overload;  // throws org.omg.PortableServer.POAPackage.ObjectNotActive, org.omg.PortableServer.POAPackage.WrongPolicy
    function create_reference(para1: JLString): OOCObject; overload;  // throws org.omg.PortableServer.POAPackage.WrongPolicy
    function create_reference_with_id(para1: Arr1jbyte; para2: JLString): OOCObject; overload;
    function create_reference_with_id(var para1: array of jbyte; para2: JLString): OOCObject; overload;
    function servant_to_id(para1: OOPServant): Arr1jbyte; overload;  // throws org.omg.PortableServer.POAPackage.ServantNotActive, org.omg.PortableServer.POAPackage.WrongPolicy
    function servant_to_reference(para1: OOPServant): OOCObject; overload;  // throws org.omg.PortableServer.POAPackage.ServantNotActive, org.omg.PortableServer.POAPackage.WrongPolicy
    function reference_to_servant(para1: OOCObject): OOPServant; overload;  // throws org.omg.PortableServer.POAPackage.ObjectNotActive, org.omg.PortableServer.POAPackage.WrongPolicy, org.omg.PortableServer.POAPackage.WrongAdapter
    function reference_to_id(para1: OOCObject): Arr1jbyte; overload;  // throws org.omg.PortableServer.POAPackage.WrongAdapter, org.omg.PortableServer.POAPackage.WrongPolicy
    function id_to_servant(para1: Arr1jbyte): OOPServant; overload;  // throws org.omg.PortableServer.POAPackage.ObjectNotActive, org.omg.PortableServer.POAPackage.WrongPolicy
    function id_to_servant(var para1: array of jbyte): OOPServant; overload;  // throws org.omg.PortableServer.POAPackage.ObjectNotActive, org.omg.PortableServer.POAPackage.WrongPolicy
    function id_to_reference(para1: Arr1jbyte): OOCObject; overload;  // throws org.omg.PortableServer.POAPackage.ObjectNotActive, org.omg.PortableServer.POAPackage.WrongPolicy
    function id_to_reference(var para1: array of jbyte): OOCObject; overload;  // throws org.omg.PortableServer.POAPackage.ObjectNotActive, org.omg.PortableServer.POAPackage.WrongPolicy
    function id(): Arr1jbyte; overload;
  end;

  OOPPAdapterAlreadyExistsHelper = class abstract external 'org.omg.PortableServer.POAPackage' name 'AdapterAlreadyExistsHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOPPAdapterAlreadyExists); static; overload;
    class function extract(para1: OOCAny): OOPPAdapterAlreadyExists; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOPPAdapterAlreadyExists; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOPPAdapterAlreadyExists); static; overload;
  end;

  OOPPAdapterNonExistentHelper = class abstract external 'org.omg.PortableServer.POAPackage' name 'AdapterNonExistentHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOPPAdapterNonExistent); static; overload;
    class function extract(para1: OOCAny): OOPPAdapterNonExistent; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOPPAdapterNonExistent; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOPPAdapterNonExistent); static; overload;
  end;

  OOPPInvalidPolicyHelper = class abstract external 'org.omg.PortableServer.POAPackage' name 'InvalidPolicyHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOPPInvalidPolicy); static; overload;
    class function extract(para1: OOCAny): OOPPInvalidPolicy; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOPPInvalidPolicy; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOPPInvalidPolicy); static; overload;
  end;

  OOPPNoServantHelper = class abstract external 'org.omg.PortableServer.POAPackage' name 'NoServantHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOPPNoServant); static; overload;
    class function extract(para1: OOCAny): OOPPNoServant; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOPPNoServant; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOPPNoServant); static; overload;
  end;

  OOPPObjectAlreadyActiveHelper = class abstract external 'org.omg.PortableServer.POAPackage' name 'ObjectAlreadyActiveHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOPPObjectAlreadyActive); static; overload;
    class function extract(para1: OOCAny): OOPPObjectAlreadyActive; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOPPObjectAlreadyActive; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOPPObjectAlreadyActive); static; overload;
  end;

  OOPPObjectNotActiveHelper = class abstract external 'org.omg.PortableServer.POAPackage' name 'ObjectNotActiveHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOPPObjectNotActive); static; overload;
    class function extract(para1: OOCAny): OOPPObjectNotActive; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOPPObjectNotActive; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOPPObjectNotActive); static; overload;
  end;

  OOPPServantAlreadyActiveHelper = class abstract external 'org.omg.PortableServer.POAPackage' name 'ServantAlreadyActiveHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOPPServantAlreadyActive); static; overload;
    class function extract(para1: OOCAny): OOPPServantAlreadyActive; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOPPServantAlreadyActive; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOPPServantAlreadyActive); static; overload;
  end;

  OOPPServantNotActiveHelper = class abstract external 'org.omg.PortableServer.POAPackage' name 'ServantNotActiveHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOPPServantNotActive); static; overload;
    class function extract(para1: OOCAny): OOPPServantNotActive; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOPPServantNotActive; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOPPServantNotActive); static; overload;
  end;

  OOPPWrongAdapterHelper = class abstract external 'org.omg.PortableServer.POAPackage' name 'WrongAdapterHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOPPWrongAdapter); static; overload;
    class function extract(para1: OOCAny): OOPPWrongAdapter; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOPPWrongAdapter; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOPPWrongAdapter); static; overload;
  end;

  OOPPWrongPolicyHelper = class abstract external 'org.omg.PortableServer.POAPackage' name 'WrongPolicyHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOPPWrongPolicy); static; overload;
    class function extract(para1: OOCAny): OOPPWrongPolicy; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOPPWrongPolicy; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOPPWrongPolicy); static; overload;
  end;

  OOPREQUEST_PROCESSING_POLICY_ID = interface external 'org.omg.PortableServer' name 'REQUEST_PROCESSING_POLICY_ID' 
    const
      value = 22;
  end;

  OOPSERVANT_RETENTION_POLICY_ID = interface external 'org.omg.PortableServer' name 'SERVANT_RETENTION_POLICY_ID' 
    const
      value = 21;
  end;

  OOPServant = class abstract external 'org.omg.PortableServer' name 'Servant' (JLObject)
  public
    constructor create(); overload;
    function _get_delegate(): OOPPDelegate; overload; virtual; final;
    procedure _set_delegate(para1: OOPPDelegate); overload; virtual; final;
    function _this_object(): OOCObject; overload; virtual; final;
    function _this_object(para1: OOCORB): OOCObject; overload; virtual; final;
    function _orb(): OOCORB; overload; virtual; final;
    function _poa(): OOPPOA; overload; virtual; final;
    function _object_id(): Arr1jbyte; overload; virtual; final;
    function _default_POA(): OOPPOA; overload; virtual;
    function _is_a(para1: JLString): jboolean; overload; virtual;
    function _non_existent(): jboolean; overload; virtual;
    function _get_interface_def(): OOCObject; overload; virtual;
    function _all_interfaces(para1: OOPPOA; para2: Arr1jbyte): Arr1JLString; overload; virtual; abstract;
    function _all_interfaces(para1: OOPPOA; var para2: array of jbyte): Arr1JLString; overload; virtual; abstract;
  end;

  OOPServantActivatorHelper = class abstract external 'org.omg.PortableServer' name 'ServantActivatorHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOPServantActivator); static; overload;
    class function extract(para1: OOCAny): OOPServantActivator; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOPServantActivator; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOPServantActivator); static; overload;
    class function narrow(para1: OOCObject): OOPServantActivator; static; overload;
    class function unchecked_narrow(para1: OOCObject): OOPServantActivator; static; overload;
  end;

  OOPServantLocatorHelper = class abstract external 'org.omg.PortableServer' name 'ServantLocatorHelper' (JLObject)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: OOPServantLocator); static; overload;
    class function extract(para1: OOCAny): OOPServantLocator; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): OOPServantLocator; static; overload;
    class procedure write(para1: OOCPOutputStream; para2: OOPServantLocator); static; overload;
    class function narrow(para1: OOCObject): OOPServantLocator; static; overload;
    class function unchecked_narrow(para1: OOCObject): OOPServantLocator; static; overload;
  end;

  OOPServantManagerOperations = interface external 'org.omg.PortableServer' name 'ServantManagerOperations' 
  end;

  OOPTHREAD_POLICY_ID = interface external 'org.omg.PortableServer' name 'THREAD_POLICY_ID' 
    const
      value = 16;
  end;

  OOPPDelegate = interface external 'org.omg.PortableServer.portable' name 'Delegate' 
    function orb(para1: OOPServant): OOCORB; overload;
    function this_object(para1: OOPServant): OOCObject; overload;
    function poa(para1: OOPServant): OOPPOA; overload;
    function object_id(para1: OOPServant): Arr1jbyte; overload;
    function default_POA(para1: OOPServant): OOPPOA; overload;
    function is_a(para1: OOPServant; para2: JLString): jboolean; overload;
    function non_existent(para1: OOPServant): jboolean; overload;
    function get_interface_def(para1: OOPServant): OOCObject; overload;
  end;

  OOSRunTimeOperations = interface external 'org.omg.SendingContext' name 'RunTimeOperations' 
  end;

  OWDDOMConfiguration = interface external 'org.w3c.dom' name 'DOMConfiguration' 
    procedure setParameter(para1: JLString; para2: JLObject); overload;  // throws org.w3c.dom.DOMException
    function getParameter(para1: JLString): JLObject; overload;  // throws org.w3c.dom.DOMException
    function canSetParameter(para1: JLString; para2: JLObject): jboolean; overload;
    function getParameterNames(): OWDDOMStringList; overload;
  end;

  OWDDOMError = interface external 'org.w3c.dom' name 'DOMError' 
    const
      SEVERITY_WARNING = 1;
      SEVERITY_ERROR = 2;
      SEVERITY_FATAL_ERROR = 3;
    function getSeverity(): jshort; overload;
    function getMessage(): JLString; overload;
    function getType(): JLString; overload;
    function getRelatedException(): JLObject; overload;
    function getRelatedData(): JLObject; overload;
    function getLocation(): OWDDOMLocator; overload;
  end;

  OWDDOMErrorHandler = interface external 'org.w3c.dom' name 'DOMErrorHandler' 
    function handleError(para1: OWDDOMError): jboolean; overload;
  end;

  OWDDOMImplementation = interface external 'org.w3c.dom' name 'DOMImplementation' 
    function hasFeature(para1: JLString; para2: JLString): jboolean; overload;
    function createDocumentType(para1: JLString; para2: JLString; para3: JLString): OWDDocumentType; overload;  // throws org.w3c.dom.DOMException
    function createDocument(para1: JLString; para2: JLString; para3: OWDDocumentType): OWDDocument; overload;  // throws org.w3c.dom.DOMException
    function getFeature(para1: JLString; para2: JLString): JLObject; overload;
  end;

  OWDDOMImplementationList = interface external 'org.w3c.dom' name 'DOMImplementationList' 
    function item(para1: jint): OWDDOMImplementation; overload;
    function getLength(): jint; overload;
  end;

  OWDDOMImplementationSource = interface external 'org.w3c.dom' name 'DOMImplementationSource' 
    function getDOMImplementation(para1: JLString): OWDDOMImplementation; overload;
    function getDOMImplementationList(para1: JLString): OWDDOMImplementationList; overload;
  end;

  OWDDOMLocator = interface external 'org.w3c.dom' name 'DOMLocator' 
    function getLineNumber(): jint; overload;
    function getColumnNumber(): jint; overload;
    function getByteOffset(): jint; overload;
    function getUtf16Offset(): jint; overload;
    function getRelatedNode(): OWDNode; overload;
    function getUri(): JLString; overload;
  end;

  OWDDOMStringList = interface external 'org.w3c.dom' name 'DOMStringList' 
    function item(para1: jint): JLString; overload;
    function getLength(): jint; overload;
    function contains(para1: JLString): jboolean; overload;
  end;

  OWDNameList = interface external 'org.w3c.dom' name 'NameList' 
    function getName(para1: jint): JLString; overload;
    function getNamespaceURI(para1: jint): JLString; overload;
    function getLength(): jint; overload;
    function contains(para1: JLString): jboolean; overload;
    function containsNS(para1: JLString; para2: JLString): jboolean; overload;
  end;

  OWDNamedNodeMap = interface external 'org.w3c.dom' name 'NamedNodeMap' 
    function getNamedItem(para1: JLString): OWDNode; overload;
    function setNamedItem(para1: OWDNode): OWDNode; overload;  // throws org.w3c.dom.DOMException
    function removeNamedItem(para1: JLString): OWDNode; overload;  // throws org.w3c.dom.DOMException
    function item(para1: jint): OWDNode; overload;
    function getLength(): jint; overload;
    function getNamedItemNS(para1: JLString; para2: JLString): OWDNode; overload;  // throws org.w3c.dom.DOMException
    function setNamedItemNS(para1: OWDNode): OWDNode; overload;  // throws org.w3c.dom.DOMException
    function removeNamedItemNS(para1: JLString; para2: JLString): OWDNode; overload;  // throws org.w3c.dom.DOMException
  end;

  OWDNode = interface external 'org.w3c.dom' name 'Node' 
    const
      ELEMENT_NODE = 1;
      ATTRIBUTE_NODE = 2;
      TEXT_NODE = 3;
      CDATA_SECTION_NODE = 4;
      ENTITY_REFERENCE_NODE = 5;
      ENTITY_NODE = 6;
      PROCESSING_INSTRUCTION_NODE = 7;
      COMMENT_NODE = 8;
      DOCUMENT_NODE = 9;
      DOCUMENT_TYPE_NODE = 10;
      DOCUMENT_FRAGMENT_NODE = 11;
      NOTATION_NODE = 12;
      DOCUMENT_POSITION_DISCONNECTED = 1;
      DOCUMENT_POSITION_PRECEDING = 2;
      DOCUMENT_POSITION_FOLLOWING = 4;
      DOCUMENT_POSITION_CONTAINS = 8;
      DOCUMENT_POSITION_CONTAINED_BY = 16;
      DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 32;
    function getNodeName(): JLString; overload;
    function getNodeValue(): JLString; overload;  // throws org.w3c.dom.DOMException
    procedure setNodeValue(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getNodeType(): jshort; overload;
    function getParentNode(): OWDNode; overload;
    function getChildNodes(): OWDNodeList; overload;
    function getFirstChild(): OWDNode; overload;
    function getLastChild(): OWDNode; overload;
    function getPreviousSibling(): OWDNode; overload;
    function getNextSibling(): OWDNode; overload;
    function getAttributes(): OWDNamedNodeMap; overload;
    function getOwnerDocument(): OWDDocument; overload;
    function insertBefore(para1: OWDNode; para2: OWDNode): OWDNode; overload;  // throws org.w3c.dom.DOMException
    function replaceChild(para1: OWDNode; para2: OWDNode): OWDNode; overload;  // throws org.w3c.dom.DOMException
    function removeChild(para1: OWDNode): OWDNode; overload;  // throws org.w3c.dom.DOMException
    function appendChild(para1: OWDNode): OWDNode; overload;  // throws org.w3c.dom.DOMException
    function hasChildNodes(): jboolean; overload;
    function cloneNode(para1: jboolean): OWDNode; overload;
    procedure normalize(); overload;
    function isSupported(para1: JLString; para2: JLString): jboolean; overload;
    function getNamespaceURI(): JLString; overload;
    function getPrefix(): JLString; overload;
    procedure setPrefix(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getLocalName(): JLString; overload;
    function hasAttributes(): jboolean; overload;
    function getBaseURI(): JLString; overload;
    function compareDocumentPosition(para1: OWDNode): jshort; overload;  // throws org.w3c.dom.DOMException
    function getTextContent(): JLString; overload;  // throws org.w3c.dom.DOMException
    procedure setTextContent(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function isSameNode(para1: OWDNode): jboolean; overload;
    function lookupPrefix(para1: JLString): JLString; overload;
    function isDefaultNamespace(para1: JLString): jboolean; overload;
    function lookupNamespaceURI(para1: JLString): JLString; overload;
    function isEqualNode(para1: OWDNode): jboolean; overload;
    function getFeature(para1: JLString; para2: JLString): JLObject; overload;
    function setUserData(para1: JLString; para2: JLObject; para3: OWDUserDataHandler): JLObject; overload;
    function getUserData(para1: JLString): JLObject; overload;
  end;

  OWDNodeList = interface external 'org.w3c.dom' name 'NodeList' 
    function item(para1: jint): OWDNode; overload;
    function getLength(): jint; overload;
  end;

  OWDTypeInfo = interface external 'org.w3c.dom' name 'TypeInfo' 
    const
      DERIVATION_RESTRICTION = 1;
      DERIVATION_EXTENSION = 2;
      DERIVATION_UNION = 4;
      DERIVATION_LIST = 8;
    function getTypeName(): JLString; overload;
    function getTypeNamespace(): JLString; overload;
    function isDerivedFrom(para1: JLString; para2: JLString; para3: jint): jboolean; overload;
  end;

  OWDUserDataHandler = interface external 'org.w3c.dom' name 'UserDataHandler' 
    const
      NODE_CLONED = 1;
      NODE_IMPORTED = 2;
      NODE_DELETED = 3;
      NODE_RENAMED = 4;
      NODE_ADOPTED = 5;
    procedure handle(para1: jshort; para2: JLString; para3: JLObject; para4: OWDNode; para5: OWDNode); overload;
  end;

  OWDBDOMImplementationRegistry = class sealed external 'org.w3c.dom.bootstrap' name 'DOMImplementationRegistry' (JLObject)
  public
    const
      &PROPERTY = 'org.w3c.dom.DOMImplementationSourceList';
  public
    class function newInstance(): OWDBDOMImplementationRegistry; static; overload;  // throws java.lang.ClassNotFoundException, java.lang.InstantiationException, java.lang.IllegalAccessException, java.lang.ClassCastException
    function getDOMImplementation(para1: JLString): OWDDOMImplementation; overload; virtual;
    function getDOMImplementationList(para1: JLString): OWDDOMImplementationList; overload; virtual;
    procedure addSource(para1: OWDDOMImplementationSource); overload; virtual;
  end;

  OWDCCSS2Properties = interface external 'org.w3c.dom.css' name 'CSS2Properties' 
    function getAzimuth(): JLString; overload;
    procedure setAzimuth(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getBackground(): JLString; overload;
    procedure setBackground(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getBackgroundAttachment(): JLString; overload;
    procedure setBackgroundAttachment(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getBackgroundColor(): JLString; overload;
    procedure setBackgroundColor(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getBackgroundImage(): JLString; overload;
    procedure setBackgroundImage(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getBackgroundPosition(): JLString; overload;
    procedure setBackgroundPosition(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getBackgroundRepeat(): JLString; overload;
    procedure setBackgroundRepeat(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getBorder(): JLString; overload;
    procedure setBorder(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getBorderCollapse(): JLString; overload;
    procedure setBorderCollapse(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getBorderColor(): JLString; overload;
    procedure setBorderColor(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getBorderSpacing(): JLString; overload;
    procedure setBorderSpacing(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getBorderStyle(): JLString; overload;
    procedure setBorderStyle(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getBorderTop(): JLString; overload;
    procedure setBorderTop(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getBorderRight(): JLString; overload;
    procedure setBorderRight(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getBorderBottom(): JLString; overload;
    procedure setBorderBottom(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getBorderLeft(): JLString; overload;
    procedure setBorderLeft(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getBorderTopColor(): JLString; overload;
    procedure setBorderTopColor(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getBorderRightColor(): JLString; overload;
    procedure setBorderRightColor(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getBorderBottomColor(): JLString; overload;
    procedure setBorderBottomColor(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getBorderLeftColor(): JLString; overload;
    procedure setBorderLeftColor(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getBorderTopStyle(): JLString; overload;
    procedure setBorderTopStyle(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getBorderRightStyle(): JLString; overload;
    procedure setBorderRightStyle(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getBorderBottomStyle(): JLString; overload;
    procedure setBorderBottomStyle(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getBorderLeftStyle(): JLString; overload;
    procedure setBorderLeftStyle(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getBorderTopWidth(): JLString; overload;
    procedure setBorderTopWidth(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getBorderRightWidth(): JLString; overload;
    procedure setBorderRightWidth(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getBorderBottomWidth(): JLString; overload;
    procedure setBorderBottomWidth(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getBorderLeftWidth(): JLString; overload;
    procedure setBorderLeftWidth(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getBorderWidth(): JLString; overload;
    procedure setBorderWidth(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getBottom(): JLString; overload;
    procedure setBottom(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getCaptionSide(): JLString; overload;
    procedure setCaptionSide(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getClear(): JLString; overload;
    procedure setClear(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getClip(): JLString; overload;
    procedure setClip(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getColor(): JLString; overload;
    procedure setColor(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getContent(): JLString; overload;
    procedure setContent(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getCounterIncrement(): JLString; overload;
    procedure setCounterIncrement(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getCounterReset(): JLString; overload;
    procedure setCounterReset(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getCue(): JLString; overload;
    procedure setCue(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getCueAfter(): JLString; overload;
    procedure setCueAfter(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getCueBefore(): JLString; overload;
    procedure setCueBefore(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getCursor(): JLString; overload;
    procedure setCursor(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getDirection(): JLString; overload;
    procedure setDirection(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getDisplay(): JLString; overload;
    procedure setDisplay(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getElevation(): JLString; overload;
    procedure setElevation(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getEmptyCells(): JLString; overload;
    procedure setEmptyCells(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getCssFloat(): JLString; overload;
    procedure setCssFloat(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getFont(): JLString; overload;
    procedure setFont(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getFontFamily(): JLString; overload;
    procedure setFontFamily(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getFontSize(): JLString; overload;
    procedure setFontSize(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getFontSizeAdjust(): JLString; overload;
    procedure setFontSizeAdjust(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getFontStretch(): JLString; overload;
    procedure setFontStretch(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getFontStyle(): JLString; overload;
    procedure setFontStyle(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getFontVariant(): JLString; overload;
    procedure setFontVariant(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getFontWeight(): JLString; overload;
    procedure setFontWeight(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getHeight(): JLString; overload;
    procedure setHeight(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getLeft(): JLString; overload;
    procedure setLeft(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getLetterSpacing(): JLString; overload;
    procedure setLetterSpacing(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getLineHeight(): JLString; overload;
    procedure setLineHeight(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getListStyle(): JLString; overload;
    procedure setListStyle(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getListStyleImage(): JLString; overload;
    procedure setListStyleImage(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getListStylePosition(): JLString; overload;
    procedure setListStylePosition(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getListStyleType(): JLString; overload;
    procedure setListStyleType(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getMargin(): JLString; overload;
    procedure setMargin(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getMarginTop(): JLString; overload;
    procedure setMarginTop(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getMarginRight(): JLString; overload;
    procedure setMarginRight(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getMarginBottom(): JLString; overload;
    procedure setMarginBottom(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getMarginLeft(): JLString; overload;
    procedure setMarginLeft(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getMarkerOffset(): JLString; overload;
    procedure setMarkerOffset(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getMarks(): JLString; overload;
    procedure setMarks(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getMaxHeight(): JLString; overload;
    procedure setMaxHeight(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getMaxWidth(): JLString; overload;
    procedure setMaxWidth(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getMinHeight(): JLString; overload;
    procedure setMinHeight(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getMinWidth(): JLString; overload;
    procedure setMinWidth(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getOrphans(): JLString; overload;
    procedure setOrphans(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getOutline(): JLString; overload;
    procedure setOutline(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getOutlineColor(): JLString; overload;
    procedure setOutlineColor(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getOutlineStyle(): JLString; overload;
    procedure setOutlineStyle(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getOutlineWidth(): JLString; overload;
    procedure setOutlineWidth(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getOverflow(): JLString; overload;
    procedure setOverflow(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getPadding(): JLString; overload;
    procedure setPadding(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getPaddingTop(): JLString; overload;
    procedure setPaddingTop(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getPaddingRight(): JLString; overload;
    procedure setPaddingRight(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getPaddingBottom(): JLString; overload;
    procedure setPaddingBottom(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getPaddingLeft(): JLString; overload;
    procedure setPaddingLeft(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getPage(): JLString; overload;
    procedure setPage(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getPageBreakAfter(): JLString; overload;
    procedure setPageBreakAfter(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getPageBreakBefore(): JLString; overload;
    procedure setPageBreakBefore(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getPageBreakInside(): JLString; overload;
    procedure setPageBreakInside(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getPause(): JLString; overload;
    procedure setPause(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getPauseAfter(): JLString; overload;
    procedure setPauseAfter(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getPauseBefore(): JLString; overload;
    procedure setPauseBefore(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getPitch(): JLString; overload;
    procedure setPitch(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getPitchRange(): JLString; overload;
    procedure setPitchRange(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getPlayDuring(): JLString; overload;
    procedure setPlayDuring(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getPosition(): JLString; overload;
    procedure setPosition(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getQuotes(): JLString; overload;
    procedure setQuotes(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getRichness(): JLString; overload;
    procedure setRichness(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getRight(): JLString; overload;
    procedure setRight(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getSize(): JLString; overload;
    procedure setSize(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getSpeak(): JLString; overload;
    procedure setSpeak(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getSpeakHeader(): JLString; overload;
    procedure setSpeakHeader(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getSpeakNumeral(): JLString; overload;
    procedure setSpeakNumeral(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getSpeakPunctuation(): JLString; overload;
    procedure setSpeakPunctuation(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getSpeechRate(): JLString; overload;
    procedure setSpeechRate(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getStress(): JLString; overload;
    procedure setStress(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getTableLayout(): JLString; overload;
    procedure setTableLayout(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getTextAlign(): JLString; overload;
    procedure setTextAlign(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getTextDecoration(): JLString; overload;
    procedure setTextDecoration(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getTextIndent(): JLString; overload;
    procedure setTextIndent(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getTextShadow(): JLString; overload;
    procedure setTextShadow(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getTextTransform(): JLString; overload;
    procedure setTextTransform(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getTop(): JLString; overload;
    procedure setTop(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getUnicodeBidi(): JLString; overload;
    procedure setUnicodeBidi(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getVerticalAlign(): JLString; overload;
    procedure setVerticalAlign(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getVisibility(): JLString; overload;
    procedure setVisibility(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getVoiceFamily(): JLString; overload;
    procedure setVoiceFamily(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getVolume(): JLString; overload;
    procedure setVolume(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getWhiteSpace(): JLString; overload;
    procedure setWhiteSpace(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getWidows(): JLString; overload;
    procedure setWidows(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getWidth(): JLString; overload;
    procedure setWidth(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getWordSpacing(): JLString; overload;
    procedure setWordSpacing(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getZIndex(): JLString; overload;
    procedure setZIndex(para1: JLString); overload;  // throws org.w3c.dom.DOMException
  end;

  OWDCCSSRule = interface external 'org.w3c.dom.css' name 'CSSRule' 
    const
      UNKNOWN_RULE = 0;
      STYLE_RULE = 1;
      CHARSET_RULE = 2;
      IMPORT_RULE = 3;
      MEDIA_RULE = 4;
      FONT_FACE_RULE = 5;
      PAGE_RULE = 6;
    function getType(): jshort; overload;
    function getCssText(): JLString; overload;
    procedure setCssText(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getParentStyleSheet(): OWDCCSSStyleSheet; overload;
    function getParentRule(): OWDCCSSRule; overload;
  end;

  OWDCCSSRuleList = interface external 'org.w3c.dom.css' name 'CSSRuleList' 
    function getLength(): jint; overload;
    function item(para1: jint): OWDCCSSRule; overload;
  end;

  OWDCCSSStyleDeclaration = interface external 'org.w3c.dom.css' name 'CSSStyleDeclaration' 
    function getCssText(): JLString; overload;
    procedure setCssText(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getPropertyValue(para1: JLString): JLString; overload;
    function getPropertyCSSValue(para1: JLString): OWDCCSSValue; overload;
    function removeProperty(para1: JLString): JLString; overload;  // throws org.w3c.dom.DOMException
    function getPropertyPriority(para1: JLString): JLString; overload;
    procedure setProperty(para1: JLString; para2: JLString; para3: JLString); overload;  // throws org.w3c.dom.DOMException
    function getLength(): jint; overload;
    function item(para1: jint): JLString; overload;
    function getParentRule(): OWDCCSSRule; overload;
  end;

  OWDCCSSValue = interface external 'org.w3c.dom.css' name 'CSSValue' 
    const
      CSS_INHERIT = 0;
      CSS_PRIMITIVE_VALUE = 1;
      CSS_VALUE_LIST = 2;
      CSS_CUSTOM = 3;
    function getCssText(): JLString; overload;
    procedure setCssText(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getCssValueType(): jshort; overload;
  end;

  OWDCCounter = interface external 'org.w3c.dom.css' name 'Counter' 
    function getIdentifier(): JLString; overload;
    function getListStyle(): JLString; overload;
    function getSeparator(): JLString; overload;
  end;

  OWDCElementCSSInlineStyle = interface external 'org.w3c.dom.css' name 'ElementCSSInlineStyle' 
    function getStyle(): OWDCCSSStyleDeclaration; overload;
  end;

  OWDCRGBColor = interface external 'org.w3c.dom.css' name 'RGBColor' 
    function getRed(): OWDCCSSPrimitiveValue; overload;
    function getGreen(): OWDCCSSPrimitiveValue; overload;
    function getBlue(): OWDCCSSPrimitiveValue; overload;
  end;

  OWDCRect = interface external 'org.w3c.dom.css' name 'Rect' 
    function getTop(): OWDCCSSPrimitiveValue; overload;
    function getRight(): OWDCCSSPrimitiveValue; overload;
    function getBottom(): OWDCCSSPrimitiveValue; overload;
    function getLeft(): OWDCCSSPrimitiveValue; overload;
  end;

  OWDEDocumentEvent = interface external 'org.w3c.dom.events' name 'DocumentEvent' 
    function createEvent(para1: JLString): OWDEEvent; overload;  // throws org.w3c.dom.DOMException
  end;

  OWDEEvent = interface external 'org.w3c.dom.events' name 'Event' 
    const
      CAPTURING_PHASE = 1;
      AT_TARGET = 2;
      BUBBLING_PHASE = 3;
    function getType(): JLString; overload;
    function getTarget(): OWDEEventTarget; overload;
    function getCurrentTarget(): OWDEEventTarget; overload;
    function getEventPhase(): jshort; overload;
    function getBubbles(): jboolean; overload;
    function getCancelable(): jboolean; overload;
    function getTimeStamp(): jlong; overload;
    procedure stopPropagation(); overload;
    procedure preventDefault(); overload;
    procedure initEvent(para1: JLString; para2: jboolean; para3: jboolean); overload;
  end;

  OWDEEventListener = interface external 'org.w3c.dom.events' name 'EventListener' 
    procedure handleEvent(para1: OWDEEvent); overload;
  end;

  OWDEEventTarget = interface external 'org.w3c.dom.events' name 'EventTarget' 
    procedure addEventListener(para1: JLString; para2: OWDEEventListener; para3: jboolean); overload;
    procedure removeEventListener(para1: JLString; para2: OWDEEventListener; para3: jboolean); overload;
    function dispatchEvent(para1: OWDEEvent): jboolean; overload;  // throws org.w3c.dom.events.EventException
  end;

  OWDHHTMLCollection = interface external 'org.w3c.dom.html' name 'HTMLCollection' 
    function getLength(): jint; overload;
    function item(para1: jint): OWDNode; overload;
    function namedItem(para1: JLString): OWDNode; overload;
  end;

  OWDLDOMImplementationLS = interface external 'org.w3c.dom.ls' name 'DOMImplementationLS' 
    const
      MODE_SYNCHRONOUS = 1;
      MODE_ASYNCHRONOUS = 2;
    function createLSParser(para1: jshort; para2: JLString): OWDLLSParser; overload;  // throws org.w3c.dom.DOMException
    function createLSSerializer(): OWDLLSSerializer; overload;
    function createLSInput(): OWDLLSInput; overload;
    function createLSOutput(): OWDLLSOutput; overload;
  end;

  OWDLLSInput = interface external 'org.w3c.dom.ls' name 'LSInput' 
    function getCharacterStream(): JIReader; overload;
    procedure setCharacterStream(para1: JIReader); overload;
    function getByteStream(): JIInputStream; overload;
    procedure setByteStream(para1: JIInputStream); overload;
    function getStringData(): JLString; overload;
    procedure setStringData(para1: JLString); overload;
    function getSystemId(): JLString; overload;
    procedure setSystemId(para1: JLString); overload;
    function getPublicId(): JLString; overload;
    procedure setPublicId(para1: JLString); overload;
    function getBaseURI(): JLString; overload;
    procedure setBaseURI(para1: JLString); overload;
    function getEncoding(): JLString; overload;
    procedure setEncoding(para1: JLString); overload;
    function getCertifiedText(): jboolean; overload;
    procedure setCertifiedText(para1: jboolean); overload;
  end;

  OWDLLSOutput = interface external 'org.w3c.dom.ls' name 'LSOutput' 
    function getCharacterStream(): JIWriter; overload;
    procedure setCharacterStream(para1: JIWriter); overload;
    function getByteStream(): JIOutputStream; overload;
    procedure setByteStream(para1: JIOutputStream); overload;
    function getSystemId(): JLString; overload;
    procedure setSystemId(para1: JLString); overload;
    function getEncoding(): JLString; overload;
    procedure setEncoding(para1: JLString); overload;
  end;

  OWDLLSParser = interface external 'org.w3c.dom.ls' name 'LSParser' 
    const
      ACTION_APPEND_AS_CHILDREN = 1;
      ACTION_REPLACE_CHILDREN = 2;
      ACTION_INSERT_BEFORE = 3;
      ACTION_INSERT_AFTER = 4;
      ACTION_REPLACE = 5;
    function getDomConfig(): OWDDOMConfiguration; overload;
    function getFilter(): OWDLLSParserFilter; overload;
    procedure setFilter(para1: OWDLLSParserFilter); overload;
    function getAsync(): jboolean; overload;
    function getBusy(): jboolean; overload;
    function parse(para1: OWDLLSInput): OWDDocument; overload;  // throws org.w3c.dom.DOMException, org.w3c.dom.ls.LSException
    function parseURI(para1: JLString): OWDDocument; overload;  // throws org.w3c.dom.DOMException, org.w3c.dom.ls.LSException
    function parseWithContext(para1: OWDLLSInput; para2: OWDNode; para3: jshort): OWDNode; overload;  // throws org.w3c.dom.DOMException, org.w3c.dom.ls.LSException
    procedure abort(); overload;
  end;

  OWDLLSParserFilter = interface external 'org.w3c.dom.ls' name 'LSParserFilter' 
    const
      FILTER_ACCEPT = 1;
      FILTER_REJECT = 2;
      FILTER_SKIP = 3;
      FILTER_INTERRUPT = 4;
    function startElement(para1: OWDElement): jshort; overload;
    function acceptNode(para1: OWDNode): jshort; overload;
    function getWhatToShow(): jint; overload;
  end;

  OWDLLSResourceResolver = interface external 'org.w3c.dom.ls' name 'LSResourceResolver' 
    function resolveResource(para1: JLString; para2: JLString; para3: JLString; para4: JLString; para5: JLString): OWDLLSInput; overload;
  end;

  OWDLLSSerializer = interface external 'org.w3c.dom.ls' name 'LSSerializer' 
    function getDomConfig(): OWDDOMConfiguration; overload;
    function getNewLine(): JLString; overload;
    procedure setNewLine(para1: JLString); overload;
    function getFilter(): OWDLLSSerializerFilter; overload;
    procedure setFilter(para1: OWDLLSSerializerFilter); overload;
    function write(para1: OWDNode; para2: OWDLLSOutput): jboolean; overload;  // throws org.w3c.dom.ls.LSException
    function writeToURI(para1: OWDNode; para2: JLString): jboolean; overload;  // throws org.w3c.dom.ls.LSException
    function writeToString(para1: OWDNode): JLString; overload;  // throws org.w3c.dom.DOMException, org.w3c.dom.ls.LSException
  end;

  OWDRDocumentRange = interface external 'org.w3c.dom.ranges' name 'DocumentRange' 
    function createRange(): OWDRRange; overload;
  end;

  OWDRRange = interface external 'org.w3c.dom.ranges' name 'Range' 
    const
      START_TO_START = 0;
      START_TO_END = 1;
      END_TO_END = 2;
      END_TO_START = 3;
    function getStartContainer(): OWDNode; overload;  // throws org.w3c.dom.DOMException
    function getStartOffset(): jint; overload;  // throws org.w3c.dom.DOMException
    function getEndContainer(): OWDNode; overload;  // throws org.w3c.dom.DOMException
    function getEndOffset(): jint; overload;  // throws org.w3c.dom.DOMException
    function getCollapsed(): jboolean; overload;  // throws org.w3c.dom.DOMException
    function getCommonAncestorContainer(): OWDNode; overload;  // throws org.w3c.dom.DOMException
    procedure setStart(para1: OWDNode; para2: jint); overload;  // throws org.w3c.dom.ranges.RangeException, org.w3c.dom.DOMException
    procedure setEnd(para1: OWDNode; para2: jint); overload;  // throws org.w3c.dom.ranges.RangeException, org.w3c.dom.DOMException
    procedure setStartBefore(para1: OWDNode); overload;  // throws org.w3c.dom.ranges.RangeException, org.w3c.dom.DOMException
    procedure setStartAfter(para1: OWDNode); overload;  // throws org.w3c.dom.ranges.RangeException, org.w3c.dom.DOMException
    procedure setEndBefore(para1: OWDNode); overload;  // throws org.w3c.dom.ranges.RangeException, org.w3c.dom.DOMException
    procedure setEndAfter(para1: OWDNode); overload;  // throws org.w3c.dom.ranges.RangeException, org.w3c.dom.DOMException
    procedure collapse(para1: jboolean); overload;  // throws org.w3c.dom.DOMException
    procedure selectNode(para1: OWDNode); overload;  // throws org.w3c.dom.ranges.RangeException, org.w3c.dom.DOMException
    procedure selectNodeContents(para1: OWDNode); overload;  // throws org.w3c.dom.ranges.RangeException, org.w3c.dom.DOMException
    function compareBoundaryPoints(para1: jshort; para2: OWDRRange): jshort; overload;  // throws org.w3c.dom.DOMException
    procedure deleteContents(); overload;  // throws org.w3c.dom.DOMException
    function extractContents(): OWDDocumentFragment; overload;  // throws org.w3c.dom.DOMException
    function cloneContents(): OWDDocumentFragment; overload;  // throws org.w3c.dom.DOMException
    procedure insertNode(para1: OWDNode); overload;  // throws org.w3c.dom.DOMException, org.w3c.dom.ranges.RangeException
    procedure surroundContents(para1: OWDNode); overload;  // throws org.w3c.dom.DOMException, org.w3c.dom.ranges.RangeException
    function cloneRange(): OWDRRange; overload;  // throws org.w3c.dom.DOMException
    function toString(): JLString; overload;  // throws org.w3c.dom.DOMException
    procedure detach(); overload;  // throws org.w3c.dom.DOMException
  end;

  OWDSDocumentStyle = interface external 'org.w3c.dom.stylesheets' name 'DocumentStyle' 
    function getStyleSheets(): OWDSStyleSheetList; overload;
  end;

  OWDSLinkStyle = interface external 'org.w3c.dom.stylesheets' name 'LinkStyle' 
    function getSheet(): OWDSStyleSheet; overload;
  end;

  OWDSMediaList = interface external 'org.w3c.dom.stylesheets' name 'MediaList' 
    function getMediaText(): JLString; overload;
    procedure setMediaText(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getLength(): jint; overload;
    function item(para1: jint): JLString; overload;
    procedure deleteMedium(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    procedure appendMedium(para1: JLString); overload;  // throws org.w3c.dom.DOMException
  end;

  OWDSStyleSheet = interface external 'org.w3c.dom.stylesheets' name 'StyleSheet' 
    function getType(): JLString; overload;
    function getDisabled(): jboolean; overload;
    procedure setDisabled(para1: jboolean); overload;
    function getOwnerNode(): OWDNode; overload;
    function getParentStyleSheet(): OWDSStyleSheet; overload;
    function getHref(): JLString; overload;
    function getTitle(): JLString; overload;
    function getMedia(): OWDSMediaList; overload;
  end;

  OWDSStyleSheetList = interface external 'org.w3c.dom.stylesheets' name 'StyleSheetList' 
    function getLength(): jint; overload;
    function item(para1: jint): OWDSStyleSheet; overload;
  end;

  OWDTDocumentTraversal = interface external 'org.w3c.dom.traversal' name 'DocumentTraversal' 
    function createNodeIterator(para1: OWDNode; para2: jint; para3: OWDTNodeFilter; para4: jboolean): OWDTNodeIterator; overload;  // throws org.w3c.dom.DOMException
    function createTreeWalker(para1: OWDNode; para2: jint; para3: OWDTNodeFilter; para4: jboolean): OWDTTreeWalker; overload;  // throws org.w3c.dom.DOMException
  end;

  OWDTNodeFilter = interface external 'org.w3c.dom.traversal' name 'NodeFilter' 
    const
      FILTER_ACCEPT = 1;
      FILTER_REJECT = 2;
      FILTER_SKIP = 3;
      SHOW_ALL = -1;
      SHOW_ELEMENT = 1;
      SHOW_ATTRIBUTE = 2;
      SHOW_TEXT = 4;
      SHOW_CDATA_SECTION = 8;
      SHOW_ENTITY_REFERENCE = 16;
      SHOW_ENTITY = 32;
      SHOW_PROCESSING_INSTRUCTION = 64;
      SHOW_COMMENT = 128;
      SHOW_DOCUMENT = 256;
      SHOW_DOCUMENT_TYPE = 512;
      SHOW_DOCUMENT_FRAGMENT = 1024;
      SHOW_NOTATION = 2048;
    function acceptNode(para1: OWDNode): jshort; overload;
  end;

  OWDTNodeIterator = interface external 'org.w3c.dom.traversal' name 'NodeIterator' 
    function getRoot(): OWDNode; overload;
    function getWhatToShow(): jint; overload;
    function getFilter(): OWDTNodeFilter; overload;
    function getExpandEntityReferences(): jboolean; overload;
    function nextNode(): OWDNode; overload;  // throws org.w3c.dom.DOMException
    function previousNode(): OWDNode; overload;  // throws org.w3c.dom.DOMException
    procedure detach(); overload;
  end;

  OWDTTreeWalker = interface external 'org.w3c.dom.traversal' name 'TreeWalker' 
    function getRoot(): OWDNode; overload;
    function getWhatToShow(): jint; overload;
    function getFilter(): OWDTNodeFilter; overload;
    function getExpandEntityReferences(): jboolean; overload;
    function getCurrentNode(): OWDNode; overload;
    procedure setCurrentNode(para1: OWDNode); overload;  // throws org.w3c.dom.DOMException
    function parentNode(): OWDNode; overload;
    function firstChild(): OWDNode; overload;
    function lastChild(): OWDNode; overload;
    function previousSibling(): OWDNode; overload;
    function nextSibling(): OWDNode; overload;
    function previousNode(): OWDNode; overload;
    function nextNode(): OWDNode; overload;
  end;

  OWDVAbstractView = interface external 'org.w3c.dom.views' name 'AbstractView' 
    function getDocument(): OWDVDocumentView; overload;
  end;

  OWDVDocumentView = interface external 'org.w3c.dom.views' name 'DocumentView' 
    function getDefaultView(): OWDVAbstractView; overload;
  end;

  OWDXXPathEvaluator = interface external 'org.w3c.dom.xpath' name 'XPathEvaluator' 
    function createExpression(para1: JLString; para2: OWDXXPathNSResolver): OWDXXPathExpression; overload;  // throws org.w3c.dom.xpath.XPathException, org.w3c.dom.DOMException
    function createNSResolver(para1: OWDNode): OWDXXPathNSResolver; overload;
    function evaluate(para1: JLString; para2: OWDNode; para3: OWDXXPathNSResolver; para4: jshort; para5: JLObject): JLObject; overload;  // throws org.w3c.dom.xpath.XPathException, org.w3c.dom.DOMException
  end;

  OWDXXPathExpression = interface external 'org.w3c.dom.xpath' name 'XPathExpression' 
    function evaluate(para1: OWDNode; para2: jshort; para3: JLObject): JLObject; overload;  // throws org.w3c.dom.xpath.XPathException, org.w3c.dom.DOMException
  end;

  OWDXXPathNSResolver = interface external 'org.w3c.dom.xpath' name 'XPathNSResolver' 
    function lookupNamespaceURI(para1: JLString): JLString; overload;
  end;

  OWDXXPathResult = interface external 'org.w3c.dom.xpath' name 'XPathResult' 
    const
      ANY_TYPE = 0;
      NUMBER_TYPE = 1;
      STRING_TYPE = 2;
      BOOLEAN_TYPE = 3;
      UNORDERED_NODE_ITERATOR_TYPE = 4;
      ORDERED_NODE_ITERATOR_TYPE = 5;
      UNORDERED_NODE_SNAPSHOT_TYPE = 6;
      ORDERED_NODE_SNAPSHOT_TYPE = 7;
      ANY_UNORDERED_NODE_TYPE = 8;
      FIRST_ORDERED_NODE_TYPE = 9;
    function getResultType(): jshort; overload;
    function getNumberValue(): jdouble; overload;  // throws org.w3c.dom.xpath.XPathException
    function getStringValue(): JLString; overload;  // throws org.w3c.dom.xpath.XPathException
    function getBooleanValue(): jboolean; overload;  // throws org.w3c.dom.xpath.XPathException
    function getSingleNodeValue(): OWDNode; overload;  // throws org.w3c.dom.xpath.XPathException
    function getInvalidIteratorState(): jboolean; overload;
    function getSnapshotLength(): jint; overload;  // throws org.w3c.dom.xpath.XPathException
    function iterateNext(): OWDNode; overload;  // throws org.w3c.dom.xpath.XPathException, org.w3c.dom.DOMException
    function snapshotItem(para1: jint): OWDNode; overload;  // throws org.w3c.dom.xpath.XPathException
  end;

  OXSAttributeList = interface external 'org.xml.sax' name 'AttributeList' 
    function getLength(): jint; overload;
    function getName(para1: jint): JLString; overload;
    function getType(para1: jint): JLString; overload;
    function getValue(para1: jint): JLString; overload;
    function getType(para1: JLString): JLString; overload;
    function getValue(para1: JLString): JLString; overload;
  end;

  OXSAttributes = interface external 'org.xml.sax' name 'Attributes' 
    function getLength(): jint; overload;
    function getURI(para1: jint): JLString; overload;
    function getLocalName(para1: jint): JLString; overload;
    function getQName(para1: jint): JLString; overload;
    function getType(para1: jint): JLString; overload;
    function getValue(para1: jint): JLString; overload;
    function getIndex(para1: JLString; para2: JLString): jint; overload;
    function getIndex(para1: JLString): jint; overload;
    function getType(para1: JLString; para2: JLString): JLString; overload;
    function getType(para1: JLString): JLString; overload;
    function getValue(para1: JLString; para2: JLString): JLString; overload;
    function getValue(para1: JLString): JLString; overload;
  end;

  OXSContentHandler = interface external 'org.xml.sax' name 'ContentHandler' 
    procedure setDocumentLocator(para1: OXSLocator); overload;
    procedure startDocument(); overload;  // throws org.xml.sax.SAXException
    procedure endDocument(); overload;  // throws org.xml.sax.SAXException
    procedure startPrefixMapping(para1: JLString; para2: JLString); overload;  // throws org.xml.sax.SAXException
    procedure endPrefixMapping(para1: JLString); overload;  // throws org.xml.sax.SAXException
    procedure startElement(para1: JLString; para2: JLString; para3: JLString; para4: OXSAttributes); overload;  // throws org.xml.sax.SAXException
    procedure endElement(para1: JLString; para2: JLString; para3: JLString); overload;  // throws org.xml.sax.SAXException
    procedure characters(para1: Arr1jchar; para2: jint; para3: jint); overload;  // throws org.xml.sax.SAXException
    procedure characters(var para1: array of jchar; para2: jint; para3: jint); overload;  // throws org.xml.sax.SAXException
    procedure ignorableWhitespace(para1: Arr1jchar; para2: jint; para3: jint); overload;  // throws org.xml.sax.SAXException
    procedure ignorableWhitespace(var para1: array of jchar; para2: jint; para3: jint); overload;  // throws org.xml.sax.SAXException
    procedure processingInstruction(para1: JLString; para2: JLString); overload;  // throws org.xml.sax.SAXException
    procedure skippedEntity(para1: JLString); overload;  // throws org.xml.sax.SAXException
  end;

  OXSDTDHandler = interface external 'org.xml.sax' name 'DTDHandler' 
    procedure notationDecl(para1: JLString; para2: JLString; para3: JLString); overload;  // throws org.xml.sax.SAXException
    procedure unparsedEntityDecl(para1: JLString; para2: JLString; para3: JLString; para4: JLString); overload;  // throws org.xml.sax.SAXException
  end;

  OXSDocumentHandler = interface external 'org.xml.sax' name 'DocumentHandler' 
    procedure setDocumentLocator(para1: OXSLocator); overload;
    procedure startDocument(); overload;  // throws org.xml.sax.SAXException
    procedure endDocument(); overload;  // throws org.xml.sax.SAXException
    procedure startElement(para1: JLString; para2: OXSAttributeList); overload;  // throws org.xml.sax.SAXException
    procedure endElement(para1: JLString); overload;  // throws org.xml.sax.SAXException
    procedure characters(para1: Arr1jchar; para2: jint; para3: jint); overload;  // throws org.xml.sax.SAXException
    procedure characters(var para1: array of jchar; para2: jint; para3: jint); overload;  // throws org.xml.sax.SAXException
    procedure ignorableWhitespace(para1: Arr1jchar; para2: jint; para3: jint); overload;  // throws org.xml.sax.SAXException
    procedure ignorableWhitespace(var para1: array of jchar; para2: jint; para3: jint); overload;  // throws org.xml.sax.SAXException
    procedure processingInstruction(para1: JLString; para2: JLString); overload;  // throws org.xml.sax.SAXException
  end;

  OXSEntityResolver = interface external 'org.xml.sax' name 'EntityResolver' 
    function resolveEntity(para1: JLString; para2: JLString): OXSInputSource; overload;  // throws org.xml.sax.SAXException, java.io.IOException
  end;

  OXSErrorHandler = interface external 'org.xml.sax' name 'ErrorHandler' 
    procedure warning(para1: OXSSAXParseException); overload;  // throws org.xml.sax.SAXException
    procedure error(para1: OXSSAXParseException); overload;  // throws org.xml.sax.SAXException
    procedure fatalError(para1: OXSSAXParseException); overload;  // throws org.xml.sax.SAXException
  end;

  OXSInputSource = class external 'org.xml.sax' name 'InputSource' (JLObject)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JIInputStream); overload;
    constructor create(para1: JIReader); overload;
    procedure setPublicId(para1: JLString); overload; virtual;
    function getPublicId(): JLString; overload; virtual;
    procedure setSystemId(para1: JLString); overload; virtual;
    function getSystemId(): JLString; overload; virtual;
    procedure setByteStream(para1: JIInputStream); overload; virtual;
    function getByteStream(): JIInputStream; overload; virtual;
    procedure setEncoding(para1: JLString); overload; virtual;
    function getEncoding(): JLString; overload; virtual;
    procedure setCharacterStream(para1: JIReader); overload; virtual;
    function getCharacterStream(): JIReader; overload; virtual;
  end;

  OXSLocator = interface external 'org.xml.sax' name 'Locator' 
    function getPublicId(): JLString; overload;
    function getSystemId(): JLString; overload;
    function getLineNumber(): jint; overload;
    function getColumnNumber(): jint; overload;
  end;

  OXSParser = interface external 'org.xml.sax' name 'Parser' 
    procedure setLocale(para1: JULocale); overload;  // throws org.xml.sax.SAXException
    procedure setEntityResolver(para1: OXSEntityResolver); overload;
    procedure setDTDHandler(para1: OXSDTDHandler); overload;
    procedure setDocumentHandler(para1: OXSDocumentHandler); overload;
    procedure setErrorHandler(para1: OXSErrorHandler); overload;
    procedure parse(para1: OXSInputSource); overload;  // throws org.xml.sax.SAXException, java.io.IOException
    procedure parse(para1: JLString); overload;  // throws org.xml.sax.SAXException, java.io.IOException
  end;

  OXSXMLReader = interface external 'org.xml.sax' name 'XMLReader' 
    function getFeature(para1: JLString): jboolean; overload;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    procedure setFeature(para1: JLString; para2: jboolean); overload;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    function getProperty(para1: JLString): JLObject; overload;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    procedure setProperty(para1: JLString; para2: JLObject); overload;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    procedure setEntityResolver(para1: OXSEntityResolver); overload;
    function getEntityResolver(): OXSEntityResolver; overload;
    procedure setDTDHandler(para1: OXSDTDHandler); overload;
    function getDTDHandler(): OXSDTDHandler; overload;
    procedure setContentHandler(para1: OXSContentHandler); overload;
    function getContentHandler(): OXSContentHandler; overload;
    procedure setErrorHandler(para1: OXSErrorHandler); overload;
    function getErrorHandler(): OXSErrorHandler; overload;
    procedure parse(para1: OXSInputSource); overload;  // throws java.io.IOException, org.xml.sax.SAXException
    procedure parse(para1: JLString); overload;  // throws java.io.IOException, org.xml.sax.SAXException
  end;

  OXSEDeclHandler = interface external 'org.xml.sax.ext' name 'DeclHandler' 
    procedure elementDecl(para1: JLString; para2: JLString); overload;  // throws org.xml.sax.SAXException
    procedure attributeDecl(para1: JLString; para2: JLString; para3: JLString; para4: JLString; para5: JLString); overload;  // throws org.xml.sax.SAXException
    procedure internalEntityDecl(para1: JLString; para2: JLString); overload;  // throws org.xml.sax.SAXException
    procedure externalEntityDecl(para1: JLString; para2: JLString; para3: JLString); overload;  // throws org.xml.sax.SAXException
  end;

  OXSELexicalHandler = interface external 'org.xml.sax.ext' name 'LexicalHandler' 
    procedure startDTD(para1: JLString; para2: JLString; para3: JLString); overload;  // throws org.xml.sax.SAXException
    procedure endDTD(); overload;  // throws org.xml.sax.SAXException
    procedure startEntity(para1: JLString); overload;  // throws org.xml.sax.SAXException
    procedure endEntity(para1: JLString); overload;  // throws org.xml.sax.SAXException
    procedure startCDATA(); overload;  // throws org.xml.sax.SAXException
    procedure endCDATA(); overload;  // throws org.xml.sax.SAXException
    procedure comment(para1: Arr1jchar; para2: jint; para3: jint); overload;  // throws org.xml.sax.SAXException
    procedure comment(var para1: array of jchar; para2: jint; para3: jint); overload;  // throws org.xml.sax.SAXException
  end;

  OXSHNamespaceSupport = class external 'org.xml.sax.helpers' name 'NamespaceSupport' (JLObject)
  public
    type
      InnerContext = class;
      Arr1InnerContext = array of InnerContext;
      Arr2InnerContext = array of Arr1InnerContext;
      Arr3InnerContext = array of Arr2InnerContext;
      InnerContext = class sealed external 'org.xml.sax.helpers' name 'Context' 
      end;

  public
    const
      XMLNS = 'http://www.w3.org/XML/1998/namespace';
      NSDECL = 'http://www.w3.org/xmlns/2000/';
  public
    constructor create(); overload;
    procedure reset(); overload; virtual;
    procedure pushContext(); overload; virtual;
    procedure popContext(); overload; virtual;
    function declarePrefix(para1: JLString; para2: JLString): jboolean; overload; virtual;
    function processName(para1: JLString; para2: Arr1JLString; para3: jboolean): Arr1JLString; overload; virtual;
    function processName(para1: JLString; var para2: array of JLString; para3: jboolean): Arr1JLString; overload; virtual;
    function getURI(para1: JLString): JLString; overload; virtual;
    function getPrefixes(): JUEnumeration; overload; virtual;
    function getPrefix(para1: JLString): JLString; overload; virtual;
    function getPrefixes(para1: JLString): JUEnumeration; overload; virtual;
    function getDeclaredPrefixes(): JUEnumeration; overload; virtual;
    procedure setNamespaceDeclUris(para1: jboolean); overload; virtual;
    function isNamespaceDeclUris(): jboolean; overload; virtual;
  end;

  OXSHNewInstance = class external 'org.xml.sax.helpers' name 'NewInstance' (JLObject)
  end;

  OXSHParserFactory = class external 'org.xml.sax.helpers' name 'ParserFactory' (JLObject)
  public
    class function makeParser(): OXSParser; static; overload;  // throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException, java.lang.NullPointerException, java.lang.ClassCastException
    class function makeParser(para1: JLString): OXSParser; static; overload;  // throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException, java.lang.ClassCastException
  end;

  OXSHXMLReaderFactory = class sealed external 'org.xml.sax.helpers' name 'XMLReaderFactory' (JLObject)
  public
    class function createXMLReader(): OXSXMLReader; static; overload;  // throws org.xml.sax.SAXException
    class function createXMLReader(para1: JLString): OXSXMLReader; static; overload;  // throws org.xml.sax.SAXException
  end;

  JAAWTError = class external 'java.awt' name 'AWTError' (JLError)
  public
    constructor create(para1: JLString); overload;
  end;

  JIIOError = class external 'java.io' name 'IOError' (JLError)
  public
    constructor create(para1: JLThrowable); overload;
  end;

  JLThreadDeath = class external 'java.lang' name 'ThreadDeath' (JLError)
  public
    constructor create(); overload;
  end;

  JLVirtualMachineError = class abstract external 'java.lang' name 'VirtualMachineError' (JLError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLAAnnotationFormatError = class external 'java.lang.annotation' name 'AnnotationFormatError' (JLError)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JUServiceConfigurationError = class external 'java.util' name 'ServiceConfigurationError' (JLError)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
  end;

  JSTStateInvariantError = class external 'javax.swing.text' name 'StateInvariantError' (JLError)
  public
    constructor create(para1: JLString); overload;
  end;

  JXPFactoryConfigurationError = class external 'javax.xml.parsers' name 'FactoryConfigurationError' (JLError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLException); overload;
    constructor create(para1: JLException; para2: JLString); overload;
    function getMessage(): JLString; overload; virtual;
    function getException(): JLException; overload; virtual;
  end;

  JXSFactoryConfigurationError = class external 'javax.xml.stream' name 'FactoryConfigurationError' (JLError)
  public
    constructor create(); overload;
    constructor create(para1: JLException); overload;
    constructor create(para1: JLException; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLException); overload;
    constructor create(para1: JLString); overload;
    function getException(): JLException; overload; virtual;
    function getMessage(): JLString; overload; virtual;
  end;

  JXTTransformerFactoryConfigurationError = class external 'javax.xml.transform' name 'TransformerFactoryConfigurationError' (JLError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLException); overload;
    constructor create(para1: JLException; para2: JLString); overload;
    function getMessage(): JLString; overload; virtual;
    function getException(): JLException; overload; virtual;
  end;

  JAAWTException = class external 'java.awt' name 'AWTException' (JLException)
  public
    constructor create(para1: JLString); overload;
  end;

  JAFontFormatException = class external 'java.awt' name 'FontFormatException' (JLException)
  public
    constructor create(para1: JLString); overload;
  end;

  JADMimeTypeParseException = class external 'java.awt.datatransfer' name 'MimeTypeParseException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JADUnsupportedFlavorException = class external 'java.awt.datatransfer' name 'UnsupportedFlavorException' (JLException)
  public
    constructor create(para1: JADDataFlavor); overload;
  end;

  JAGNoninvertibleTransformException = class external 'java.awt.geom' name 'NoninvertibleTransformException' (JLException)
  public
    constructor create(para1: JLString); overload;
  end;

  JAPPrinterException = class external 'java.awt.print' name 'PrinterException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JBIntrospectionException = class external 'java.beans' name 'IntrospectionException' (JLException)
  public
    constructor create(para1: JLString); overload;
  end;

  JBPropertyVetoException = class external 'java.beans' name 'PropertyVetoException' (JLException)
  public
    constructor create(para1: JLString; para2: JBPropertyChangeEvent); overload;
    function getPropertyChangeEvent(): JBPropertyChangeEvent; overload; virtual;
  end;

  JLClassNotFoundException = class external 'java.lang' name 'ClassNotFoundException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    function getException(): JLThrowable; overload; virtual;
    function getCause(): JLThrowable; overload; virtual;
  end;

  JLCloneNotSupportedException = class external 'java.lang' name 'CloneNotSupportedException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLIllegalAccessException = class external 'java.lang' name 'IllegalAccessException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLInstantiationException = class external 'java.lang' name 'InstantiationException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLInterruptedException = class external 'java.lang' name 'InterruptedException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLNoSuchFieldException = class external 'java.lang' name 'NoSuchFieldException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLNoSuchMethodException = class external 'java.lang' name 'NoSuchMethodException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLIIllegalClassFormatException = class external 'java.lang.instrument' name 'IllegalClassFormatException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLIUnmodifiableClassException = class external 'java.lang.instrument' name 'UnmodifiableClassException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JNURISyntaxException = class external 'java.net' name 'URISyntaxException' (JLException)
  public
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    function getInput(): JLString; overload; virtual;
    function getReason(): JLString; overload; virtual;
    function getIndex(): jint; overload; virtual;
    function getMessage(): JLString; overload; virtual;
  end;

  JRAlreadyBoundException = class external 'java.rmi' name 'AlreadyBoundException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JRNotBoundException = class external 'java.rmi' name 'NotBoundException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JRAActivationException = class external 'java.rmi.activation' name 'ActivationException' (JLException)
  public
    var
      fdetail: JLThrowable; external name 'detail';
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    function getMessage(): JLString; overload; virtual;
    function getCause(): JLThrowable; overload; virtual;
  end;

  JRSServerNotActiveException = class external 'java.rmi.server' name 'ServerNotActiveException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JSGeneralSecurityException = class external 'java.security' name 'GeneralSecurityException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JSPrivilegedActionException = class external 'java.security' name 'PrivilegedActionException' (JLException)
  public
    constructor create(para1: JLException); overload;
    function getException(): JLException; overload; virtual;
    function getCause(): JLThrowable; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSAAclNotFoundException = class external 'java.security.acl' name 'AclNotFoundException' (JLException)
  public
    constructor create(); overload;
  end;

  JSALastOwnerException = class external 'java.security.acl' name 'LastOwnerException' (JLException)
  public
    constructor create(); overload;
  end;

  JSANotOwnerException = class external 'java.security.acl' name 'NotOwnerException' (JLException)
  public
    constructor create(); overload;
  end;

  JTParseException = class external 'java.text' name 'ParseException' (JLException)
  public
    constructor create(para1: JLString; para2: jint); overload;
    function getErrorOffset(): jint; overload; virtual;
  end;

  JUTooManyListenersException = class external 'java.util' name 'TooManyListenersException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JUCBrokenBarrierException = class external 'java.util.concurrent' name 'BrokenBarrierException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JUCExecutionException = class external 'java.util.concurrent' name 'ExecutionException' (JLException)
  strict protected
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  public
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JUCTimeoutException = class external 'java.util.concurrent' name 'TimeoutException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JUPBackingStoreException = class external 'java.util.prefs' name 'BackingStoreException' (JLException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JUPInvalidPreferencesFormatException = class external 'java.util.prefs' name 'InvalidPreferencesFormatException' (JLException)
  public
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
  end;

  JUZDataFormatException = class external 'java.util.zip' name 'DataFormatException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JAMimeTypeParseException = class external 'javax.activation' name 'MimeTypeParseException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JMBadAttributeValueExpException = class external 'javax.management' name 'BadAttributeValueExpException' (JLException)
  public
    constructor create(para1: JLObject); overload;
    function toString(): JLString; overload; virtual;
  end;

  JMBadBinaryOpValueExpException = class external 'javax.management' name 'BadBinaryOpValueExpException' (JLException)
  public
    constructor create(para1: JMValueExp); overload;
    function getExp(): JMValueExp; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JMBadStringOperationException = class external 'javax.management' name 'BadStringOperationException' (JLException)
  public
    constructor create(para1: JLString); overload;
    function toString(): JLString; overload; virtual;
  end;

  JMInvalidApplicationException = class external 'javax.management' name 'InvalidApplicationException' (JLException)
  public
    constructor create(para1: JLObject); overload;
  end;

  JMJMException = class external 'javax.management' name 'JMException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JMMInvalidTargetObjectTypeException = class external 'javax.management.modelmbean' name 'InvalidTargetObjectTypeException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLException; para2: JLString); overload;
  end;

  JMMXMLParseException = class external 'javax.management.modelmbean' name 'XMLParseException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLException; para2: JLString); overload;
  end;

  JNNamingException = class external 'javax.naming' name 'NamingException' (JLException)
  strict protected
    var
      fresolvedName: JNName; external name 'resolvedName';
      fresolvedObj: JLObject; external name 'resolvedObj';
      fremainingName: JNName; external name 'remainingName';
      frootException: JLThrowable; external name 'rootException';
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
    function getResolvedName(): JNName; overload; virtual;
    function getRemainingName(): JNName; overload; virtual;
    function getResolvedObj(): JLObject; overload; virtual;
    function getExplanation(): JLString; overload; virtual;
    procedure setResolvedName(para1: JNName); overload; virtual;
    procedure setRemainingName(para1: JNName); overload; virtual;
    procedure setResolvedObj(para1: JLObject); overload; virtual;
    procedure appendRemainingComponent(para1: JLString); overload; virtual;
    procedure appendRemainingName(para1: JNName); overload; virtual;
    function getRootCause(): JLThrowable; overload; virtual;
    procedure setRootCause(para1: JLThrowable); overload; virtual;
    function getCause(): JLThrowable; overload; virtual;
    function initCause(para1: JLThrowable): JLThrowable; overload; virtual;
    function toString(): JLString; overload; virtual;
    function toString(para1: jboolean): JLString; overload; virtual;
  end;

  JPPrintException = class external 'javax.print' name 'PrintException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLException); overload;
    constructor create(para1: JLString; para2: JLException); overload;
  end;

  JSScriptException = class external 'javax.script' name 'ScriptException' (JLException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLException); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: jint); overload;
    function getMessage(): JLString; overload; virtual;
    function getLineNumber(): jint; overload; virtual;
    function getColumnNumber(): jint; overload; virtual;
    function getFileName(): JLString; overload; virtual;
  end;

  JSADestroyFailedException = class external 'javax.security.auth' name 'DestroyFailedException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JSARefreshFailedException = class external 'javax.security.auth' name 'RefreshFailedException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JSACUnsupportedCallbackException = class external 'javax.security.auth.callback' name 'UnsupportedCallbackException' (JLException)
  public
    constructor create(para1: JSACCallback); overload;
    constructor create(para1: JSACCallback; para2: JLString); overload;
    function getCallback(): JSACCallback; overload; virtual;
  end;

  JxSCCertificateException = class external 'javax.security.cert' name 'CertificateException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JSCardException = class external 'javax.smartcardio' name 'CardException' (JLException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
  end;

  JSMInvalidMidiDataException = class external 'javax.sound.midi' name 'InvalidMidiDataException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JSMMidiUnavailableException = class external 'javax.sound.midi' name 'MidiUnavailableException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JSSLineUnavailableException = class external 'javax.sound.sampled' name 'LineUnavailableException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JSSUnsupportedAudioFileException = class external 'javax.sound.sampled' name 'UnsupportedAudioFileException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JSUnsupportedLookAndFeelException = class external 'javax.swing' name 'UnsupportedLookAndFeelException' (JLException)
  public
    constructor create(para1: JLString); overload;
  end;

  JSTBadLocationException = class external 'javax.swing.text' name 'BadLocationException' (JLException)
  public
    constructor create(para1: JLString; para2: jint); overload;
    function offsetRequested(): jint; overload; virtual;
  end;

  JSTExpandVetoException = class external 'javax.swing.tree' name 'ExpandVetoException' (JLException)
  strict protected
    var
      fevent: JSETreeExpansionEvent; external name 'event';
  public
    constructor create(para1: JSETreeExpansionEvent); overload;
    constructor create(para1: JSETreeExpansionEvent; para2: JLString); overload;
  end;

  JTXXAException = class external 'javax.transaction.xa' name 'XAException' (JLException)
  public
    var
      ferrorCode: jint; external name 'errorCode';
  public
    const
      XA_RBBASE = 100;
      XA_RBROLLBACK = 100;
      XA_RBCOMMFAIL = 101;
      XA_RBDEADLOCK = 102;
      XA_RBINTEGRITY = 103;
      XA_RBOTHER = 104;
      XA_RBPROTO = 105;
      XA_RBTIMEOUT = 106;
      XA_RBTRANSIENT = 107;
      XA_RBEND = 107;
      XA_NOMIGRATE = 9;
      XA_HEURHAZ = 8;
      XA_HEURCOM = 7;
      XA_HEURRB = 6;
      XA_HEURMIX = 5;
      XA_RETRY = 4;
      XA_RDONLY = 3;
      XAER_ASYNC = -2;
      XAER_RMERR = -3;
      XAER_NOTA = -4;
      XAER_INVAL = -5;
      XAER_PROTO = -6;
      XAER_RMFAIL = -7;
      XAER_DUPID = -8;
      XAER_OUTSIDE = -9;
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint); overload;
  end;

  JXBJAXBException = class external 'javax.xml.bind' name 'JAXBException' (JLException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
    function getErrorCode(): JLString; overload; virtual;
    function getLinkedException(): JLThrowable; overload; virtual;
    procedure setLinkedException(para1: JLThrowable); overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure printStackTrace(para1: JIPrintStream); overload; virtual;
    procedure printStackTrace(); overload; virtual;
    procedure printStackTrace(para1: JIPrintWriter); overload; virtual;
    function getCause(): JLThrowable; overload; virtual;
  end;

  JXCKeySelectorException = class external 'javax.xml.crypto' name 'KeySelectorException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
    function getCause(): JLThrowable; overload; virtual;
    procedure printStackTrace(); overload; virtual;
    procedure printStackTrace(para1: JIPrintStream); overload; virtual;
    procedure printStackTrace(para1: JIPrintWriter); overload; virtual;
  end;

  JXCMarshalException = class external 'javax.xml.crypto' name 'MarshalException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
    function getCause(): JLThrowable; overload; virtual;
    procedure printStackTrace(); overload; virtual;
    procedure printStackTrace(para1: JIPrintStream); overload; virtual;
    procedure printStackTrace(para1: JIPrintWriter); overload; virtual;
  end;

  JXCURIReferenceException = class external 'javax.xml.crypto' name 'URIReferenceException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable; para3: JXCURIReference); overload;
    constructor create(para1: JLThrowable); overload;
    function getURIReference(): JXCURIReference; overload; virtual;
    function getCause(): JLThrowable; overload; virtual;
    procedure printStackTrace(); overload; virtual;
    procedure printStackTrace(para1: JIPrintStream); overload; virtual;
    procedure printStackTrace(para1: JIPrintWriter); overload; virtual;
  end;

  JXCDTransformException = class external 'javax.xml.crypto.dsig' name 'TransformException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
    function getCause(): JLThrowable; overload; virtual;
    procedure printStackTrace(); overload; virtual;
    procedure printStackTrace(para1: JIPrintStream); overload; virtual;
    procedure printStackTrace(para1: JIPrintWriter); overload; virtual;
  end;

  JXCDXMLSignatureException = class external 'javax.xml.crypto.dsig' name 'XMLSignatureException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
    function getCause(): JLThrowable; overload; virtual;
    procedure printStackTrace(); overload; virtual;
    procedure printStackTrace(para1: JIPrintStream); overload; virtual;
    procedure printStackTrace(para1: JIPrintWriter); overload; virtual;
  end;

  JXDDatatypeConfigurationException = class external 'javax.xml.datatype' name 'DatatypeConfigurationException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JXPParserConfigurationException = class external 'javax.xml.parsers' name 'ParserConfigurationException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JXSSOAPException = class external 'javax.xml.soap' name 'SOAPException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
    function getMessage(): JLString; overload; virtual;
    function getCause(): JLThrowable; overload; virtual;
    function initCause(para1: JLThrowable): JLThrowable; overload; virtual;
  end;

  JXSXMLStreamException = class external 'javax.xml.stream' name 'XMLStreamException' (JLException)
  strict protected
    var
      fnested: JLThrowable; external name 'nested';
      flocation: JXSLocation; external name 'location';
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JXSLocation; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JXSLocation); overload;
    function getNestedException(): JLThrowable; overload; virtual;
    function getLocation(): JXSLocation; overload; virtual;
  end;

  JXTTransformerException = class external 'javax.xml.transform' name 'TransformerException' (JLException)
  public
    function getLocator(): JXTSourceLocator; overload; virtual;
    procedure setLocator(para1: JXTSourceLocator); overload; virtual;
    function getException(): JLThrowable; overload; virtual;
    function getCause(): JLThrowable; overload; virtual;
    function initCause(para1: JLThrowable): JLThrowable; overload; virtual;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JXTSourceLocator); overload;
    constructor create(para1: JLString; para2: JXTSourceLocator; para3: JLThrowable); overload;
    function getMessageAndLocation(): JLString; overload; virtual;
    function getLocationAsString(): JLString; overload; virtual;
    procedure printStackTrace(); overload; virtual;
    procedure printStackTrace(para1: JIPrintStream); overload; virtual;
    procedure printStackTrace(para1: JIPrintWriter); overload; virtual;
  end;

  JXXXPathException = class external 'javax.xml.xpath' name 'XPathException' (JLException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLThrowable); overload;
    function getCause(): JLThrowable; overload; virtual;
    procedure printStackTrace(para1: JIPrintStream); overload; virtual;
    procedure printStackTrace(); overload; virtual;
    procedure printStackTrace(para1: JIPrintWriter); overload; virtual;
  end;

  OIJGSSException = class external 'org.ietf.jgss' name 'GSSException' (JLException)
  public
    const
      BAD_BINDINGS = 1;
      BAD_MECH = 2;
      BAD_NAME = 3;
      BAD_NAMETYPE = 4;
      BAD_STATUS = 5;
      BAD_MIC = 6;
      CONTEXT_EXPIRED = 7;
      CREDENTIALS_EXPIRED = 8;
      DEFECTIVE_CREDENTIAL = 9;
      DEFECTIVE_TOKEN = 10;
      FAILURE = 11;
      NO_CONTEXT = 12;
      NO_CRED = 13;
      BAD_QOP = 14;
      UNAUTHORIZED = 15;
      UNAVAILABLE = 16;
      DUPLICATE_ELEMENT = 17;
      NAME_NOT_MN = 18;
      DUPLICATE_TOKEN = 19;
      OLD_TOKEN = 20;
      UNSEQ_TOKEN = 21;
      GAP_TOKEN = 22;
  public
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jint; para3: JLString); overload;
    function getMajor(): jint; overload; virtual;
    function getMinor(): jint; overload; virtual;
    function getMajorString(): JLString; overload; virtual;
    function getMinorString(): JLString; overload; virtual;
    procedure setMinor(para1: jint; para2: JLString); overload; virtual;
    function toString(): JLString; overload; virtual;
    function getMessage(): JLString; overload; virtual;
  end;

  OOCPApplicationException = class external 'org.omg.CORBA.portable' name 'ApplicationException' (JLException)
  public
    constructor create(para1: JLString; para2: OOCPInputStream); overload;
    function getId(): JLString; overload; virtual;
    function getInputStream(): OOCPInputStream; overload; virtual;
  end;

  OOCPRemarshalException = class sealed external 'org.omg.CORBA.portable' name 'RemarshalException' (JLException)
  public
    constructor create(); overload;
  end;

  OXSSAXException = class external 'org.xml.sax' name 'SAXException' (JLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLException); overload;
    constructor create(para1: JLString; para2: JLException); overload;
    function getMessage(): JLString; overload; virtual;
    function getException(): JLException; overload; virtual;
    function getCause(): JLThrowable; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JAAWTKeyStroke = class external 'java.awt' name 'AWTKeyStroke' (JLObject, JISerializable)
  strict protected
    constructor create(); overload;
    constructor create(para1: jchar; para2: jint; para3: jint; para4: jboolean); overload;
    class procedure registerSubclass(para1: JLClass); static; overload;
  public
    class function getAWTKeyStroke(para1: jchar): JAAWTKeyStroke; static; overload;
    class function getAWTKeyStroke(para1: JLCharacter; para2: jint): JAAWTKeyStroke; static; overload;
    class function getAWTKeyStroke(para1: jint; para2: jint; para3: jboolean): JAAWTKeyStroke; static; overload;
    class function getAWTKeyStroke(para1: jint; para2: jint): JAAWTKeyStroke; static; overload;
    class function getAWTKeyStrokeForEvent(para1: JAEKeyEvent): JAAWTKeyStroke; static; overload;
    class function getAWTKeyStroke(para1: JLString): JAAWTKeyStroke; static; overload;
    function getKeyChar(): jchar; overload; virtual; final;
    function getKeyCode(): jint; overload; virtual; final;
    function getModifiers(): jint; overload; virtual; final;
    function isOnKeyRelease(): jboolean; overload; virtual; final;
    function getKeyEventType(): jint; overload; virtual; final;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual; final;
    function toString(): JLString; overload; virtual;
  strict protected
    function readResolve(): JLObject; overload; virtual;  // throws java.io.ObjectStreamException
  end;

  JACheckboxGroup = class external 'java.awt' name 'CheckboxGroup' (JLObject, JISerializable)
  public
    constructor create(); overload;
    function getSelectedCheckbox(): JACheckbox; overload; virtual;
    function getCurrent(): JACheckbox; overload; virtual;
    procedure setSelectedCheckbox(para1: JACheckbox); overload; virtual;
    procedure setCurrent(para1: JACheckbox); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JAComponentOrientation = class sealed external 'java.awt' name 'ComponentOrientation' (JLObject, JISerializable)
  public
    final class var
      fLEFT_TO_RIGHT: JAComponentOrientation; external name 'LEFT_TO_RIGHT';
      fRIGHT_TO_LEFT: JAComponentOrientation; external name 'RIGHT_TO_LEFT';
      fUNKNOWN: JAComponentOrientation; external name 'UNKNOWN';
  public
    function isHorizontal(): jboolean; overload; virtual;
    function isLeftToRight(): jboolean; overload; virtual;
    class function getOrientation(para1: JULocale): JAComponentOrientation; static; overload;
    class function getOrientation(para1: JUResourceBundle): JAComponentOrientation; static; overload;
  end;

  JACursor = class external 'java.awt' name 'Cursor' (JLObject, JISerializable)
  public
    type
      InnerCursorDisposer = class;
      Arr1InnerCursorDisposer = array of InnerCursorDisposer;
      Arr2InnerCursorDisposer = array of Arr1InnerCursorDisposer;
      Arr3InnerCursorDisposer = array of Arr2InnerCursorDisposer;
      InnerCursorDisposer = class external 'java.awt' name 'CursorDisposer' 
      end;

  public
    const
      DEFAULT_CURSOR = 0;
      CROSSHAIR_CURSOR = 1;
      TEXT_CURSOR = 2;
      WAIT_CURSOR = 3;
      SW_RESIZE_CURSOR = 4;
      SE_RESIZE_CURSOR = 5;
      NW_RESIZE_CURSOR = 6;
      NE_RESIZE_CURSOR = 7;
      N_RESIZE_CURSOR = 8;
      S_RESIZE_CURSOR = 9;
      W_RESIZE_CURSOR = 10;
      E_RESIZE_CURSOR = 11;
      HAND_CURSOR = 12;
      MOVE_CURSOR = 13;
  strict protected
    class var
      fpredefined: Arr1JACursor; external name 'predefined';
  public
    const
      CUSTOM_CURSOR = -1;
  strict protected
    var
      fname: JLString; external name 'name';
  public
    class function getPredefinedCursor(para1: jint): JACursor; static; overload;
    class function getSystemCustomCursor(para1: JLString): JACursor; static; overload;  // throws java.awt.AWTException, java.awt.HeadlessException
    class function getDefaultCursor(): JACursor; static; overload;
    constructor create(para1: jint); overload;
  strict protected
    constructor create(para1: JLString); overload;
  public
    function getType(): jint; overload; virtual;
    function getName(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JAEvent = class external 'java.awt' name 'Event' (JLObject, JISerializable)
  public
    const
      SHIFT_MASK = 1;
      CTRL_MASK = 2;
      META_MASK = 4;
      ALT_MASK = 8;
      HOME = 1000;
      &END = 1001;
      PGUP = 1002;
      PGDN = 1003;
      UP = 1004;
      DOWN = 1005;
      LEFT = 1006;
      RIGHT = 1007;
      F1 = 1008;
      F2 = 1009;
      F3 = 1010;
      F4 = 1011;
      F5 = 1012;
      F6 = 1013;
      F7 = 1014;
      F8 = 1015;
      F9 = 1016;
      F10 = 1017;
      F11 = 1018;
      F12 = 1019;
      PRINT_SCREEN = 1020;
      SCROLL_LOCK = 1021;
      CAPS_LOCK = 1022;
      NUM_LOCK = 1023;
      PAUSE = 1024;
      INSERT = 1025;
      ENTER = 10;
      BACK_SPACE = 8;
      TAB = 9;
      ESCAPE = 27;
      DELETE = 127;
      WINDOW_DESTROY = 201;
      WINDOW_EXPOSE = 202;
      WINDOW_ICONIFY = 203;
      WINDOW_DEICONIFY = 204;
      WINDOW_MOVED = 205;
      KEY_PRESS = 401;
      KEY_RELEASE = 402;
      KEY_ACTION = 403;
      KEY_ACTION_RELEASE = 404;
      MOUSE_DOWN = 501;
      MOUSE_UP = 502;
      MOUSE_MOVE = 503;
      MOUSE_ENTER = 504;
      MOUSE_EXIT = 505;
      MOUSE_DRAG = 506;
      SCROLL_LINE_UP = 601;
      SCROLL_LINE_DOWN = 602;
      SCROLL_PAGE_UP = 603;
      SCROLL_PAGE_DOWN = 604;
      SCROLL_ABSOLUTE = 605;
      SCROLL_BEGIN = 606;
      SCROLL_END = 607;
      LIST_SELECT = 701;
      LIST_DESELECT = 702;
      ACTION_EVENT = 1001;
      LOAD_FILE = 1002;
      SAVE_FILE = 1003;
      GOT_FOCUS = 1004;
      LOST_FOCUS = 1005;
  public
    var
      ftarget: JLObject; external name 'target';
      fwhen: jlong; external name 'when';
      fid: jint; external name 'id';
      fx: jint; external name 'x';
      fy: jint; external name 'y';
      fkey: jint; external name 'key';
      fmodifiers: jint; external name 'modifiers';
      fclickCount: jint; external name 'clickCount';
      farg: JLObject; external name 'arg';
      fevt: JAEvent; external name 'evt';
  public
    constructor create(para1: JLObject; para2: jlong; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: JLObject); overload;
    constructor create(para1: JLObject; para2: jlong; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload;
    constructor create(para1: JLObject; para2: jint; para3: JLObject); overload;
    procedure translate(para1: jint; para2: jint); overload; virtual;
    function shiftDown(): jboolean; overload; virtual;
    function controlDown(): jboolean; overload; virtual;
    function metaDown(): jboolean; overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function toString(): JLString; overload; virtual;
  end;

  JAFocusManager = class external 'java.awt' name 'FocusManager' (JLObject, JISerializable)
  end;

  JAFontMetrics = class abstract external 'java.awt' name 'FontMetrics' (JLObject, JISerializable)
  strict protected
    var
      ffont: JAFont; external name 'font';
  strict protected
    constructor create(para1: JAFont); overload;
  public
    function getFont(): JAFont; overload; virtual;
    function getFontRenderContext(): JAFFontRenderContext; overload; virtual;
    function getLeading(): jint; overload; virtual;
    function getAscent(): jint; overload; virtual;
    function getDescent(): jint; overload; virtual;
    function getHeight(): jint; overload; virtual;
    function getMaxAscent(): jint; overload; virtual;
    function getMaxDescent(): jint; overload; virtual;
    function getMaxDecent(): jint; overload; virtual;
    function getMaxAdvance(): jint; overload; virtual;
    function charWidth(para1: jint): jint; overload; virtual;
    function charWidth(para1: jchar): jint; overload; virtual;
    function stringWidth(para1: JLString): jint; overload; virtual;
    function charsWidth(para1: Arr1jchar; para2: jint; para3: jint): jint; overload; virtual;
    function charsWidth(var para1: array of jchar; para2: jint; para3: jint): jint; overload; virtual;
    function bytesWidth(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;
    function bytesWidth(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;
    function getWidths(): Arr1jint; overload; virtual;
    function hasUniformLineMetrics(): jboolean; overload; virtual;
    function getLineMetrics(para1: JLString; para2: JAGraphics): JAFLineMetrics; overload; virtual;
    function getLineMetrics(para1: JLString; para2: jint; para3: jint; para4: JAGraphics): JAFLineMetrics; overload; virtual;
    function getLineMetrics(para1: Arr1jchar; para2: jint; para3: jint; para4: JAGraphics): JAFLineMetrics; overload; virtual;
    function getLineMetrics(var para1: array of jchar; para2: jint; para3: jint; para4: JAGraphics): JAFLineMetrics; overload; virtual;
    function getLineMetrics(para1: JTCharacterIterator; para2: jint; para3: jint; para4: JAGraphics): JAFLineMetrics; overload; virtual;
    function getStringBounds(para1: JLString; para2: JAGraphics): JAGRectangle2D; overload; virtual;
    function getStringBounds(para1: JLString; para2: jint; para3: jint; para4: JAGraphics): JAGRectangle2D; overload; virtual;
    function getStringBounds(para1: Arr1jchar; para2: jint; para3: jint; para4: JAGraphics): JAGRectangle2D; overload; virtual;
    function getStringBounds(var para1: array of jchar; para2: jint; para3: jint; para4: JAGraphics): JAGRectangle2D; overload; virtual;
    function getStringBounds(para1: JTCharacterIterator; para2: jint; para3: jint; para4: JAGraphics): JAGRectangle2D; overload; virtual;
    function getMaxCharBounds(para1: JAGraphics): JAGRectangle2D; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JAGraphicsConfigTemplate = class abstract external 'java.awt' name 'GraphicsConfigTemplate' (JLObject, JISerializable)
  public
    const
      REQUIRED = 1;
      PREFERRED = 2;
      UNNECESSARY = 3;
  public
    constructor create(); overload;
    function getBestConfiguration(para1: Arr1JAGraphicsConfiguration): JAGraphicsConfiguration; overload; virtual; abstract;
    function getBestConfiguration(var para1: array of JAGraphicsConfiguration): JAGraphicsConfiguration; overload; virtual; abstract;
    function isGraphicsConfigSupported(para1: JAGraphicsConfiguration): jboolean; overload; virtual; abstract;
  end;

  JAGridBagLayoutInfo = class external 'java.awt' name 'GridBagLayoutInfo' (JLObject, JISerializable)
  end;

  JAMediaTracker = class external 'java.awt' name 'MediaTracker' (JLObject, JISerializable)
  public
    const
      LOADING = 1;
      ABORTED = 2;
      ERRORED = 4;
      COMPLETE = 8;
  public
    constructor create(para1: JAComponent); overload;
    procedure addImage(para1: JAImage; para2: jint); overload; virtual;
    procedure addImage(para1: JAImage; para2: jint; para3: jint; para4: jint); overload; virtual;
    function checkAll(): jboolean; overload; virtual;
    function checkAll(para1: jboolean): jboolean; overload; virtual;
    function isErrorAny(): jboolean; overload; virtual;
    function getErrorsAny(): Arr1JLObject; overload; virtual;
    procedure waitForAll(); overload; virtual;  // throws java.lang.InterruptedException
    function waitForAll(para1: jlong): jboolean; overload; virtual;  // throws java.lang.InterruptedException
    function statusAll(para1: jboolean): jint; overload; virtual;
    function checkID(para1: jint): jboolean; overload; virtual;
    function checkID(para1: jint; para2: jboolean): jboolean; overload; virtual;
    function isErrorID(para1: jint): jboolean; overload; virtual;
    function getErrorsID(para1: jint): Arr1JLObject; overload; virtual;
    procedure waitForID(para1: jint); overload; virtual;  // throws java.lang.InterruptedException
    function waitForID(para1: jint; para2: jlong): jboolean; overload; virtual;  // throws java.lang.InterruptedException
    function statusID(para1: jint; para2: jboolean): jint; overload; virtual;
    procedure removeImage(para1: JAImage); overload; virtual;
    procedure removeImage(para1: JAImage; para2: jint); overload; virtual;
    procedure removeImage(para1: JAImage; para2: jint; para3: jint; para4: jint); overload; virtual;
  end;

  JAMenuComponent = class abstract external 'java.awt' name 'MenuComponent' (JLObject, JISerializable)
  public
    type
      InnerAccessibleAWTMenuComponent = class;
      Arr1InnerAccessibleAWTMenuComponent = array of InnerAccessibleAWTMenuComponent;
      Arr2InnerAccessibleAWTMenuComponent = array of Arr1InnerAccessibleAWTMenuComponent;
      Arr3InnerAccessibleAWTMenuComponent = array of Arr2InnerAccessibleAWTMenuComponent;
      InnerAccessibleAWTMenuComponent = class abstract external 'java.awt' name 'AccessibleAWTMenuComponent' 
      end;

  public
    constructor create(); overload;  // throws java.awt.HeadlessException
    function getName(): JLString; overload; virtual;
    procedure setName(para1: JLString); overload; virtual;
    function getParent(): JAMenuContainer; overload; virtual;
    function getPeer(): JAPMenuComponentPeer; overload; virtual;
    function getFont(): JAFont; overload; virtual;
    procedure setFont(para1: JAFont); overload; virtual;
    procedure removeNotify(); overload; virtual;
    function postEvent(para1: JAEvent): jboolean; overload; virtual;
    procedure dispatchEvent(para1: JAAWTEvent); overload; virtual; final;
  strict protected
    procedure processEvent(para1: JAAWTEvent); overload; virtual;
    function paramString(): JLString; overload; virtual;
  public
    function toString(): JLString; overload; virtual;
  strict protected
    function getTreeLock(): JLObject; overload; virtual; final;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JAMenuShortcut = class external 'java.awt' name 'MenuShortcut' (JLObject, JISerializable)
  public
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jboolean); overload;
    function getKey(): jint; overload; virtual;
    function usesShiftModifier(): jboolean; overload; virtual;
    function equals(para1: JAMenuShortcut): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  end;

  JACColorSpace = class abstract external 'java.awt.color' name 'ColorSpace' (JLObject, JISerializable)
  public
    const
      TYPE_XYZ = 0;
      TYPE_Lab = 1;
      TYPE_Luv = 2;
      TYPE_YCbCr = 3;
      TYPE_Yxy = 4;
      TYPE_RGB = 5;
      TYPE_GRAY = 6;
      TYPE_HSV = 7;
      TYPE_HLS = 8;
      TYPE_CMYK = 9;
      TYPE_CMY = 11;
      TYPE_2CLR = 12;
      TYPE_3CLR = 13;
      TYPE_4CLR = 14;
      TYPE_5CLR = 15;
      TYPE_6CLR = 16;
      TYPE_7CLR = 17;
      TYPE_8CLR = 18;
      TYPE_9CLR = 19;
      TYPE_ACLR = 20;
      TYPE_BCLR = 21;
      TYPE_CCLR = 22;
      TYPE_DCLR = 23;
      TYPE_ECLR = 24;
      TYPE_FCLR = 25;
      CS_sRGB = 1000;
      CS_LINEAR_RGB = 1004;
      CS_CIEXYZ = 1001;
      CS_PYCC = 1002;
      CS_GRAY = 1003;
  strict protected
    constructor create(para1: jint; para2: jint); overload;
  public
    class function getInstance(para1: jint): JACColorSpace; static; overload;
    function isCS_sRGB(): jboolean; overload; virtual;
    function toRGB(para1: Arr1jfloat): Arr1jfloat; overload; virtual; abstract;
    function toRGB(var para1: array of jfloat): Arr1jfloat; overload; virtual; abstract;
    function fromRGB(para1: Arr1jfloat): Arr1jfloat; overload; virtual; abstract;
    function fromRGB(var para1: array of jfloat): Arr1jfloat; overload; virtual; abstract;
    function toCIEXYZ(para1: Arr1jfloat): Arr1jfloat; overload; virtual; abstract;
    function toCIEXYZ(var para1: array of jfloat): Arr1jfloat; overload; virtual; abstract;
    function fromCIEXYZ(para1: Arr1jfloat): Arr1jfloat; overload; virtual; abstract;
    function fromCIEXYZ(var para1: array of jfloat): Arr1jfloat; overload; virtual; abstract;
    function getType(): jint; overload; virtual;
    function getNumComponents(): jint; overload; virtual;
    function getName(para1: jint): JLString; overload; virtual;
    function getMinValue(para1: jint): jfloat; overload; virtual;
    function getMaxValue(para1: jint): jfloat; overload; virtual;
  end;

  JACICC_Profile = class external 'java.awt.color' name 'ICC_Profile' (JLObject, JISerializable)
  public
    const
      CLASS_INPUT = 0;
      CLASS_DISPLAY = 1;
      CLASS_OUTPUT = 2;
      CLASS_DEVICELINK = 3;
      CLASS_COLORSPACECONVERSION = 4;
      CLASS_ABSTRACT = 5;
      CLASS_NAMEDCOLOR = 6;
      icSigXYZData = 1482250784;
      icSigLabData = 1281450528;
      icSigLuvData = 1282766368;
      icSigYCbCrData = 1497588338;
      icSigYxyData = 1501067552;
      icSigRgbData = 1380401696;
      icSigGrayData = 1196573017;
      icSigHsvData = 1213421088;
      icSigHlsData = 1212961568;
      icSigCmykData = 1129142603;
      icSigCmyData = 1129142560;
      icSigSpace2CLR = 843271250;
      icSigSpace3CLR = 860048466;
      icSigSpace4CLR = 876825682;
      icSigSpace5CLR = 893602898;
      icSigSpace6CLR = 910380114;
      icSigSpace7CLR = 927157330;
      icSigSpace8CLR = 943934546;
      icSigSpace9CLR = 960711762;
      icSigSpaceACLR = 1094929490;
      icSigSpaceBCLR = 1111706706;
      icSigSpaceCCLR = 1128483922;
      icSigSpaceDCLR = 1145261138;
      icSigSpaceECLR = 1162038354;
      icSigSpaceFCLR = 1178815570;
      icSigInputClass = 1935896178;
      icSigDisplayClass = 1835955314;
      icSigOutputClass = 1886549106;
      icSigLinkClass = 1818848875;
      icSigAbstractClass = 1633842036;
      icSigColorSpaceClass = 1936744803;
      icSigNamedColorClass = 1852662636;
      icPerceptual = 0;
      icRelativeColorimetric = 1;
      icMediaRelativeColorimetric = 1;
      icSaturation = 2;
      icAbsoluteColorimetric = 3;
      icICCAbsoluteColorimetric = 3;
      icSigHead = 1751474532;
      icSigAToB0Tag = 1093812784;
      icSigAToB1Tag = 1093812785;
      icSigAToB2Tag = 1093812786;
      icSigBlueColorantTag = 1649957210;
      icSigBlueMatrixColumnTag = 1649957210;
      icSigBlueTRCTag = 1649693251;
      icSigBToA0Tag = 1110589744;
      icSigBToA1Tag = 1110589745;
      icSigBToA2Tag = 1110589746;
      icSigCalibrationDateTimeTag = 1667329140;
      icSigCharTargetTag = 1952543335;
      icSigCopyrightTag = 1668313716;
      icSigCrdInfoTag = 1668441193;
      icSigDeviceMfgDescTag = 1684893284;
      icSigDeviceModelDescTag = 1684890724;
      icSigDeviceSettingsTag = 1684371059;
      icSigGamutTag = 1734438260;
      icSigGrayTRCTag = 1800688195;
      icSigGreenColorantTag = 1733843290;
      icSigGreenMatrixColumnTag = 1733843290;
      icSigGreenTRCTag = 1733579331;
      icSigLuminanceTag = 1819635049;
      icSigMeasurementTag = 1835360627;
      icSigMediaBlackPointTag = 1651208308;
      icSigMediaWhitePointTag = 2004119668;
      icSigNamedColor2Tag = 1852009522;
      icSigOutputResponseTag = 1919251312;
      icSigPreview0Tag = 1886545200;
      icSigPreview1Tag = 1886545201;
      icSigPreview2Tag = 1886545202;
      icSigProfileDescriptionTag = 1684370275;
      icSigProfileSequenceDescTag = 1886610801;
      icSigPs2CRD0Tag = 1886610480;
      icSigPs2CRD1Tag = 1886610481;
      icSigPs2CRD2Tag = 1886610482;
      icSigPs2CRD3Tag = 1886610483;
      icSigPs2CSATag = 1886597747;
      icSigPs2RenderingIntentTag = 1886597737;
      icSigRedColorantTag = 1918392666;
      icSigRedMatrixColumnTag = 1918392666;
      icSigRedTRCTag = 1918128707;
      icSigScreeningDescTag = 1935897188;
      icSigScreeningTag = 1935897198;
      icSigTechnologyTag = 1952801640;
      icSigUcrBgTag = 1650877472;
      icSigViewingCondDescTag = 1987405156;
      icSigViewingConditionsTag = 1986618743;
      icSigChromaticityTag = 1667789421;
      icSigChromaticAdaptationTag = 1667785060;
      icSigColorantOrderTag = 1668051567;
      icSigColorantTableTag = 1668051572;
      icHdrSize = 0;
      icHdrCmmId = 4;
      icHdrVersion = 8;
      icHdrDeviceClass = 12;
      icHdrColorSpace = 16;
      icHdrPcs = 20;
      icHdrDate = 24;
      icHdrMagic = 36;
      icHdrPlatform = 40;
      icHdrFlags = 44;
      icHdrManufacturer = 48;
      icHdrModel = 52;
      icHdrAttributes = 56;
      icHdrRenderingIntent = 64;
      icHdrIlluminant = 68;
      icHdrCreator = 80;
      icHdrProfileID = 84;
      icTagType = 0;
      icTagReserved = 4;
      icCurveCount = 8;
      icCurveData = 12;
      icXYZNumberX = 8;
  strict protected
    procedure finalize(); overload; virtual;
  public
    class function getInstance(para1: Arr1jbyte): JACICC_Profile; static; overload;
    class function getInstance(var para1: array of jbyte): JACICC_Profile; static; overload;
    class function getInstance(para1: jint): JACICC_Profile; static; overload;
    class function getInstance(para1: JLString): JACICC_Profile; static; overload;  // throws java.io.IOException
    class function getInstance(para1: JIInputStream): JACICC_Profile; static; overload;  // throws java.io.IOException
    function getMajorVersion(): jint; overload; virtual;
    function getMinorVersion(): jint; overload; virtual;
    function getProfileClass(): jint; overload; virtual;
    function getColorSpaceType(): jint; overload; virtual;
    function getPCSType(): jint; overload; virtual;
    procedure write(para1: JLString); overload; virtual;  // throws java.io.IOException
    procedure write(para1: JIOutputStream); overload; virtual;  // throws java.io.IOException
    function getData(): Arr1jbyte; overload; virtual;
    function getData(para1: jint): Arr1jbyte; overload; virtual;
    procedure setData(para1: jint; para2: Arr1jbyte); overload; virtual;
    procedure setData(para1: jint; var para2: array of jbyte); overload; virtual;
    function getNumComponents(): jint; overload; virtual;
  strict protected
    function readResolve(): JLObject; overload; virtual;  // throws java.io.ObjectStreamException
  end;

  JADDragGestureRecognizer = class abstract external 'java.awt.dnd' name 'DragGestureRecognizer' (JLObject, JISerializable)
  strict protected
    var
      fdragSource: JADDragSource; external name 'dragSource';
      fcomponent: JAComponent; external name 'component';
      fdragGestureListener: JADDragGestureListener; external name 'dragGestureListener';
      fsourceActions: jint; external name 'sourceActions';
      fevents: JUArrayList; external name 'events';
  strict protected
    constructor create(para1: JADDragSource; para2: JAComponent; para3: jint; para4: JADDragGestureListener); overload;
    constructor create(para1: JADDragSource; para2: JAComponent; para3: jint); overload;
    constructor create(para1: JADDragSource; para2: JAComponent); overload;
    constructor create(para1: JADDragSource); overload;
    procedure registerListeners(); overload; virtual; abstract;
    procedure unregisterListeners(); overload; virtual; abstract;
  public
    function getDragSource(): JADDragSource; overload; virtual;
    function getComponent(): JAComponent; overload; virtual;
    procedure setComponent(para1: JAComponent); overload; virtual;
    function getSourceActions(): jint; overload; virtual;
    procedure setSourceActions(para1: jint); overload; virtual;
    function getTriggerEvent(): JAEInputEvent; overload; virtual;
    procedure resetRecognizer(); overload; virtual;
    procedure addDragGestureListener(para1: JADDragGestureListener); overload; virtual;  // throws java.util.TooManyListenersException
    procedure removeDragGestureListener(para1: JADDragGestureListener); overload; virtual;
  strict protected
    procedure fireDragGestureRecognized(para1: jint; para2: JAPoint); overload; virtual;
    procedure appendEvent(para1: JAEInputEvent); overload; virtual;
  end;

  JADDragSource = class external 'java.awt.dnd' name 'DragSource' (JLObject, JISerializable)
  public
    final class var
      fDefaultCopyDrop: JACursor; external name 'DefaultCopyDrop';
      fDefaultMoveDrop: JACursor; external name 'DefaultMoveDrop';
      fDefaultLinkDrop: JACursor; external name 'DefaultLinkDrop';
      fDefaultCopyNoDrop: JACursor; external name 'DefaultCopyNoDrop';
      fDefaultMoveNoDrop: JACursor; external name 'DefaultMoveNoDrop';
      fDefaultLinkNoDrop: JACursor; external name 'DefaultLinkNoDrop';
  public
    class function getDefaultDragSource(): JADDragSource; static; overload;
    class function isDragImageSupported(): jboolean; static; overload;
    constructor create(); overload;  // throws java.awt.HeadlessException
    procedure startDrag(para1: JADDragGestureEvent; para2: JACursor; para3: JAImage; para4: JAPoint; para5: JADTransferable; para6: JADDragSourceListener; para7: JADFlavorMap); overload; virtual;  // throws java.awt.dnd.InvalidDnDOperationException
    procedure startDrag(para1: JADDragGestureEvent; para2: JACursor; para3: JADTransferable; para4: JADDragSourceListener; para5: JADFlavorMap); overload; virtual;  // throws java.awt.dnd.InvalidDnDOperationException
    procedure startDrag(para1: JADDragGestureEvent; para2: JACursor; para3: JAImage; para4: JAPoint; para5: JADTransferable; para6: JADDragSourceListener); overload; virtual;  // throws java.awt.dnd.InvalidDnDOperationException
    procedure startDrag(para1: JADDragGestureEvent; para2: JACursor; para3: JADTransferable; para4: JADDragSourceListener); overload; virtual;  // throws java.awt.dnd.InvalidDnDOperationException
  strict protected
    function createDragSourceContext(para1: JADPDragSourceContextPeer; para2: JADDragGestureEvent; para3: JACursor; para4: JAImage; para5: JAPoint; para6: JADTransferable; para7: JADDragSourceListener): JADDragSourceContext; overload; virtual;
  public
    function getFlavorMap(): JADFlavorMap; overload; virtual;
    function createDragGestureRecognizer(para1: JLClass; para2: JAComponent; para3: jint; para4: JADDragGestureListener): JADDragGestureRecognizer; overload; virtual;
    function createDefaultDragGestureRecognizer(para1: JAComponent; para2: jint; para3: JADDragGestureListener): JADDragGestureRecognizer; overload; virtual;
    procedure addDragSourceListener(para1: JADDragSourceListener); overload; virtual;
    procedure removeDragSourceListener(para1: JADDragSourceListener); overload; virtual;
    function getDragSourceListeners(): Arr1JADDragSourceListener; overload; virtual;
    procedure addDragSourceMotionListener(para1: JADDragSourceMotionListener); overload; virtual;
    procedure removeDragSourceMotionListener(para1: JADDragSourceMotionListener); overload; virtual;
    function getDragSourceMotionListeners(): Arr1JADDragSourceMotionListener; overload; virtual;
    function getListeners(para1: JLClass): Arr1JUEventListener; overload; virtual;
    class function getDragThreshold(): jint; static; overload;
  end;

  JADDropTargetContext = class external 'java.awt.dnd' name 'DropTargetContext' (JLObject, JISerializable)
  public
    type
      InnerTransferableProxy = class;
      Arr1InnerTransferableProxy = array of InnerTransferableProxy;
      Arr2InnerTransferableProxy = array of Arr1InnerTransferableProxy;
      Arr3InnerTransferableProxy = array of Arr2InnerTransferableProxy;
      InnerTransferableProxy = class external 'java.awt.dnd' name 'TransferableProxy' 
      end;

  public
    function getDropTarget(): JADDropTarget; overload; virtual;
    function getComponent(): JAComponent; overload; virtual;
    procedure addNotify(para1: JADPDropTargetContextPeer); overload; virtual;
    procedure removeNotify(); overload; virtual;
  strict protected
    procedure setTargetActions(para1: jint); overload; virtual;
    function getTargetActions(): jint; overload; virtual;
  public
    procedure dropComplete(para1: jboolean); overload; virtual;  // throws java.awt.dnd.InvalidDnDOperationException
  strict protected
    procedure acceptDrag(para1: jint); overload; virtual;
    procedure rejectDrag(); overload; virtual;
    procedure acceptDrop(para1: jint); overload; virtual;
    procedure rejectDrop(); overload; virtual;
    function getCurrentDataFlavors(): Arr1JADDataFlavor; overload; virtual;
    function getCurrentDataFlavorsAsList(): JUList; overload; virtual;
    function isDataFlavorSupported(para1: JADDataFlavor): jboolean; overload; virtual;
    function getTransferable(): JADTransferable; overload; virtual;  // throws java.awt.dnd.InvalidDnDOperationException
    function createTransferableProxy(para1: JADTransferable; para2: jboolean): JADTransferable; overload; virtual;
  end;

  JAFNumericShaper = class sealed external 'java.awt.font' name 'NumericShaper' (JLObject, JISerializable)
  public
    const
      EUROPEAN = 1;
      ARABIC = 2;
      EASTERN_ARABIC = 4;
      DEVANAGARI = 8;
      BENGALI = 16;
      GURMUKHI = 32;
      GUJARATI = 64;
      ORIYA = 128;
      TAMIL = 256;
      TELUGU = 512;
      KANNADA = 1024;
      MALAYALAM = 2048;
      THAI = 4096;
      LAO = 8192;
      TIBETAN = 16384;
      MYANMAR = 32768;
      ETHIOPIC = 65536;
      KHMER = 131072;
      MONGOLIAN = 262144;
      ALL_RANGES = 524287;
  public
    class function getShaper(para1: jint): JAFNumericShaper; static; overload;
    class function getContextualShaper(para1: jint): JAFNumericShaper; static; overload;
    class function getContextualShaper(para1: jint; para2: jint): JAFNumericShaper; static; overload;
    procedure shape(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;
    procedure shape(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;
    procedure shape(para1: Arr1jchar; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure shape(var para1: array of jchar; para2: jint; para3: jint; para4: jint); overload; virtual;
    function isContextual(): jboolean; overload; virtual;
    function getRanges(): jint; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JAFTransformAttribute = class sealed external 'java.awt.font' name 'TransformAttribute' (JLObject, JISerializable)
  public
    final class var
      fIDENTITY: JAFTransformAttribute; external name 'IDENTITY';
  public
    constructor create(para1: JAGAffineTransform); overload;
    function getTransform(): JAGAffineTransform; overload; virtual;
    function isIdentity(): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JBPropertyChangeSupport = class external 'java.beans' name 'PropertyChangeSupport' (JLObject, JISerializable)
  public
    constructor create(para1: JLObject); overload;
    procedure addPropertyChangeListener(para1: JBPropertyChangeListener); overload; virtual;
    procedure removePropertyChangeListener(para1: JBPropertyChangeListener); overload; virtual;
    function getPropertyChangeListeners(): Arr1JBPropertyChangeListener; overload; virtual;
    procedure addPropertyChangeListener(para1: JLString; para2: JBPropertyChangeListener); overload; virtual;
    procedure removePropertyChangeListener(para1: JLString; para2: JBPropertyChangeListener); overload; virtual;
    function getPropertyChangeListeners(para1: JLString): Arr1JBPropertyChangeListener; overload; virtual;
    procedure firePropertyChange(para1: JLString; para2: JLObject; para3: JLObject); overload; virtual;
    procedure firePropertyChange(para1: JLString; para2: jint; para3: jint); overload; virtual;
    procedure firePropertyChange(para1: JLString; para2: jboolean; para3: jboolean); overload; virtual;
    procedure firePropertyChange(para1: JBPropertyChangeEvent); overload; virtual;
    procedure fireIndexedPropertyChange(para1: JLString; para2: jint; para3: JLObject; para4: JLObject); overload; virtual;
    procedure fireIndexedPropertyChange(para1: JLString; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure fireIndexedPropertyChange(para1: JLString; para2: jint; para3: jboolean; para4: jboolean); overload; virtual;
    function hasListeners(para1: JLString): jboolean; overload; virtual;
  end;

  JBVetoableChangeSupport = class external 'java.beans' name 'VetoableChangeSupport' (JLObject, JISerializable)
  public
    constructor create(para1: JLObject); overload;
    procedure addVetoableChangeListener(para1: JBVetoableChangeListener); overload; virtual;
    procedure removeVetoableChangeListener(para1: JBVetoableChangeListener); overload; virtual;
    function getVetoableChangeListeners(): Arr1JBVetoableChangeListener; overload; virtual;
    procedure addVetoableChangeListener(para1: JLString; para2: JBVetoableChangeListener); overload; virtual;
    procedure removeVetoableChangeListener(para1: JLString; para2: JBVetoableChangeListener); overload; virtual;
    function getVetoableChangeListeners(para1: JLString): Arr1JBVetoableChangeListener; overload; virtual;
    procedure fireVetoableChange(para1: JLString; para2: JLObject; para3: JLObject); overload; virtual;  // throws java.beans.PropertyVetoException
    procedure fireVetoableChange(para1: JLString; para2: jint; para3: jint); overload; virtual;  // throws java.beans.PropertyVetoException
    procedure fireVetoableChange(para1: JLString; para2: jboolean; para3: jboolean); overload; virtual;  // throws java.beans.PropertyVetoException
    procedure fireVetoableChange(para1: JBPropertyChangeEvent); overload; virtual;  // throws java.beans.PropertyVetoException
    function hasListeners(para1: JLString): jboolean; overload; virtual;
  end;

  JIExternalizable = interface external 'java.io' name 'Externalizable' (JISerializable)
    procedure writeExternal(para1: JIObjectOutput); overload;  // throws java.io.IOException
    procedure readExternal(para1: JIObjectInput); overload;  // throws java.io.IOException, java.lang.ClassNotFoundException
  end;

  JIObjectStreamClass = class external 'java.io' name 'ObjectStreamClass' (JLObject, JISerializable)
  public
    type
      InnerCaches = class;
      Arr1InnerCaches = array of InnerCaches;
      Arr2InnerCaches = array of Arr1InnerCaches;
      Arr3InnerCaches = array of Arr2InnerCaches;
      InnerClassDataSlot = class;
      Arr1InnerClassDataSlot = array of InnerClassDataSlot;
      Arr2InnerClassDataSlot = array of Arr1InnerClassDataSlot;
      Arr3InnerClassDataSlot = array of Arr2InnerClassDataSlot;
      InnerEntryFuture = class;
      Arr1InnerEntryFuture = array of InnerEntryFuture;
      Arr2InnerEntryFuture = array of Arr1InnerEntryFuture;
      Arr3InnerEntryFuture = array of Arr2InnerEntryFuture;
      InnerFieldReflector = class;
      Arr1InnerFieldReflector = array of InnerFieldReflector;
      Arr2InnerFieldReflector = array of Arr1InnerFieldReflector;
      Arr3InnerFieldReflector = array of Arr2InnerFieldReflector;
      InnerMemberSignature = class;
      Arr1InnerMemberSignature = array of InnerMemberSignature;
      Arr2InnerMemberSignature = array of Arr1InnerMemberSignature;
      Arr3InnerMemberSignature = array of Arr2InnerMemberSignature;
      InnerFieldReflectorKey = class;
      Arr1InnerFieldReflectorKey = array of InnerFieldReflectorKey;
      Arr2InnerFieldReflectorKey = array of Arr1InnerFieldReflectorKey;
      Arr3InnerFieldReflectorKey = array of Arr2InnerFieldReflectorKey;
      InnerWeakClassKey = class;
      Arr1InnerWeakClassKey = array of InnerWeakClassKey;
      Arr2InnerWeakClassKey = array of Arr1InnerWeakClassKey;
      Arr3InnerWeakClassKey = array of Arr2InnerWeakClassKey;
      InnerCaches = class external 'java.io' name 'Caches' 
      end;

      InnerClassDataSlot = class external 'java.io' name 'ClassDataSlot' 
      end;

      InnerEntryFuture = class external 'java.io' name 'EntryFuture' 
      end;

      InnerFieldReflector = class external 'java.io' name 'FieldReflector' 
      end;

      InnerMemberSignature = class external 'java.io' name 'MemberSignature' 
      end;

      InnerFieldReflectorKey = class external 'java.io' name 'FieldReflectorKey' 
      end;

      InnerWeakClassKey = class external 'java.io' name 'WeakClassKey' 
      end;

  public
    final class var
      fNO_FIELDS: Arr1JIObjectStreamField; external name 'NO_FIELDS';
  public
    class function lookup(para1: JLClass): JIObjectStreamClass; static; overload;
    class function lookupAny(para1: JLClass): JIObjectStreamClass; static; overload;
    function getName(): JLString; overload; virtual;
    function getSerialVersionUID(): jlong; overload; virtual;
    function forClass(): JLClass; overload; virtual;
    function getFields(): Arr1JIObjectStreamField; overload; virtual;
    function getField(para1: JLString): JIObjectStreamField; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JLStackTraceElement = class sealed external 'java.lang' name 'StackTraceElement' (JLObject, JISerializable)
  public
    constructor create(para1: JLString; para2: JLString; para3: JLString; para4: jint); overload;
    function getFileName(): JLString; overload; virtual;
    function getLineNumber(): jint; overload; virtual;
    function getClassName(): JLString; overload; virtual;
    function getMethodName(): JLString; overload; virtual;
    function isNativeMethod(): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JLRProxy = class external 'java.lang.reflect' name 'Proxy' (JLObject, JISerializable)
  strict protected
    var
      fh: JLRInvocationHandler; external name 'h';
  strict protected
    constructor create(para1: JLRInvocationHandler); overload;
  public
    class function getProxyClass(para1: JLClassLoader; para2: Arr1JLClass): JLClass; static; overload;  // throws java.lang.IllegalArgumentException
    class function getProxyClass(para1: JLClassLoader; const para2: array of JLClass): JLClass; static; overload;  // throws java.lang.IllegalArgumentException
    class function newProxyInstance(para1: JLClassLoader; para2: Arr1JLClass; para3: JLRInvocationHandler): JLObject; static; overload;  // throws java.lang.IllegalArgumentException
    class function newProxyInstance(para1: JLClassLoader; var para2: array of JLClass; para3: JLRInvocationHandler): JLObject; static; overload;  // throws java.lang.IllegalArgumentException
    class function isProxyClass(para1: JLClass): jboolean; static; overload;
    class function getInvocationHandler(para1: JLObject): JLRInvocationHandler; static; overload;  // throws java.lang.IllegalArgumentException
  end;

  JMMathContext = class sealed external 'java.math' name 'MathContext' (JLObject, JISerializable)
  public
    final class var
      fUNLIMITED: JMMathContext; external name 'UNLIMITED';
      fDECIMAL32: JMMathContext; external name 'DECIMAL32';
      fDECIMAL64: JMMathContext; external name 'DECIMAL64';
      fDECIMAL128: JMMathContext; external name 'DECIMAL128';
  public
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: JMRoundingMode); overload;
    constructor create(para1: JLString); overload;
    function getPrecision(): jint; overload; virtual;
    function getRoundingMode(): JMRoundingMode; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JNInetAddress = class external 'java.net' name 'InetAddress' (JLObject, JISerializable)
  public
    type
      InnerCacheEntry = class;
      Arr1InnerCacheEntry = array of InnerCacheEntry;
      Arr2InnerCacheEntry = array of Arr1InnerCacheEntry;
      Arr3InnerCacheEntry = array of Arr2InnerCacheEntry;
      InnerCache = class;
      Arr1InnerCache = array of InnerCache;
      Arr2InnerCache = array of Arr1InnerCache;
      Arr3InnerCache = array of Arr2InnerCache;
      InnerType = class;
      Arr1InnerType = array of InnerType;
      Arr2InnerType = array of Arr1InnerType;
      Arr3InnerType = array of Arr2InnerType;
      InnerCacheEntry = class sealed external 'java.net' name 'CacheEntry' 
      end;

      InnerCache = class sealed external 'java.net' name 'Cache' 
      public
        type
          InnerType = class;
          Arr1InnerType = array of InnerType;
          Arr2InnerType = array of Arr1InnerType;
          Arr3InnerType = array of Arr2InnerType;
          InnerType = class sealed external 'java.net' name 'Type' 
          end;

      end;

      InnerType = class sealed external 'java.net' name 'Type' 
      end;

  public
    function isMulticastAddress(): jboolean; overload; virtual;
    function isAnyLocalAddress(): jboolean; overload; virtual;
    function isLoopbackAddress(): jboolean; overload; virtual;
    function isLinkLocalAddress(): jboolean; overload; virtual;
    function isSiteLocalAddress(): jboolean; overload; virtual;
    function isMCGlobal(): jboolean; overload; virtual;
    function isMCNodeLocal(): jboolean; overload; virtual;
    function isMCLinkLocal(): jboolean; overload; virtual;
    function isMCSiteLocal(): jboolean; overload; virtual;
    function isMCOrgLocal(): jboolean; overload; virtual;
    function isReachable(para1: jint): jboolean; overload; virtual;  // throws java.io.IOException
    function isReachable(para1: JNNetworkInterface; para2: jint; para3: jint): jboolean; overload; virtual;  // throws java.io.IOException
    function getHostName(): JLString; overload; virtual;
    function getCanonicalHostName(): JLString; overload; virtual;
    function getAddress(): Arr1jbyte; overload; virtual;
    function getHostAddress(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    class function getByAddress(para1: JLString; para2: Arr1jbyte): JNInetAddress; static; overload;  // throws java.net.UnknownHostException
    class function getByAddress(para1: JLString; var para2: array of jbyte): JNInetAddress; static; overload;  // throws java.net.UnknownHostException
    class function getByName(para1: JLString): JNInetAddress; static; overload;  // throws java.net.UnknownHostException
    class function getAllByName(para1: JLString): Arr1JNInetAddress; static; overload;  // throws java.net.UnknownHostException
    class function getByAddress(para1: Arr1jbyte): JNInetAddress; static; overload;  // throws java.net.UnknownHostException
    class function getByAddress(var para1: array of jbyte): JNInetAddress; static; overload;  // throws java.net.UnknownHostException
    class function getLocalHost(): JNInetAddress; static; overload;  // throws java.net.UnknownHostException
  end;

  JNSocketAddress = class abstract external 'java.net' name 'SocketAddress' (JLObject, JISerializable)
  public
    constructor create(); overload;
  end;

  JNURL = class sealed external 'java.net' name 'URL' (JLObject, JISerializable)
  public
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLString); overload;  // throws java.net.MalformedURLException
    constructor create(para1: JLString; para2: JLString; para3: JLString); overload;  // throws java.net.MalformedURLException
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLString; para5: JNURLStreamHandler); overload;  // throws java.net.MalformedURLException
    constructor create(para1: JLString); overload;  // throws java.net.MalformedURLException
    constructor create(para1: JNURL; para2: JLString); overload;  // throws java.net.MalformedURLException
    constructor create(para1: JNURL; para2: JLString; para3: JNURLStreamHandler); overload;  // throws java.net.MalformedURLException
  strict protected
    procedure &set(para1: JLString; para2: JLString; para3: jint; para4: JLString; para5: JLString); overload; virtual;
    procedure &set(para1: JLString; para2: JLString; para3: jint; para4: JLString; para5: JLString; para6: JLString; para7: JLString; para8: JLString); overload; virtual;
  public
    function getQuery(): JLString; overload; virtual;
    function getPath(): JLString; overload; virtual;
    function getUserInfo(): JLString; overload; virtual;
    function getAuthority(): JLString; overload; virtual;
    function getPort(): jint; overload; virtual;
    function getDefaultPort(): jint; overload; virtual;
    function getProtocol(): JLString; overload; virtual;
    function getHost(): JLString; overload; virtual;
    function getFile(): JLString; overload; virtual;
    function getRef(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function sameFile(para1: JNURL): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    function toExternalForm(): JLString; overload; virtual;
    function toURI(): JNURI; overload; virtual;  // throws java.net.URISyntaxException
    function openConnection(): JNURLConnection; overload; virtual;  // throws java.io.IOException
    function openConnection(para1: JNProxy): JNURLConnection; overload; virtual;  // throws java.io.IOException
    function openStream(): JIInputStream; overload; virtual; final;  // throws java.io.IOException
    function getContent(): JLObject; overload; virtual; final;  // throws java.io.IOException
    function getContent(para1: Arr1JLClass): JLObject; overload; virtual; final;  // throws java.io.IOException
    function getContent(var para1: array of JLClass): JLObject; overload; virtual; final;  // throws java.io.IOException
    class procedure setURLStreamHandlerFactory(para1: JNURLStreamHandlerFactory); static; overload;
  end;

  JRMarshalledObject = class sealed external 'java.rmi' name 'MarshalledObject' (JLObject, JISerializable)
  public
    type
      InnerMarshalledObjectInputStream = class;
      Arr1InnerMarshalledObjectInputStream = array of InnerMarshalledObjectInputStream;
      Arr2InnerMarshalledObjectInputStream = array of Arr1InnerMarshalledObjectInputStream;
      Arr3InnerMarshalledObjectInputStream = array of Arr2InnerMarshalledObjectInputStream;
      InnerMarshalledObjectOutputStream = class;
      Arr1InnerMarshalledObjectOutputStream = array of InnerMarshalledObjectOutputStream;
      Arr2InnerMarshalledObjectOutputStream = array of Arr1InnerMarshalledObjectOutputStream;
      Arr3InnerMarshalledObjectOutputStream = array of Arr2InnerMarshalledObjectOutputStream;
      InnerMarshalledObjectInputStream = class external 'java.rmi' name 'MarshalledObjectInputStream' 
      end;

      InnerMarshalledObjectOutputStream = class external 'java.rmi' name 'MarshalledObjectOutputStream' 
      end;

  public
    constructor create(para1: JLObject); overload;  // throws java.io.IOException
    function get(): JLObject; overload; virtual;  // throws java.io.IOException, java.lang.ClassNotFoundException
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JRAActivationDesc = class sealed external 'java.rmi.activation' name 'ActivationDesc' (JLObject, JISerializable)
  public
    constructor create(para1: JLString; para2: JLString; para3: JRMarshalledObject); overload;  // throws java.rmi.activation.ActivationException
    constructor create(para1: JLString; para2: JLString; para3: JRMarshalledObject; para4: jboolean); overload;  // throws java.rmi.activation.ActivationException
    constructor create(para1: JRAActivationGroupID; para2: JLString; para3: JLString; para4: JRMarshalledObject); overload;
    constructor create(para1: JRAActivationGroupID; para2: JLString; para3: JLString; para4: JRMarshalledObject; para5: jboolean); overload;
    function getGroupID(): JRAActivationGroupID; overload; virtual;
    function getClassName(): JLString; overload; virtual;
    function getLocation(): JLString; overload; virtual;
    function getData(): JRMarshalledObject; overload; virtual;
    function getRestartMode(): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JRAActivationGroupDesc = class sealed external 'java.rmi.activation' name 'ActivationGroupDesc' (JLObject, JISerializable)
  public
    type
      InnerCommandEnvironment = class;
      Arr1InnerCommandEnvironment = array of InnerCommandEnvironment;
      Arr2InnerCommandEnvironment = array of Arr1InnerCommandEnvironment;
      Arr3InnerCommandEnvironment = array of Arr2InnerCommandEnvironment;
      InnerCommandEnvironment = class external 'java.rmi.activation' name 'CommandEnvironment' (JLObject, JISerializable)
      public
        constructor create(para1: JLString; para2: Arr1JLString); overload;
        constructor create(para1: JLString; const para2: array of JLString); overload;
        function getCommandPath(): JLString; overload; virtual;
        function getCommandOptions(): Arr1JLString; overload; virtual;
        function equals(para1: JLObject): jboolean; overload; virtual;
        function hashCode(): jint; overload; virtual;
      end;

  public
    constructor create(para1: JUProperties; para2: JRAActivationGroupDesc.InnerCommandEnvironment); overload;
    constructor create(para1: JLString; para2: JLString; para3: JRMarshalledObject; para4: JUProperties; para5: JRAActivationGroupDesc.InnerCommandEnvironment); overload;
    function getClassName(): JLString; overload; virtual;
    function getLocation(): JLString; overload; virtual;
    function getData(): JRMarshalledObject; overload; virtual;
    function getPropertyOverrides(): JUProperties; overload; virtual;
    function getCommandEnvironment(): JRAActivationGroupDesc.InnerCommandEnvironment; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JRAActivationGroupID = class external 'java.rmi.activation' name 'ActivationGroupID' (JLObject, JISerializable)
  public
    constructor create(para1: JRAActivationSystem); overload;
    function getSystem(): JRAActivationSystem; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JRAActivationID = class external 'java.rmi.activation' name 'ActivationID' (JLObject, JISerializable)
  public
    constructor create(para1: JRAActivator); overload;
    function activate(para1: jboolean): JRRemote; overload; virtual;  // throws java.rmi.activation.ActivationException, java.rmi.activation.UnknownObjectException, java.rmi.RemoteException
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JRDLease = class sealed external 'java.rmi.dgc' name 'Lease' (JLObject, JISerializable)
  public
    constructor create(para1: JRDVMID; para2: jlong); overload;
    function getVMID(): JRDVMID; overload; virtual;
    function getValue(): jlong; overload; virtual;
  end;

  JRDVMID = class sealed external 'java.rmi.dgc' name 'VMID' (JLObject, JISerializable)
  public
    constructor create(); overload;
    class function isUnique(): jboolean; static; overload;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JRSObjID = class sealed external 'java.rmi.server' name 'ObjID' (JLObject, JISerializable)
  public
    const
      REGISTRY_ID = 0;
      ACTIVATOR_ID = 1;
      DGC_ID = 2;
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    procedure write(para1: JIObjectOutput); overload; virtual;  // throws java.io.IOException
    class function read(para1: JIObjectInput): JRSObjID; static; overload;  // throws java.io.IOException
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JRSUID = class sealed external 'java.rmi.server' name 'UID' (JLObject, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: jshort); overload;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure write(para1: JIDataOutput); overload; virtual;  // throws java.io.IOException
    class function read(para1: JIDataInput): JRSUID; static; overload;  // throws java.io.IOException
  end;

  JSCodeSigner = class sealed external 'java.security' name 'CodeSigner' (JLObject, JISerializable)
  public
    constructor create(para1: JSCCertPath; para2: JSecurityTimestamp); overload;
    function getSignerCertPath(): JSCCertPath; overload; virtual;
    function getTimestamp(): JSecurityTimestamp; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSCodeSource = class external 'java.security' name 'CodeSource' (JLObject, JISerializable)
  public
    constructor create(para1: JNURL; para2: Arr1JSCCertificate); overload;
    constructor create(para1: JNURL; const para2: array of JSCCertificate); overload;
    constructor create(para1: JNURL; para2: Arr1JSCodeSigner); overload;
    constructor create(para1: JNURL; const para2: array of JSCodeSigner); overload;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getLocation(): JNURL; overload; virtual; final;
    function getCertificates(): Arr1JSCCertificate; overload; virtual; final;
    function getCodeSigners(): Arr1JSCodeSigner; overload; virtual; final;
    function implies(para1: JSCodeSource): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSGuardedObject = class external 'java.security' name 'GuardedObject' (JLObject, JISerializable)
  public
    constructor create(para1: JLObject; para2: JSGuard); overload;
    function getObject(): JLObject; overload; virtual;  // throws java.lang.SecurityException
  end;

  JSKey = interface external 'java.security' name 'Key' (JISerializable)
    const
      serialVersionUID = jlong(6603384152749567654);
    function getAlgorithm(): JLString; overload;
    function getFormat(): JLString; overload;
    function getEncoded(): Arr1jbyte; overload;
  end;

  JSKeyPair = class sealed external 'java.security' name 'KeyPair' (JLObject, JISerializable)
  public
    constructor create(para1: JSPublicKey; para2: JSPrivateKey); overload;
    function getPublic(): JSPublicKey; overload; virtual;
    function getPrivate(): JSPrivateKey; overload; virtual;
  end;

  JSPermissionCollection = class abstract external 'java.security' name 'PermissionCollection' (JLObject, JISerializable)
  public
    constructor create(); overload;
    procedure add(para1: JSPermission); overload; virtual; abstract;
    function implies(para1: JSPermission): jboolean; overload; virtual; abstract;
    function elements(): JUEnumeration; overload; virtual; abstract;
    procedure setReadOnly(); overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSSecureRandomSpi = class abstract external 'java.security' name 'SecureRandomSpi' (JLObject, JISerializable)
  public
    constructor create(); overload;
  strict protected
    procedure engineSetSeed(para1: Arr1jbyte); overload; virtual; abstract;
    procedure engineSetSeed(var para1: array of jbyte); overload; virtual; abstract;
    procedure engineNextBytes(para1: Arr1jbyte); overload; virtual; abstract;
    procedure engineNextBytes(var para1: array of jbyte); overload; virtual; abstract;
    function engineGenerateSeed(para1: jint): Arr1jbyte; overload; virtual; abstract;
  end;

  JSSignedObject = class sealed external 'java.security' name 'SignedObject' (JLObject, JISerializable)
  public
    constructor create(para1: JISerializable; para2: JSPrivateKey; para3: JSSignature); overload;  // throws java.io.IOException, java.security.InvalidKeyException, java.security.SignatureException
    function getObject(): JLObject; overload; virtual;  // throws java.io.IOException, java.lang.ClassNotFoundException
    function getSignature(): Arr1jbyte; overload; virtual;
    function getAlgorithm(): JLString; overload; virtual;
    function verify(para1: JSPublicKey; para2: JSSignature): jboolean; overload; virtual;  // throws java.security.InvalidKeyException, java.security.SignatureException
  end;

  JSecurityTimestamp = class sealed external 'java.security' name 'Timestamp' (JLObject, JISerializable)
  public
    constructor create(para1: JUDate; para2: JSCCertPath); overload;
    function getTimestamp(): JUDate; overload; virtual;
    function getSignerCertPath(): JSCCertPath; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSCCertPath = class abstract external 'java.security.cert' name 'CertPath' (JLObject, JISerializable)
  public
    type
      InnerCertPathRep = class;
      Arr1InnerCertPathRep = array of InnerCertPathRep;
      Arr2InnerCertPathRep = array of Arr1InnerCertPathRep;
      Arr3InnerCertPathRep = array of Arr2InnerCertPathRep;
      InnerCertPathRep = class external 'java.security.cert' name 'CertPathRep' (JLObject, JISerializable)
      strict protected
        constructor create(para1: JLString; para2: Arr1jbyte); overload;
        constructor create(para1: JLString; const para2: array of jbyte); overload;
        function readResolve(): JLObject; overload; virtual;  // throws java.io.ObjectStreamException
      end;

  strict protected
    constructor create(para1: JLString); overload;
  public
    function getType(): JLString; overload; virtual;
    function getEncodings(): JUIterator; overload; virtual; abstract;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function getEncoded(): Arr1jbyte; overload; virtual; abstract;  // throws java.security.cert.CertificateEncodingException
    function getEncoded(para1: JLString): Arr1jbyte; overload; virtual; abstract;  // throws java.security.cert.CertificateEncodingException
    function getCertificates(): JUList; overload; virtual; abstract;
  strict protected
    function writeReplace(): JLObject; overload; virtual;  // throws java.io.ObjectStreamException
  end;

  JSCCertificate = class abstract external 'java.security.cert' name 'Certificate' (JLObject, JISerializable)
  public
    type
      InnerCertificateRep = class;
      Arr1InnerCertificateRep = array of InnerCertificateRep;
      Arr2InnerCertificateRep = array of Arr1InnerCertificateRep;
      Arr3InnerCertificateRep = array of Arr2InnerCertificateRep;
      InnerCertificateRep = class external 'java.security.cert' name 'CertificateRep' (JLObject, JISerializable)
      strict protected
        constructor create(para1: JLString; para2: Arr1jbyte); overload;
        constructor create(para1: JLString; const para2: array of jbyte); overload;
        function readResolve(): JLObject; overload; virtual;  // throws java.io.ObjectStreamException
      end;

  strict protected
    constructor create(para1: JLString); overload;
  public
    function getType(): JLString; overload; virtual; final;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function getEncoded(): Arr1jbyte; overload; virtual; abstract;  // throws java.security.cert.CertificateEncodingException
    procedure verify(para1: JSPublicKey); overload; virtual; abstract;  // throws java.security.cert.CertificateException, java.security.NoSuchAlgorithmException, java.security.InvalidKeyException, java.security.NoSuchProviderException, java.security.SignatureException
    procedure verify(para1: JSPublicKey; para2: JLString); overload; virtual; abstract;  // throws java.security.cert.CertificateException, java.security.NoSuchAlgorithmException, java.security.InvalidKeyException, java.security.NoSuchProviderException, java.security.SignatureException
    function toString(): JLString; overload; virtual; abstract;
    function getPublicKey(): JSPublicKey; overload; virtual; abstract;
  strict protected
    function writeReplace(): JLObject; overload; virtual;  // throws java.io.ObjectStreamException
  end;

  JUCurrency = class sealed external 'java.util' name 'Currency' (JLObject, JISerializable)
  public
    type
      InnerCurrencyNameGetter = class;
      Arr1InnerCurrencyNameGetter = array of InnerCurrencyNameGetter;
      Arr2InnerCurrencyNameGetter = array of Arr1InnerCurrencyNameGetter;
      Arr3InnerCurrencyNameGetter = array of Arr2InnerCurrencyNameGetter;
      InnerCurrencyNameGetter = class external 'java.util' name 'CurrencyNameGetter' 
      end;

  public
    class function getInstance(para1: JLString): JUCurrency; static; overload;
    class function getInstance(para1: JULocale): JUCurrency; static; overload;
    function getCurrencyCode(): JLString; overload; virtual;
    function getSymbol(): JLString; overload; virtual;
    function getSymbol(para1: JULocale): JLString; overload; virtual;
    function getDefaultFractionDigits(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JUEventObject = class external 'java.util' name 'EventObject' (JLObject, JISerializable)
  strict protected
    var
      fsource: JLObject; external name 'source';
  public
    constructor create(para1: JLObject); overload;
    function getSource(): JLObject; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JURandom = class external 'java.util' name 'Random' (JLObject, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: jlong); overload;
    procedure setSeed(para1: jlong); overload; virtual;
  strict protected
    function next(para1: jint): jint; overload; virtual;
  public
    procedure nextBytes(para1: Arr1jbyte); overload; virtual;
    procedure nextBytes(var para1: array of jbyte); overload; virtual;
    function nextInt(): jint; overload; virtual;
    function nextInt(para1: jint): jint; overload; virtual;
    function nextLong(): jlong; overload; virtual;
    function nextBoolean(): jboolean; overload; virtual;
    function nextFloat(): jfloat; overload; virtual;
    function nextDouble(): jdouble; overload; virtual;
    function nextGaussian(): jdouble; overload; virtual;
  end;

  JUCSemaphore = class external 'java.util.concurrent' name 'Semaphore' (JLObject, JISerializable)
  public
    type
      InnerFairSync = class;
      Arr1InnerFairSync = array of InnerFairSync;
      Arr2InnerFairSync = array of Arr1InnerFairSync;
      Arr3InnerFairSync = array of Arr2InnerFairSync;
      InnerNonfairSync = class;
      Arr1InnerNonfairSync = array of InnerNonfairSync;
      Arr2InnerNonfairSync = array of Arr1InnerNonfairSync;
      Arr3InnerNonfairSync = array of Arr2InnerNonfairSync;
      InnerSync = class;
      Arr1InnerSync = array of InnerSync;
      Arr2InnerSync = array of Arr1InnerSync;
      Arr3InnerSync = array of Arr2InnerSync;
      InnerFairSync = class sealed external 'java.util.concurrent' name 'FairSync' 
      end;

      InnerNonfairSync = class sealed external 'java.util.concurrent' name 'NonfairSync' 
      end;

      InnerSync = class abstract external 'java.util.concurrent' name 'Sync' 
      end;

  public
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jboolean); overload;
    procedure acquire(); overload; virtual;  // throws java.lang.InterruptedException
    procedure acquireUninterruptibly(); overload; virtual;
    function tryAcquire(): jboolean; overload; virtual;
    function tryAcquire(para1: jlong; para2: JUCTimeUnit): jboolean; overload; virtual;  // throws java.lang.InterruptedException
    procedure release(); overload; virtual;
    procedure acquire(para1: jint); overload; virtual;  // throws java.lang.InterruptedException
    procedure acquireUninterruptibly(para1: jint); overload; virtual;
    function tryAcquire(para1: jint): jboolean; overload; virtual;
    function tryAcquire(para1: jint; para2: jlong; para3: JUCTimeUnit): jboolean; overload; virtual;  // throws java.lang.InterruptedException
    procedure release(para1: jint); overload; virtual;
    function availablePermits(): jint; overload; virtual;
    function drainPermits(): jint; overload; virtual;
  strict protected
    procedure reducePermits(para1: jint); overload; virtual;
  public
    function isFair(): jboolean; overload; virtual;
    function hasQueuedThreads(): jboolean; overload; virtual; final;
    function getQueueLength(): jint; overload; virtual; final;
  strict protected
    function getQueuedThreads(): JUCollection; overload; virtual;
  public
    function toString(): JLString; overload; virtual;
  end;

  JUCAAtomicBoolean = class external 'java.util.concurrent.atomic' name 'AtomicBoolean' (JLObject, JISerializable)
  public
    constructor create(para1: jboolean); overload;
    constructor create(); overload;
    function get(): jboolean; overload; virtual; final;
    function compareAndSet(para1: jboolean; para2: jboolean): jboolean; overload; virtual; final;
    function weakCompareAndSet(para1: jboolean; para2: jboolean): jboolean; overload; virtual;
    procedure &set(para1: jboolean); overload; virtual; final;
    procedure lazySet(para1: jboolean); overload; virtual; final;
    function getAndSet(para1: jboolean): jboolean; overload; virtual; final;
    function toString(): JLString; overload; virtual;
  end;

  JUCAAtomicIntegerArray = class external 'java.util.concurrent.atomic' name 'AtomicIntegerArray' (JLObject, JISerializable)
  public
    constructor create(para1: jint); overload;
    constructor create(para1: Arr1jint); overload;
    constructor create(const para1: array of jint); overload;
    function length(): jint; overload; virtual; final;
    function get(para1: jint): jint; overload; virtual; final;
    procedure &set(para1: jint; para2: jint); overload; virtual; final;
    procedure lazySet(para1: jint; para2: jint); overload; virtual; final;
    function getAndSet(para1: jint; para2: jint): jint; overload; virtual; final;
    function compareAndSet(para1: jint; para2: jint; para3: jint): jboolean; overload; virtual; final;
    function weakCompareAndSet(para1: jint; para2: jint; para3: jint): jboolean; overload; virtual; final;
    function getAndIncrement(para1: jint): jint; overload; virtual; final;
    function getAndDecrement(para1: jint): jint; overload; virtual; final;
    function getAndAdd(para1: jint; para2: jint): jint; overload; virtual; final;
    function incrementAndGet(para1: jint): jint; overload; virtual; final;
    function decrementAndGet(para1: jint): jint; overload; virtual; final;
    function addAndGet(para1: jint; para2: jint): jint; overload; virtual; final;
    function toString(): JLString; overload; virtual;
  end;

  JUCAAtomicLongArray = class external 'java.util.concurrent.atomic' name 'AtomicLongArray' (JLObject, JISerializable)
  public
    constructor create(para1: jint); overload;
    constructor create(para1: Arr1jlong); overload;
    constructor create(const para1: array of jlong); overload;
    function length(): jint; overload; virtual; final;
    function get(para1: jint): jlong; overload; virtual; final;
    procedure &set(para1: jint; para2: jlong); overload; virtual; final;
    procedure lazySet(para1: jint; para2: jlong); overload; virtual; final;
    function getAndSet(para1: jint; para2: jlong): jlong; overload; virtual; final;
    function compareAndSet(para1: jint; para2: jlong; para3: jlong): jboolean; overload; virtual; final;
    function weakCompareAndSet(para1: jint; para2: jlong; para3: jlong): jboolean; overload; virtual; final;
    function getAndIncrement(para1: jint): jlong; overload; virtual; final;
    function getAndDecrement(para1: jint): jlong; overload; virtual; final;
    function getAndAdd(para1: jint; para2: jlong): jlong; overload; virtual; final;
    function incrementAndGet(para1: jint): jlong; overload; virtual; final;
    function decrementAndGet(para1: jint): jlong; overload; virtual; final;
    function addAndGet(para1: jint; para2: jlong): jlong; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JUCAAtomicReference = class external 'java.util.concurrent.atomic' name 'AtomicReference' (JLObject, JISerializable)
  public
    constructor create(para1: JLObject); overload;
    constructor create(); overload;
    function get(): JLObject; overload; virtual; final;
    procedure &set(para1: JLObject); overload; virtual; final;
    procedure lazySet(para1: JLObject); overload; virtual; final;
    function compareAndSet(para1: JLObject; para2: JLObject): jboolean; overload; virtual; final;
    function weakCompareAndSet(para1: JLObject; para2: JLObject): jboolean; overload; virtual; final;
    function getAndSet(para1: JLObject): JLObject; overload; virtual; final;
    function toString(): JLString; overload; virtual;
  end;

  JUCAAtomicReferenceArray = class external 'java.util.concurrent.atomic' name 'AtomicReferenceArray' (JLObject, JISerializable)
  public
    constructor create(para1: jint); overload;
    constructor create(para1: Arr1JLObject); overload;
    constructor create(const para1: array of JLObject); overload;
    function length(): jint; overload; virtual; final;
    function get(para1: jint): JLObject; overload; virtual; final;
    procedure &set(para1: jint; para2: JLObject); overload; virtual; final;
    procedure lazySet(para1: jint; para2: JLObject); overload; virtual; final;
    function getAndSet(para1: jint; para2: JLObject): JLObject; overload; virtual; final;
    function compareAndSet(para1: jint; para2: JLObject; para3: JLObject): jboolean; overload; virtual; final;
    function weakCompareAndSet(para1: jint; para2: JLObject; para3: JLObject): jboolean; overload; virtual; final;
    function toString(): JLString; overload; virtual;
  end;

  JUCLAbstractOwnableSynchronizer = class abstract external 'java.util.concurrent.locks' name 'AbstractOwnableSynchronizer' (JLObject, JISerializable)
  strict protected
    constructor create(); overload;
    procedure setExclusiveOwnerThread(para1: JLThread); overload; virtual; final;
    function getExclusiveOwnerThread(): JLThread; overload; virtual; final;
  end;

  JULLevel = class external 'java.util.logging' name 'Level' (JLObject, JISerializable)
  public
    final class var
      fOFF: JULLevel; external name 'OFF';
      fSEVERE: JULLevel; external name 'SEVERE';
      fWARNING: JULLevel; external name 'WARNING';
      fINFO: JULLevel; external name 'INFO';
      fCONFIG: JULLevel; external name 'CONFIG';
      fFINE: JULLevel; external name 'FINE';
      fFINER: JULLevel; external name 'FINER';
      fFINEST: JULLevel; external name 'FINEST';
      fALL: JULLevel; external name 'ALL';
  strict protected
    constructor create(para1: JLString; para2: jint); overload;
    constructor create(para1: JLString; para2: jint; para3: JLString); overload;
  public
    function getResourceBundleName(): JLString; overload; virtual;
    function getName(): JLString; overload; virtual;
    function getLocalizedName(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual; final;
    function intValue(): jint; overload; virtual; final;
    class function parse(para1: JLString): JULLevel; static; overload;  // throws java.lang.IllegalArgumentException
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JULLogRecord = class external 'java.util.logging' name 'LogRecord' (JLObject, JISerializable)
  public
    constructor create(para1: JULLevel; para2: JLString); overload;
    function getLoggerName(): JLString; overload; virtual;
    procedure setLoggerName(para1: JLString); overload; virtual;
    function getResourceBundle(): JUResourceBundle; overload; virtual;
    procedure setResourceBundle(para1: JUResourceBundle); overload; virtual;
    function getResourceBundleName(): JLString; overload; virtual;
    procedure setResourceBundleName(para1: JLString); overload; virtual;
    function getLevel(): JULLevel; overload; virtual;
    procedure setLevel(para1: JULLevel); overload; virtual;
    function getSequenceNumber(): jlong; overload; virtual;
    procedure setSequenceNumber(para1: jlong); overload; virtual;
    function getSourceClassName(): JLString; overload; virtual;
    procedure setSourceClassName(para1: JLString); overload; virtual;
    function getSourceMethodName(): JLString; overload; virtual;
    procedure setSourceMethodName(para1: JLString); overload; virtual;
    function getMessage(): JLString; overload; virtual;
    procedure setMessage(para1: JLString); overload; virtual;
    function getParameters(): Arr1JLObject; overload; virtual;
    procedure setParameters(para1: Arr1JLObject); overload; virtual;
    procedure setParameters(var para1: array of JLObject); overload; virtual;
    function getThreadID(): jint; overload; virtual;
    procedure setThreadID(para1: jint); overload; virtual;
    function getMillis(): jlong; overload; virtual;
    procedure setMillis(para1: jlong); overload; virtual;
    function getThrown(): JLThrowable; overload; virtual;
    procedure setThrown(para1: JLThrowable); overload; virtual;
  end;

  JURPattern = class sealed external 'java.util.regex' name 'Pattern' (JLObject, JISerializable)
  public
    type
      InnerAll = class;
      Arr1InnerAll = array of InnerAll;
      Arr2InnerAll = array of Arr1InnerAll;
      Arr3InnerAll = array of Arr2InnerAll;
      InnerBackRef = class;
      Arr1InnerBackRef = array of InnerBackRef;
      Arr2InnerBackRef = array of Arr1InnerBackRef;
      Arr3InnerBackRef = array of Arr2InnerBackRef;
      InnerBegin = class;
      Arr1InnerBegin = array of InnerBegin;
      Arr2InnerBegin = array of Arr1InnerBegin;
      Arr3InnerBegin = array of Arr2InnerBegin;
      InnerBehind = class;
      Arr1InnerBehind = array of InnerBehind;
      Arr2InnerBehind = array of Arr1InnerBehind;
      Arr3InnerBehind = array of Arr2InnerBehind;
      InnerBehindS = class;
      Arr1InnerBehindS = array of InnerBehindS;
      Arr2InnerBehindS = array of Arr1InnerBehindS;
      Arr3InnerBehindS = array of Arr2InnerBehindS;
      InnerBitClass = class;
      Arr1InnerBitClass = array of InnerBitClass;
      Arr2InnerBitClass = array of Arr1InnerBitClass;
      Arr3InnerBitClass = array of Arr2InnerBitClass;
      InnerBmpCharProperty = class;
      Arr1InnerBmpCharProperty = array of InnerBmpCharProperty;
      Arr2InnerBmpCharProperty = array of Arr1InnerBmpCharProperty;
      Arr3InnerBmpCharProperty = array of Arr2InnerBmpCharProperty;
      InnerBnM = class;
      Arr1InnerBnM = array of InnerBnM;
      Arr2InnerBnM = array of Arr1InnerBnM;
      Arr3InnerBnM = array of Arr2InnerBnM;
      InnerBnMS = class;
      Arr1InnerBnMS = array of InnerBnMS;
      Arr2InnerBnMS = array of Arr1InnerBnMS;
      Arr3InnerBnMS = array of Arr2InnerBnMS;
      InnerBound = class;
      Arr1InnerBound = array of InnerBound;
      Arr2InnerBound = array of Arr1InnerBound;
      Arr3InnerBound = array of Arr2InnerBound;
      InnerBranch = class;
      Arr1InnerBranch = array of InnerBranch;
      Arr2InnerBranch = array of Arr1InnerBranch;
      Arr3InnerBranch = array of Arr2InnerBranch;
      InnerBranchConn = class;
      Arr1InnerBranchConn = array of InnerBranchConn;
      Arr2InnerBranchConn = array of Arr1InnerBranchConn;
      Arr3InnerBranchConn = array of Arr2InnerBranchConn;
      InnerCIBackRef = class;
      Arr1InnerCIBackRef = array of InnerCIBackRef;
      Arr2InnerCIBackRef = array of Arr1InnerCIBackRef;
      Arr3InnerCIBackRef = array of Arr2InnerCIBackRef;
      InnerCaret = class;
      Arr1InnerCaret = array of InnerCaret;
      Arr2InnerCaret = array of Arr1InnerCaret;
      Arr3InnerCaret = array of Arr2InnerCaret;
      InnerCategory = class;
      Arr1InnerCategory = array of InnerCategory;
      Arr2InnerCategory = array of Arr1InnerCategory;
      Arr3InnerCategory = array of Arr2InnerCategory;
      InnerCharProperty = class;
      Arr1InnerCharProperty = array of InnerCharProperty;
      Arr2InnerCharProperty = array of Arr1InnerCharProperty;
      Arr3InnerCharProperty = array of Arr2InnerCharProperty;
      InnerConditional = class;
      Arr1InnerConditional = array of InnerConditional;
      Arr2InnerConditional = array of Arr1InnerConditional;
      Arr3InnerConditional = array of Arr2InnerConditional;
      InnerCtype = class;
      Arr1InnerCtype = array of InnerCtype;
      Arr2InnerCtype = array of Arr1InnerCtype;
      Arr3InnerCtype = array of Arr2InnerCtype;
      InnerCurly = class;
      Arr1InnerCurly = array of InnerCurly;
      Arr2InnerCurly = array of Arr1InnerCurly;
      Arr3InnerCurly = array of Arr2InnerCurly;
      InnerDollar = class;
      Arr1InnerDollar = array of InnerDollar;
      Arr2InnerDollar = array of Arr1InnerDollar;
      Arr3InnerDollar = array of Arr2InnerDollar;
      InnerDot = class;
      Arr1InnerDot = array of InnerDot;
      Arr2InnerDot = array of Arr1InnerDot;
      Arr3InnerDot = array of Arr2InnerDot;
      InnerEnd = class;
      Arr1InnerEnd = array of InnerEnd;
      Arr2InnerEnd = array of Arr1InnerEnd;
      Arr3InnerEnd = array of Arr2InnerEnd;
      InnerFirst = class;
      Arr1InnerFirst = array of InnerFirst;
      Arr2InnerFirst = array of Arr1InnerFirst;
      Arr3InnerFirst = array of Arr2InnerFirst;
      InnerGroupCurly = class;
      Arr1InnerGroupCurly = array of InnerGroupCurly;
      Arr2InnerGroupCurly = array of Arr1InnerGroupCurly;
      Arr3InnerGroupCurly = array of Arr2InnerGroupCurly;
      InnerGroupHead = class;
      Arr1InnerGroupHead = array of InnerGroupHead;
      Arr2InnerGroupHead = array of Arr1InnerGroupHead;
      Arr3InnerGroupHead = array of Arr2InnerGroupHead;
      InnerGroupRef = class;
      Arr1InnerGroupRef = array of InnerGroupRef;
      Arr2InnerGroupRef = array of Arr1InnerGroupRef;
      Arr3InnerGroupRef = array of Arr2InnerGroupRef;
      InnerGroupTail = class;
      Arr1InnerGroupTail = array of InnerGroupTail;
      Arr2InnerGroupTail = array of Arr1InnerGroupTail;
      Arr3InnerGroupTail = array of Arr2InnerGroupTail;
      InnerLastMatch = class;
      Arr1InnerLastMatch = array of InnerLastMatch;
      Arr2InnerLastMatch = array of Arr1InnerLastMatch;
      Arr3InnerLastMatch = array of Arr2InnerLastMatch;
      InnerLastNode = class;
      Arr1InnerLastNode = array of InnerLastNode;
      Arr2InnerLastNode = array of Arr1InnerLastNode;
      Arr3InnerLastNode = array of Arr2InnerLastNode;
      InnerLazyLoop = class;
      Arr1InnerLazyLoop = array of InnerLazyLoop;
      Arr2InnerLazyLoop = array of Arr1InnerLazyLoop;
      Arr3InnerLazyLoop = array of Arr2InnerLazyLoop;
      InnerLoop = class;
      Arr1InnerLoop = array of InnerLoop;
      Arr2InnerLoop = array of Arr1InnerLoop;
      Arr3InnerLoop = array of Arr2InnerLoop;
      InnerNeg = class;
      Arr1InnerNeg = array of InnerNeg;
      Arr2InnerNeg = array of Arr1InnerNeg;
      Arr3InnerNeg = array of Arr2InnerNeg;
      InnerNotBehind = class;
      Arr1InnerNotBehind = array of InnerNotBehind;
      Arr2InnerNotBehind = array of Arr1InnerNotBehind;
      Arr3InnerNotBehind = array of Arr2InnerNotBehind;
      InnerNotBehindS = class;
      Arr1InnerNotBehindS = array of InnerNotBehindS;
      Arr2InnerNotBehindS = array of Arr1InnerNotBehindS;
      Arr3InnerNotBehindS = array of Arr2InnerNotBehindS;
      InnerPos = class;
      Arr1InnerPos = array of InnerPos;
      Arr2InnerPos = array of Arr1InnerPos;
      Arr3InnerPos = array of Arr2InnerPos;
      InnerProlog = class;
      Arr1InnerProlog = array of InnerProlog;
      Arr2InnerProlog = array of Arr1InnerProlog;
      Arr3InnerProlog = array of Arr2InnerProlog;
      InnerQues = class;
      Arr1InnerQues = array of InnerQues;
      Arr2InnerQues = array of Arr1InnerQues;
      Arr3InnerQues = array of Arr2InnerQues;
      InnerSingle = class;
      Arr1InnerSingle = array of InnerSingle;
      Arr2InnerSingle = array of Arr1InnerSingle;
      Arr3InnerSingle = array of Arr2InnerSingle;
      InnerSingleI = class;
      Arr1InnerSingleI = array of InnerSingleI;
      Arr2InnerSingleI = array of Arr1InnerSingleI;
      Arr3InnerSingleI = array of Arr2InnerSingleI;
      InnerSingleS = class;
      Arr1InnerSingleS = array of InnerSingleS;
      Arr2InnerSingleS = array of Arr1InnerSingleS;
      Arr3InnerSingleS = array of Arr2InnerSingleS;
      InnerSingleU = class;
      Arr1InnerSingleU = array of InnerSingleU;
      Arr2InnerSingleU = array of Arr1InnerSingleU;
      Arr3InnerSingleU = array of Arr2InnerSingleU;
      InnerSlice = class;
      Arr1InnerSlice = array of InnerSlice;
      Arr2InnerSlice = array of Arr1InnerSlice;
      Arr3InnerSlice = array of Arr2InnerSlice;
      InnerSliceI = class;
      Arr1InnerSliceI = array of InnerSliceI;
      Arr2InnerSliceI = array of Arr1InnerSliceI;
      Arr3InnerSliceI = array of Arr2InnerSliceI;
      InnerSliceIS = class;
      Arr1InnerSliceIS = array of InnerSliceIS;
      Arr2InnerSliceIS = array of Arr1InnerSliceIS;
      Arr3InnerSliceIS = array of Arr2InnerSliceIS;
      InnerSliceNode = class;
      Arr1InnerSliceNode = array of InnerSliceNode;
      Arr2InnerSliceNode = array of Arr1InnerSliceNode;
      Arr3InnerSliceNode = array of Arr2InnerSliceNode;
      InnerSliceS = class;
      Arr1InnerSliceS = array of InnerSliceS;
      Arr2InnerSliceS = array of Arr1InnerSliceS;
      Arr3InnerSliceS = array of Arr2InnerSliceS;
      InnerSliceU = class;
      Arr1InnerSliceU = array of InnerSliceU;
      Arr2InnerSliceU = array of Arr1InnerSliceU;
      Arr3InnerSliceU = array of Arr2InnerSliceU;
      InnerSliceUS = class;
      Arr1InnerSliceUS = array of InnerSliceUS;
      Arr2InnerSliceUS = array of Arr1InnerSliceUS;
      Arr3InnerSliceUS = array of Arr2InnerSliceUS;
      InnerStart = class;
      Arr1InnerStart = array of InnerStart;
      Arr2InnerStart = array of Arr1InnerStart;
      Arr3InnerStart = array of Arr2InnerStart;
      InnerStartS = class;
      Arr1InnerStartS = array of InnerStartS;
      Arr2InnerStartS = array of Arr1InnerStartS;
      Arr3InnerStartS = array of Arr2InnerStartS;
      InnerUnixCaret = class;
      Arr1InnerUnixCaret = array of InnerUnixCaret;
      Arr2InnerUnixCaret = array of Arr1InnerUnixCaret;
      Arr3InnerUnixCaret = array of Arr2InnerUnixCaret;
      InnerUnixDollar = class;
      Arr1InnerUnixDollar = array of InnerUnixDollar;
      Arr2InnerUnixDollar = array of Arr1InnerUnixDollar;
      Arr3InnerUnixDollar = array of Arr2InnerUnixDollar;
      InnerUnixDot = class;
      Arr1InnerUnixDot = array of InnerUnixDot;
      Arr2InnerUnixDot = array of Arr1InnerUnixDot;
      Arr3InnerUnixDot = array of Arr2InnerUnixDot;
      InnerCharPropertyNames = class;
      Arr1InnerCharPropertyNames = array of InnerCharPropertyNames;
      Arr2InnerCharPropertyNames = array of Arr1InnerCharPropertyNames;
      Arr3InnerCharPropertyNames = array of Arr2InnerCharPropertyNames;
      InnerNode = class;
      Arr1InnerNode = array of InnerNode;
      Arr2InnerNode = array of Arr1InnerNode;
      Arr3InnerNode = array of Arr2InnerNode;
      InnerTreeInfo = class;
      Arr1InnerTreeInfo = array of InnerTreeInfo;
      Arr2InnerTreeInfo = array of Arr1InnerTreeInfo;
      Arr3InnerTreeInfo = array of Arr2InnerTreeInfo;
      InnerAll = class sealed external 'java.util.regex' name 'All' 
      end;

      InnerBackRef = class external 'java.util.regex' name 'BackRef' 
      end;

      InnerBegin = class sealed external 'java.util.regex' name 'Begin' 
      end;

      InnerBehind = class external 'java.util.regex' name 'Behind' 
      end;

      InnerBehindS = class sealed external 'java.util.regex' name 'BehindS' 
      end;

      InnerBitClass = class sealed external 'java.util.regex' name 'BitClass' 
      end;

      InnerBmpCharProperty = class abstract external 'java.util.regex' name 'BmpCharProperty' 
      end;

      InnerBnM = class external 'java.util.regex' name 'BnM' 
      end;

      InnerBnMS = class sealed external 'java.util.regex' name 'BnMS' 
      end;

      InnerBound = class sealed external 'java.util.regex' name 'Bound' 
      end;

      InnerBranch = class sealed external 'java.util.regex' name 'Branch' 
      end;

      InnerBranchConn = class sealed external 'java.util.regex' name 'BranchConn' 
      end;

      InnerCIBackRef = class external 'java.util.regex' name 'CIBackRef' 
      end;

      InnerCaret = class sealed external 'java.util.regex' name 'Caret' 
      end;

      InnerCategory = class sealed external 'java.util.regex' name 'Category' 
      end;

      InnerCharProperty = class abstract external 'java.util.regex' name 'CharProperty' 
      end;

      InnerConditional = class sealed external 'java.util.regex' name 'Conditional' 
      end;

      InnerCtype = class sealed external 'java.util.regex' name 'Ctype' 
      end;

      InnerCurly = class sealed external 'java.util.regex' name 'Curly' 
      end;

      InnerDollar = class sealed external 'java.util.regex' name 'Dollar' 
      end;

      InnerDot = class sealed external 'java.util.regex' name 'Dot' 
      end;

      InnerEnd = class sealed external 'java.util.regex' name 'End' 
      end;

      InnerFirst = class sealed external 'java.util.regex' name 'First' 
      end;

      InnerGroupCurly = class sealed external 'java.util.regex' name 'GroupCurly' 
      end;

      InnerGroupHead = class sealed external 'java.util.regex' name 'GroupHead' 
      end;

      InnerGroupRef = class sealed external 'java.util.regex' name 'GroupRef' 
      end;

      InnerGroupTail = class sealed external 'java.util.regex' name 'GroupTail' 
      end;

      InnerLastMatch = class sealed external 'java.util.regex' name 'LastMatch' 
      end;

      InnerLastNode = class external 'java.util.regex' name 'LastNode' 
      end;

      InnerLazyLoop = class sealed external 'java.util.regex' name 'LazyLoop' 
      end;

      InnerLoop = class external 'java.util.regex' name 'Loop' 
      end;

      InnerNeg = class sealed external 'java.util.regex' name 'Neg' 
      end;

      InnerNotBehind = class external 'java.util.regex' name 'NotBehind' 
      end;

      InnerNotBehindS = class sealed external 'java.util.regex' name 'NotBehindS' 
      end;

      InnerPos = class sealed external 'java.util.regex' name 'Pos' 
      end;

      InnerProlog = class sealed external 'java.util.regex' name 'Prolog' 
      end;

      InnerQues = class sealed external 'java.util.regex' name 'Ques' 
      end;

      InnerSingle = class sealed external 'java.util.regex' name 'Single' 
      end;

      InnerSingleI = class sealed external 'java.util.regex' name 'SingleI' 
      end;

      InnerSingleS = class sealed external 'java.util.regex' name 'SingleS' 
      end;

      InnerSingleU = class sealed external 'java.util.regex' name 'SingleU' 
      end;

      InnerSlice = class sealed external 'java.util.regex' name 'Slice' 
      end;

      InnerSliceI = class external 'java.util.regex' name 'SliceI' 
      end;

      InnerSliceIS = class external 'java.util.regex' name 'SliceIS' 
      end;

      InnerSliceNode = class external 'java.util.regex' name 'SliceNode' 
      end;

      InnerSliceS = class sealed external 'java.util.regex' name 'SliceS' 
      end;

      InnerSliceU = class sealed external 'java.util.regex' name 'SliceU' 
      end;

      InnerSliceUS = class sealed external 'java.util.regex' name 'SliceUS' 
      end;

      InnerStart = class external 'java.util.regex' name 'Start' 
      end;

      InnerStartS = class sealed external 'java.util.regex' name 'StartS' 
      end;

      InnerUnixCaret = class sealed external 'java.util.regex' name 'UnixCaret' 
      end;

      InnerUnixDollar = class sealed external 'java.util.regex' name 'UnixDollar' 
      end;

      InnerUnixDot = class sealed external 'java.util.regex' name 'UnixDot' 
      end;

      InnerCharPropertyNames = class external 'java.util.regex' name 'CharPropertyNames' 
      public
        type
          InnerCharPropertyFactory = class;
          Arr1InnerCharPropertyFactory = array of InnerCharPropertyFactory;
          Arr2InnerCharPropertyFactory = array of Arr1InnerCharPropertyFactory;
          Arr3InnerCharPropertyFactory = array of Arr2InnerCharPropertyFactory;
          InnerCloneableProperty = class;
          Arr1InnerCloneableProperty = array of InnerCloneableProperty;
          Arr2InnerCloneableProperty = array of Arr1InnerCloneableProperty;
          Arr3InnerCloneableProperty = array of Arr2InnerCloneableProperty;
          InnerCharPropertyFactory = class abstract external 'java.util.regex' name 'CharPropertyFactory' 
          end;

          InnerCloneableProperty = class abstract external 'java.util.regex' name 'CloneableProperty' 
          end;

      end;

      InnerNode = class external 'java.util.regex' name 'Node' 
      end;

      InnerTreeInfo = class sealed external 'java.util.regex' name 'TreeInfo' 
      end;

  public
    const
      UNIX_LINES = 1;
      CASE_INSENSITIVE = 2;
      COMMENTS = 4;
      MULTILINE = 8;
      LITERAL = 16;
      DOTALL = 32;
      UNICODE_CASE = 64;
      CANON_EQ = 128;
  public
    class function compile(para1: JLString): JURPattern; static; overload;
    class function compile(para1: JLString; para2: jint): JURPattern; static; overload;
    function pattern(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
    function matcher(para1: JLCharSequence): JURMatcher; overload; virtual;
    function flags(): jint; overload; virtual;
    class function matches(para1: JLString; para2: JLCharSequence): jboolean; static; overload;
    function split(para1: JLCharSequence; para2: jint): Arr1JLString; overload; virtual;
    function split(para1: JLCharSequence): Arr1JLString; overload; virtual;
    class function quote(para1: JLString): JLString; static; overload;
  end;

  JCSealedObject = class external 'javax.crypto' name 'SealedObject' (JLObject, JISerializable)
  strict protected
    var
      fencodedParams: Arr1jbyte; external name 'encodedParams';
  public
    constructor create(para1: JISerializable; para2: JCCipher); overload;  // throws java.io.IOException, javax.crypto.IllegalBlockSizeException
  strict protected
    constructor create(para1: JCSealedObject); overload;
  public
    function getAlgorithm(): JLString; overload; virtual; final;
    function getObject(para1: JSKey): JLObject; overload; virtual; final;  // throws java.io.IOException, java.lang.ClassNotFoundException, java.security.NoSuchAlgorithmException, java.security.InvalidKeyException
    function getObject(para1: JCCipher): JLObject; overload; virtual; final;  // throws java.io.IOException, java.lang.ClassNotFoundException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    function getObject(para1: JSKey; para2: JLString): JLObject; overload; virtual; final;  // throws java.io.IOException, java.lang.ClassNotFoundException, java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException, java.security.InvalidKeyException
  end;

  JMAttribute = class external 'javax.management' name 'Attribute' (JLObject, JISerializable)
  public
    constructor create(para1: JLString; para2: JLObject); overload;
    function getName(): JLString; overload; virtual;
    function getValue(): JLObject; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JMNotificationFilter = interface external 'javax.management' name 'NotificationFilter' (JISerializable)
    function isNotificationEnabled(para1: JMNotification): jboolean; overload;
  end;

  JMObjectInstance = class external 'javax.management' name 'ObjectInstance' (JLObject, JISerializable)
  public
    constructor create(para1: JLString; para2: JLString); overload;  // throws javax.management.MalformedObjectNameException
    constructor create(para1: JMObjectName; para2: JLString); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function getObjectName(): JMObjectName; overload; virtual;
    function getClassName(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JMQueryEval = class abstract external 'javax.management' name 'QueryEval' (JLObject, JISerializable)
  public
    constructor create(); overload;
    procedure setMBeanServer(para1: JMMBeanServer); overload; virtual;
    class function getMBeanServer(): JMMBeanServer; static; overload;
  end;

  JMQueryExp = interface external 'javax.management' name 'QueryExp' (JISerializable)
    function apply(para1: JMObjectName): jboolean; overload;  // throws javax.management.BadStringOperationException, javax.management.BadBinaryOpValueExpException, javax.management.BadAttributeValueExpException, javax.management.InvalidApplicationException
    procedure setMBeanServer(para1: JMMBeanServer); overload;
  end;

  JMValueExp = interface external 'javax.management' name 'ValueExp' (JISerializable)
    function apply(para1: JMObjectName): JMValueExp; overload;  // throws javax.management.BadStringOperationException, javax.management.BadBinaryOpValueExpException, javax.management.BadAttributeValueExpException, javax.management.InvalidApplicationException
    procedure setMBeanServer(para1: JMMBeanServer); overload;
  end;

  JMOOpenType = class abstract external 'javax.management.openmbean' name 'OpenType' (JLObject, JISerializable)
  public
    final class var
      fALLOWED_CLASSNAMES_LIST: JUList; external name 'ALLOWED_CLASSNAMES_LIST';
      fALLOWED_CLASSNAMES: Arr1JLString deprecated; external name 'ALLOWED_CLASSNAMES';
  strict protected
    constructor create(para1: JLString; para2: JLString; para3: JLString); overload;  // throws javax.management.openmbean.OpenDataException
  public
    function getClassName(): JLString; overload; virtual;
    function getTypeName(): JLString; overload; virtual;
    function getDescription(): JLString; overload; virtual;
    function isArray(): jboolean; overload; virtual;
    function isValue(para1: JLObject): jboolean; overload; virtual; abstract;
    function equals(para1: JLObject): jboolean; overload; virtual; abstract;
    function hashCode(): jint; overload; virtual; abstract;
    function toString(): JLString; overload; virtual; abstract;
  end;

  JMRRelationType = interface external 'javax.management.relation' name 'RelationType' (JISerializable)
    function getRelationTypeName(): JLString; overload;
    function getRoleInfos(): JUList; overload;
    function getRoleInfo(para1: JLString): JMRRoleInfo; overload;  // throws java.lang.IllegalArgumentException, javax.management.relation.RoleInfoNotFoundException
  end;

  JMRRole = class external 'javax.management.relation' name 'Role' (JLObject, JISerializable)
  public
    constructor create(para1: JLString; para2: JUList); overload;  // throws java.lang.IllegalArgumentException
    function getRoleName(): JLString; overload; virtual;
    function getRoleValue(): JUList; overload; virtual;
    procedure setRoleName(para1: JLString); overload; virtual;  // throws java.lang.IllegalArgumentException
    procedure setRoleValue(para1: JUList); overload; virtual;  // throws java.lang.IllegalArgumentException
    function toString(): JLString; overload; virtual;
    function clone(): JLObject; overload; virtual;
    class function roleValueToString(para1: JUList): JLString; static; overload;  // throws java.lang.IllegalArgumentException
  end;

  JMRRoleInfo = class external 'javax.management.relation' name 'RoleInfo' (JLObject, JISerializable)
  public
    const
      ROLE_CARDINALITY_INFINITY = -1;
  public
    constructor create(para1: JLString; para2: JLString; para3: jboolean; para4: jboolean; para5: jint; para6: jint; para7: JLString); overload;  // throws java.lang.IllegalArgumentException, javax.management.relation.InvalidRoleInfoException, java.lang.ClassNotFoundException, javax.management.NotCompliantMBeanException
    constructor create(para1: JLString; para2: JLString; para3: jboolean; para4: jboolean); overload;  // throws java.lang.IllegalArgumentException, java.lang.ClassNotFoundException, javax.management.NotCompliantMBeanException
    constructor create(para1: JLString; para2: JLString); overload;  // throws java.lang.IllegalArgumentException, java.lang.ClassNotFoundException, javax.management.NotCompliantMBeanException
    constructor create(para1: JMRRoleInfo); overload;  // throws java.lang.IllegalArgumentException
    function getName(): JLString; overload; virtual;
    function isReadable(): jboolean; overload; virtual;
    function isWritable(): jboolean; overload; virtual;
    function getDescription(): JLString; overload; virtual;
    function getMinDegree(): jint; overload; virtual;
    function getMaxDegree(): jint; overload; virtual;
    function getRefMBeanClassName(): JLString; overload; virtual;
    function checkMinDegree(para1: jint): jboolean; overload; virtual;
    function checkMaxDegree(para1: jint): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JMRRoleResult = class external 'javax.management.relation' name 'RoleResult' (JLObject, JISerializable)
  public
    constructor create(para1: JMRRoleList; para2: JMRRoleUnresolvedList); overload;
    function getRoles(): JMRRoleList; overload; virtual;
    function getRolesUnresolved(): JMRRoleUnresolvedList; overload; virtual;
    procedure setRoles(para1: JMRRoleList); overload; virtual;
    procedure setRolesUnresolved(para1: JMRRoleUnresolvedList); overload; virtual;
  end;

  JMRRoleUnresolved = class external 'javax.management.relation' name 'RoleUnresolved' (JLObject, JISerializable)
  public
    constructor create(para1: JLString; para2: JUList; para3: jint); overload;  // throws java.lang.IllegalArgumentException
    function getRoleName(): JLString; overload; virtual;
    function getRoleValue(): JUList; overload; virtual;
    function getProblemType(): jint; overload; virtual;
    procedure setRoleName(para1: JLString); overload; virtual;  // throws java.lang.IllegalArgumentException
    procedure setRoleValue(para1: JUList); overload; virtual;
    procedure setProblemType(para1: jint); overload; virtual;  // throws java.lang.IllegalArgumentException
    function clone(): JLObject; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JMRJMXServiceURL = class external 'javax.management.remote' name 'JMXServiceURL' (JLObject, JISerializable)
  public
    constructor create(para1: JLString); overload;  // throws java.net.MalformedURLException
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;  // throws java.net.MalformedURLException
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLString); overload;  // throws java.net.MalformedURLException
    function getProtocol(): JLString; overload; virtual;
    function getHost(): JLString; overload; virtual;
    function getPort(): jint; overload; virtual;
    function getURLPath(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JMRNotificationResult = class external 'javax.management.remote' name 'NotificationResult' (JLObject, JISerializable)
  public
    constructor create(para1: jlong; para2: jlong; para3: Arr1JMRTargetedNotification); overload;
    constructor create(para1: jlong; para2: jlong; const para3: array of JMRTargetedNotification); overload;
    function getEarliestSequenceNumber(): jlong; overload; virtual;
    function getNextSequenceNumber(): jlong; overload; virtual;
    function getTargetedNotifications(): Arr1JMRTargetedNotification; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JMRTargetedNotification = class external 'javax.management.remote' name 'TargetedNotification' (JLObject, JISerializable)
  public
    constructor create(para1: JMNotification; para2: JLInteger); overload;
    function getNotification(): JMNotification; overload; virtual;
    function getListenerID(): JLInteger; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JNNameClassPair = class external 'javax.naming' name 'NameClassPair' (JLObject, JISerializable)
  public
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: jboolean); overload;
    function getClassName(): JLString; overload; virtual;
    function getName(): JLString; overload; virtual;
    procedure setName(para1: JLString); overload; virtual;
    procedure setClassName(para1: JLString); overload; virtual;
    function isRelative(): jboolean; overload; virtual;
    procedure setRelative(para1: jboolean); overload; virtual;
    function getNameInNamespace(): JLString; overload; virtual;
    procedure setNameInNamespace(para1: JLString); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JNRefAddr = class abstract external 'javax.naming' name 'RefAddr' (JLObject, JISerializable)
  strict protected
    var
      faddrType: JLString; external name 'addrType';
  strict protected
    constructor create(para1: JLString); overload;
  public
    function getType(): JLString; overload; virtual;
    function getContent(): JLObject; overload; virtual; abstract;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JNDModificationItem = class external 'javax.naming.directory' name 'ModificationItem' (JLObject, JISerializable)
  public
    constructor create(para1: jint; para2: JNDAttribute); overload;
    function getModificationOp(): jint; overload; virtual;
    function getAttribute(): JNDAttribute; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JNDSearchControls = class external 'javax.naming.directory' name 'SearchControls' (JLObject, JISerializable)
  public
    const
      OBJECT_SCOPE = 0;
      ONELEVEL_SCOPE = 1;
      SUBTREE_SCOPE = 2;
  public
    constructor create(); overload;
    constructor create(para1: jint; para2: jlong; para3: jint; para4: Arr1JLString; para5: jboolean; para6: jboolean); overload;
    constructor create(para1: jint; para2: jlong; para3: jint; const para4: array of JLString; para5: jboolean; para6: jboolean); overload;
    function getSearchScope(): jint; overload; virtual;
    function getTimeLimit(): jint; overload; virtual;
    function getDerefLinkFlag(): jboolean; overload; virtual;
    function getReturningObjFlag(): jboolean; overload; virtual;
    function getCountLimit(): jlong; overload; virtual;
    function getReturningAttributes(): Arr1JLString; overload; virtual;
    procedure setSearchScope(para1: jint); overload; virtual;
    procedure setTimeLimit(para1: jint); overload; virtual;
    procedure setDerefLinkFlag(para1: jboolean); overload; virtual;
    procedure setReturningObjFlag(para1: jboolean); overload; virtual;
    procedure setCountLimit(para1: jlong); overload; virtual;
    procedure setReturningAttributes(para1: Arr1JLString); overload; virtual;
    procedure setReturningAttributes(var para1: array of JLString); overload; virtual;
  end;

  JNLControl = interface external 'javax.naming.ldap' name 'Control' (JISerializable)
    const
      CRITICAL = 1;
      NONCRITICAL = 0;
    function getID(): JLString; overload;
    function isCritical(): jboolean; overload;
    function getEncodedValue(): Arr1jbyte; overload;
  end;

  JNLExtendedRequest = interface external 'javax.naming.ldap' name 'ExtendedRequest' (JISerializable)
    function getID(): JLString; overload;
    function getEncodedValue(): Arr1jbyte; overload;
    function createExtendedResponse(para1: JLString; para2: Arr1jbyte; para3: jint; para4: jint): JNLExtendedResponse; overload;  // throws javax.naming.NamingException
    function createExtendedResponse(para1: JLString; var para2: array of jbyte; para3: jint; para4: jint): JNLExtendedResponse; overload;  // throws javax.naming.NamingException
  end;

  JNLExtendedResponse = interface external 'javax.naming.ldap' name 'ExtendedResponse' (JISerializable)
    function getID(): JLString; overload;
    function getEncodedValue(): Arr1jbyte; overload;
  end;

  JNSResolveResult = class external 'javax.naming.spi' name 'ResolveResult' (JLObject, JISerializable)
  strict protected
    var
      fresolvedObj: JLObject; external name 'resolvedObj';
      fremainingName: JNName; external name 'remainingName';
  strict protected
    constructor create(); overload;
  public
    constructor create(para1: JLObject; para2: JLString); overload;
    constructor create(para1: JLObject; para2: JNName); overload;
    function getRemainingName(): JNName; overload; virtual;
    function getResolvedObj(): JLObject; overload; virtual;
    procedure setRemainingName(para1: JNName); overload; virtual;
    procedure appendRemainingName(para1: JNName); overload; virtual;
    procedure appendRemainingComponent(para1: JLString); overload; virtual;
    procedure setResolvedObj(para1: JLObject); overload; virtual;
  end;

  JPAAttribute = interface external 'javax.print.attribute' name 'Attribute' (JISerializable)
    function getCategory(): JLClass; overload;
    function getName(): JLString; overload;
  end;

  JRCClassDesc = class external 'javax.rmi.CORBA' name 'ClassDesc' (JLObject, JISerializable)
  public
    constructor create(); overload;
  end;

  JSASubject = class sealed external 'javax.security.auth' name 'Subject' (JLObject, JISerializable)
  public
    type
      InnerClassSet = class;
      Arr1InnerClassSet = array of InnerClassSet;
      Arr2InnerClassSet = array of Arr1InnerClassSet;
      Arr3InnerClassSet = array of Arr2InnerClassSet;
      InnerSecureSet = class;
      Arr1InnerSecureSet = array of InnerSecureSet;
      Arr2InnerSecureSet = array of Arr1InnerSecureSet;
      Arr3InnerSecureSet = array of Arr2InnerSecureSet;
      InnerClassSet = class external 'javax.security.auth' name 'ClassSet' 
      end;

      InnerSecureSet = class external 'javax.security.auth' name 'SecureSet' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: jboolean; para2: JUSet; para3: JUSet; para4: JUSet); overload;
    procedure setReadOnly(); overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    class function getSubject(para1: JSAccessControlContext): JSASubject; static; overload;
    class function doAs(para1: JSASubject; para2: JSPrivilegedAction): JLObject; static; overload;
    class function doAs(para1: JSASubject; para2: JSPrivilegedExceptionAction): JLObject; static; overload;  // throws java.security.PrivilegedActionException
    class function doAsPrivileged(para1: JSASubject; para2: JSPrivilegedAction; para3: JSAccessControlContext): JLObject; static; overload;
    class function doAsPrivileged(para1: JSASubject; para2: JSPrivilegedExceptionAction; para3: JSAccessControlContext): JLObject; static; overload;  // throws java.security.PrivilegedActionException
    function getPrincipals(): JUSet; overload; virtual;
    function getPrincipals(para1: JLClass): JUSet; overload; virtual;
    function getPublicCredentials(): JUSet; overload; virtual;
    function getPrivateCredentials(): JUSet; overload; virtual;
    function getPublicCredentials(para1: JLClass): JUSet; overload; virtual;
    function getPrivateCredentials(para1: JLClass): JUSet; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JSATR = class sealed external 'javax.smartcardio' name 'ATR' (JLObject, JISerializable)
  public
    constructor create(para1: Arr1jbyte); overload;
    constructor create(const para1: array of jbyte); overload;
    function getBytes(): Arr1jbyte; overload; virtual;
    function getHistoricalBytes(): Arr1jbyte; overload; virtual;
    function toString(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JSCommandAPDU = class sealed external 'javax.smartcardio' name 'CommandAPDU' (JLObject, JISerializable)
  public
    constructor create(para1: Arr1jbyte); overload;
    constructor create(const para1: array of jbyte); overload;
    constructor create(para1: Arr1jbyte; para2: jint; para3: jint); overload;
    constructor create(const para1: array of jbyte; para2: jint; para3: jint); overload;
    constructor create(para1: JNByteBuffer); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jbyte); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; const para5: array of jbyte); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jbyte; para6: jint; para7: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; const para5: array of jbyte; para6: jint; para7: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jbyte; para6: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; const para5: array of jbyte; para6: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jbyte; para6: jint; para7: jint; para8: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; const para5: array of jbyte; para6: jint; para7: jint; para8: jint); overload;
    function getCLA(): jint; overload; virtual;
    function getINS(): jint; overload; virtual;
    function getP1(): jint; overload; virtual;
    function getP2(): jint; overload; virtual;
    function getNc(): jint; overload; virtual;
    function getData(): Arr1jbyte; overload; virtual;
    function getNe(): jint; overload; virtual;
    function getBytes(): Arr1jbyte; overload; virtual;
    function toString(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JSResponseAPDU = class sealed external 'javax.smartcardio' name 'ResponseAPDU' (JLObject, JISerializable)
  public
    constructor create(para1: Arr1jbyte); overload;
    constructor create(const para1: array of jbyte); overload;
    function getNr(): jint; overload; virtual;
    function getData(): Arr1jbyte; overload; virtual;
    function getSW1(): jint; overload; virtual;
    function getSW2(): jint; overload; virtual;
    function getSW(): jint; overload; virtual;
    function getBytes(): Arr1jbyte; overload; virtual;
    function toString(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JSActionMap = class external 'javax.swing' name 'ActionMap' (JLObject, JISerializable)
  public
    constructor create(); overload;
    procedure setParent(para1: JSActionMap); overload; virtual;
    function getParent(): JSActionMap; overload; virtual;
    procedure put(para1: JLObject; para2: JSAction); overload; virtual;
    function get(para1: JLObject): JSAction; overload; virtual;
    procedure remove(para1: JLObject); overload; virtual;
    procedure clear(); overload; virtual;
    function keys(): Arr1JLObject; overload; virtual;
    function size(): jint; overload; virtual;
    function allKeys(): Arr1JLObject; overload; virtual;
  end;

  JSButtonGroup = class external 'javax.swing' name 'ButtonGroup' (JLObject, JISerializable)
  strict protected
    var
      fbuttons: JUVector; external name 'buttons';
  public
    constructor create(); overload;
    procedure add(para1: JSAbstractButton); overload; virtual;
    procedure remove(para1: JSAbstractButton); overload; virtual;
    procedure clearSelection(); overload; virtual;
    function getElements(): JUEnumeration; overload; virtual;
    function getSelection(): JSButtonModel; overload; virtual;
    procedure setSelected(para1: JSButtonModel; para2: jboolean); overload; virtual;
    function isSelected(para1: JSButtonModel): jboolean; overload; virtual;
    function getButtonCount(): jint; overload; virtual;
  end;

  JSInputMap = class external 'javax.swing' name 'InputMap' (JLObject, JISerializable)
  public
    constructor create(); overload;
    procedure setParent(para1: JSInputMap); overload; virtual;
    function getParent(): JSInputMap; overload; virtual;
    procedure put(para1: JSKeyStroke; para2: JLObject); overload; virtual;
    function get(para1: JSKeyStroke): JLObject; overload; virtual;
    procedure remove(para1: JSKeyStroke); overload; virtual;
    procedure clear(); overload; virtual;
    function keys(): Arr1JSKeyStroke; overload; virtual;
    function size(): jint; overload; virtual;
    function allKeys(): Arr1JSKeyStroke; overload; virtual;
  end;

  JSSizeRequirements = class external 'javax.swing' name 'SizeRequirements' (JLObject, JISerializable)
  public
    var
      fminimum: jint; external name 'minimum';
      fpreferred: jint; external name 'preferred';
      fmaximum: jint; external name 'maximum';
      falignment: jfloat; external name 'alignment';
  public
    constructor create(); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jfloat); overload;
    function toString(): JLString; overload; virtual;
    class function getTiledSizeRequirements(para1: Arr1JSSizeRequirements): JSSizeRequirements; static; overload;
    class function getTiledSizeRequirements(var para1: array of JSSizeRequirements): JSSizeRequirements; static; overload;
    class function getAlignedSizeRequirements(para1: Arr1JSSizeRequirements): JSSizeRequirements; static; overload;
    class function getAlignedSizeRequirements(var para1: array of JSSizeRequirements): JSSizeRequirements; static; overload;
    class procedure calculateTiledPositions(para1: jint; para2: JSSizeRequirements; para3: Arr1JSSizeRequirements; para4: Arr1jint; para5: Arr1jint); static; overload;
    class procedure calculateTiledPositions(para1: jint; para2: JSSizeRequirements; var para3: array of JSSizeRequirements; var para4: array of jint; var para5: array of jint); static; overload;
    class procedure calculateTiledPositions(para1: jint; para2: JSSizeRequirements; para3: Arr1JSSizeRequirements; para4: Arr1jint; para5: Arr1jint; para6: jboolean); static; overload;
    class procedure calculateTiledPositions(para1: jint; para2: JSSizeRequirements; var para3: array of JSSizeRequirements; var para4: array of jint; var para5: array of jint; para6: jboolean); static; overload;
    class procedure calculateAlignedPositions(para1: jint; para2: JSSizeRequirements; para3: Arr1JSSizeRequirements; para4: Arr1jint; para5: Arr1jint); static; overload;
    class procedure calculateAlignedPositions(para1: jint; para2: JSSizeRequirements; var para3: array of JSSizeRequirements; var para4: array of jint; var para5: array of jint); static; overload;
    class procedure calculateAlignedPositions(para1: jint; para2: JSSizeRequirements; para3: Arr1JSSizeRequirements; para4: Arr1jint; para5: Arr1jint; para6: jboolean); static; overload;
    class procedure calculateAlignedPositions(para1: jint; para2: JSSizeRequirements; var para3: array of JSSizeRequirements; var para4: array of jint; var para5: array of jint; para6: jboolean); static; overload;
    class function adjustSizes(para1: jint; para2: Arr1JSSizeRequirements): Arr1jint; static; overload;
    class function adjustSizes(para1: jint; var para2: array of JSSizeRequirements): Arr1jint; static; overload;
  end;

  JSTimer = class external 'javax.swing' name 'Timer' (JLObject, JISerializable)
  public
    type
      InnerDoPostEvent = class;
      Arr1InnerDoPostEvent = array of InnerDoPostEvent;
      Arr2InnerDoPostEvent = array of Arr1InnerDoPostEvent;
      Arr3InnerDoPostEvent = array of Arr2InnerDoPostEvent;
      InnerDoPostEvent = class external 'javax.swing' name 'DoPostEvent' 
      end;

  strict protected
    var
      flistenerList: JSEEventListenerList; external name 'listenerList';
  public
    constructor create(para1: jint; para2: JAEActionListener); overload;
    procedure addActionListener(para1: JAEActionListener); overload; virtual;
    procedure removeActionListener(para1: JAEActionListener); overload; virtual;
    function getActionListeners(): Arr1JAEActionListener; overload; virtual;
  strict protected
    procedure fireActionPerformed(para1: JAEActionEvent); overload; virtual;
  public
    function getListeners(para1: JLClass): Arr1JUEventListener; overload; virtual;
    class procedure setLogTimers(para1: jboolean); static; overload;
    class function getLogTimers(): jboolean; static; overload;
    procedure setDelay(para1: jint); overload; virtual;
    function getDelay(): jint; overload; virtual;
    procedure setInitialDelay(para1: jint); overload; virtual;
    function getInitialDelay(): jint; overload; virtual;
    procedure setRepeats(para1: jboolean); overload; virtual;
    function isRepeats(): jboolean; overload; virtual;
    procedure setCoalesce(para1: jboolean); overload; virtual;
    function isCoalesce(): jboolean; overload; virtual;
    procedure setActionCommand(para1: JLString); overload; virtual;
    function getActionCommand(): JLString; overload; virtual;
    procedure start(); overload; virtual;
    function isRunning(): jboolean; overload; virtual;
    procedure stop(); overload; virtual;
    procedure restart(); overload; virtual;
  end;

  JSTransferHandler = class external 'javax.swing' name 'TransferHandler' (JLObject, JISerializable)
  public
    type
      InnerHasGetTransferHandler = interface;
      Arr1InnerHasGetTransferHandler = array of InnerHasGetTransferHandler;
      Arr2InnerHasGetTransferHandler = array of Arr1InnerHasGetTransferHandler;
      Arr3InnerHasGetTransferHandler = array of Arr2InnerHasGetTransferHandler;
      InnerDragHandler = class;
      Arr1InnerDragHandler = array of InnerDragHandler;
      Arr2InnerDragHandler = array of Arr1InnerDragHandler;
      Arr3InnerDragHandler = array of Arr2InnerDragHandler;
      InnerDropHandler = class;
      Arr1InnerDropHandler = array of InnerDropHandler;
      Arr2InnerDropHandler = array of Arr1InnerDropHandler;
      Arr3InnerDropHandler = array of Arr2InnerDropHandler;
      InnerPropertyTransferable = class;
      Arr1InnerPropertyTransferable = array of InnerPropertyTransferable;
      Arr2InnerPropertyTransferable = array of Arr1InnerPropertyTransferable;
      Arr3InnerPropertyTransferable = array of Arr2InnerPropertyTransferable;
      InnerSwingDragGestureRecognizer = class;
      Arr1InnerSwingDragGestureRecognizer = array of InnerSwingDragGestureRecognizer;
      Arr2InnerSwingDragGestureRecognizer = array of Arr1InnerSwingDragGestureRecognizer;
      Arr3InnerSwingDragGestureRecognizer = array of Arr2InnerSwingDragGestureRecognizer;
      InnerSwingDropTarget = class;
      Arr1InnerSwingDropTarget = array of InnerSwingDropTarget;
      Arr2InnerSwingDropTarget = array of Arr1InnerSwingDropTarget;
      Arr3InnerSwingDropTarget = array of Arr2InnerSwingDropTarget;
      InnerTransferAction = class;
      Arr1InnerTransferAction = array of InnerTransferAction;
      Arr2InnerTransferAction = array of Arr1InnerTransferAction;
      Arr3InnerTransferAction = array of Arr2InnerTransferAction;
      InnerHasGetTransferHandler = interface external 'javax.swing' name 'HasGetTransferHandler' 
      end;

      InnerDragHandler = class external 'javax.swing' name 'DragHandler' 
      end;

      InnerDropHandler = class external 'javax.swing' name 'DropHandler' 
      end;

      InnerPropertyTransferable = class external 'javax.swing' name 'PropertyTransferable' 
      end;

      InnerSwingDragGestureRecognizer = class external 'javax.swing' name 'SwingDragGestureRecognizer' 
      end;

      InnerSwingDropTarget = class external 'javax.swing' name 'SwingDropTarget' 
      end;

      InnerTransferAction = class external 'javax.swing' name 'TransferAction' 
      end;

  public
    type
      InnerDropLocation = class;
      Arr1InnerDropLocation = array of InnerDropLocation;
      Arr2InnerDropLocation = array of Arr1InnerDropLocation;
      Arr3InnerDropLocation = array of Arr2InnerDropLocation;
      InnerTransferSupport = class;
      Arr1InnerTransferSupport = array of InnerTransferSupport;
      Arr2InnerTransferSupport = array of Arr1InnerTransferSupport;
      Arr3InnerTransferSupport = array of Arr2InnerTransferSupport;
      InnerDropLocation = class external 'javax.swing' name 'DropLocation' (JLObject)
      strict protected
        constructor create(para1: JAPoint); overload;
      public
        function getDropPoint(): JAPoint; overload; virtual; final;
        function toString(): JLString; overload; virtual;
      end;

      InnerTransferSupport = class sealed external 'javax.swing' name 'TransferSupport' (JLObject)
      public
        constructor create(para1: JAComponent; para2: JADTransferable); overload;
        function isDrop(): jboolean; overload; virtual;
        function getComponent(): JAComponent; overload; virtual;
        function getDropLocation(): JSTransferHandler.InnerDropLocation; overload; virtual;
        procedure setShowDropLocation(para1: jboolean); overload; virtual;
        procedure setDropAction(para1: jint); overload; virtual;
        function getDropAction(): jint; overload; virtual;
        function getUserDropAction(): jint; overload; virtual;
        function getSourceDropActions(): jint; overload; virtual;
        function getDataFlavors(): Arr1JADDataFlavor; overload; virtual;
        function isDataFlavorSupported(para1: JADDataFlavor): jboolean; overload; virtual;
        function getTransferable(): JADTransferable; overload; virtual;
      end;

  public
    const
      NONE = 0;
      COPY = 1;
      MOVE = 2;
      COPY_OR_MOVE = 3;
      LINK = 1073741824;
  public
    class function getCutAction(): JSAction; static; overload;
    class function getCopyAction(): JSAction; static; overload;
    class function getPasteAction(): JSAction; static; overload;
    constructor create(para1: JLString); overload;
  strict protected
    constructor create(); overload;
  public
    procedure exportAsDrag(para1: JSJComponent; para2: JAEInputEvent; para3: jint); overload; virtual;
    procedure exportToClipboard(para1: JSJComponent; para2: JADClipboard; para3: jint); overload; virtual;  // throws java.lang.IllegalStateException
    function importData(para1: JSTransferHandler.InnerTransferSupport): jboolean; overload; virtual;
    function importData(para1: JSJComponent; para2: JADTransferable): jboolean; overload; virtual;
    function canImport(para1: JSTransferHandler.InnerTransferSupport): jboolean; overload; virtual;
    function canImport(para1: JSJComponent; para2: Arr1JADDataFlavor): jboolean; overload; virtual;
    function canImport(para1: JSJComponent; var para2: array of JADDataFlavor): jboolean; overload; virtual;
    function getSourceActions(para1: JSJComponent): jint; overload; virtual;
    function getVisualRepresentation(para1: JADTransferable): JSIcon; overload; virtual;
  strict protected
    function createTransferable(para1: JSJComponent): JADTransferable; overload; virtual;
    procedure exportDone(para1: JSJComponent; para2: JADTransferable; para3: jint); overload; virtual;
  end;

  JSUIManager = class external 'javax.swing' name 'UIManager' (JLObject, JISerializable)
  public
    type
      InnerLAFState = class;
      Arr1InnerLAFState = array of InnerLAFState;
      Arr2InnerLAFState = array of Arr1InnerLAFState;
      Arr3InnerLAFState = array of Arr2InnerLAFState;
      InnerLAFState = class external 'javax.swing' name 'LAFState' 
      end;

  public
    type
      InnerLookAndFeelInfo = class;
      Arr1InnerLookAndFeelInfo = array of InnerLookAndFeelInfo;
      Arr2InnerLookAndFeelInfo = array of Arr1InnerLookAndFeelInfo;
      Arr3InnerLookAndFeelInfo = array of Arr2InnerLookAndFeelInfo;
      InnerLookAndFeelInfo = class external 'javax.swing' name 'LookAndFeelInfo' (JLObject)
      public
        constructor create(para1: JLString; para2: JLString); overload;
        function getName(): JLString; overload; virtual;
        function getClassName(): JLString; overload; virtual;
        function toString(): JLString; overload; virtual;
      end;

  public
    constructor create(); overload;
    class function getInstalledLookAndFeels(): JSUIManager.Arr1InnerLookAndFeelInfo; static; overload;
    class procedure setInstalledLookAndFeels(para1: JSUIManager.Arr1InnerLookAndFeelInfo); static; overload;  // throws java.lang.SecurityException
    class procedure setInstalledLookAndFeels(var para1: array of JSUIManager.InnerLookAndFeelInfo); static; overload;  // throws java.lang.SecurityException
    class procedure installLookAndFeel(para1: JSUIManager.InnerLookAndFeelInfo); static; overload;
    class procedure installLookAndFeel(para1: JLString; para2: JLString); static; overload;
    class function getLookAndFeel(): JSLookAndFeel; static; overload;
    class procedure setLookAndFeel(para1: JSLookAndFeel); static; overload;  // throws javax.swing.UnsupportedLookAndFeelException
    class procedure setLookAndFeel(para1: JLString); static; overload;  // throws java.lang.ClassNotFoundException, java.lang.InstantiationException, java.lang.IllegalAccessException, javax.swing.UnsupportedLookAndFeelException
    class function getSystemLookAndFeelClassName(): JLString; static; overload;
    class function getCrossPlatformLookAndFeelClassName(): JLString; static; overload;
    class function getDefaults(): JSUIDefaults; static; overload;
    class function getFont(para1: JLObject): JAFont; static; overload;
    class function getFont(para1: JLObject; para2: JULocale): JAFont; static; overload;
    class function getColor(para1: JLObject): JAColor; static; overload;
    class function getColor(para1: JLObject; para2: JULocale): JAColor; static; overload;
    class function getIcon(para1: JLObject): JSIcon; static; overload;
    class function getIcon(para1: JLObject; para2: JULocale): JSIcon; static; overload;
    class function getBorder(para1: JLObject): JSBBorder; static; overload;
    class function getBorder(para1: JLObject; para2: JULocale): JSBBorder; static; overload;
    class function getString(para1: JLObject): JLString; static; overload;
    class function getString(para1: JLObject; para2: JULocale): JLString; static; overload;
    class function getInt(para1: JLObject): jint; static; overload;
    class function getInt(para1: JLObject; para2: JULocale): jint; static; overload;
    class function getBoolean(para1: JLObject): jboolean; static; overload;
    class function getBoolean(para1: JLObject; para2: JULocale): jboolean; static; overload;
    class function getInsets(para1: JLObject): JAInsets; static; overload;
    class function getInsets(para1: JLObject; para2: JULocale): JAInsets; static; overload;
    class function getDimension(para1: JLObject): JADimension; static; overload;
    class function getDimension(para1: JLObject; para2: JULocale): JADimension; static; overload;
    class function get(para1: JLObject): JLObject; static; overload;
    class function get(para1: JLObject; para2: JULocale): JLObject; static; overload;
    class function put(para1: JLObject; para2: JLObject): JLObject; static; overload;
    class function getUI(para1: JSJComponent): JSPComponentUI; static; overload;
    class function getLookAndFeelDefaults(): JSUIDefaults; static; overload;
    class procedure addAuxiliaryLookAndFeel(para1: JSLookAndFeel); static; overload;
    class function removeAuxiliaryLookAndFeel(para1: JSLookAndFeel): jboolean; static; overload;
    class function getAuxiliaryLookAndFeels(): Arr1JSLookAndFeel; static; overload;
    class procedure addPropertyChangeListener(para1: JBPropertyChangeListener); static; overload;
    class procedure removePropertyChangeListener(para1: JBPropertyChangeListener); static; overload;
    class function getPropertyChangeListeners(): Arr1JBPropertyChangeListener; static; overload;
  end;

  JSEEventListenerList = class external 'javax.swing.event' name 'EventListenerList' (JLObject, JISerializable)
  strict protected
    var
      flistenerList: Arr1JLObject; external name 'listenerList';
  public
    constructor create(); overload;
    function getListenerList(): Arr1JLObject; overload; virtual;
    function getListeners(para1: JLClass): Arr1JUEventListener; overload; virtual;
    function getListenerCount(): jint; overload; virtual;
    function getListenerCount(para1: JLClass): jint; overload; virtual;
    procedure add(para1: JLClass; para2: JUEventListener); overload; virtual;
    procedure remove(para1: JLClass; para2: JUEventListener); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSPBBasicIconFactory = class external 'javax.swing.plaf.basic' name 'BasicIconFactory' (JLObject, JISerializable)
  public
    type
      InnerCheckBoxIcon = class;
      Arr1InnerCheckBoxIcon = array of InnerCheckBoxIcon;
      Arr2InnerCheckBoxIcon = array of Arr1InnerCheckBoxIcon;
      Arr3InnerCheckBoxIcon = array of Arr2InnerCheckBoxIcon;
      InnerEmptyFrameIcon = class;
      Arr1InnerEmptyFrameIcon = array of InnerEmptyFrameIcon;
      Arr2InnerEmptyFrameIcon = array of Arr1InnerEmptyFrameIcon;
      Arr3InnerEmptyFrameIcon = array of Arr2InnerEmptyFrameIcon;
      InnerCheckBoxMenuItemIcon = class;
      Arr1InnerCheckBoxMenuItemIcon = array of InnerCheckBoxMenuItemIcon;
      Arr2InnerCheckBoxMenuItemIcon = array of Arr1InnerCheckBoxMenuItemIcon;
      Arr3InnerCheckBoxMenuItemIcon = array of Arr2InnerCheckBoxMenuItemIcon;
      InnerMenuArrowIcon = class;
      Arr1InnerMenuArrowIcon = array of InnerMenuArrowIcon;
      Arr2InnerMenuArrowIcon = array of Arr1InnerMenuArrowIcon;
      Arr3InnerMenuArrowIcon = array of Arr2InnerMenuArrowIcon;
      InnerMenuItemArrowIcon = class;
      Arr1InnerMenuItemArrowIcon = array of InnerMenuItemArrowIcon;
      Arr2InnerMenuItemArrowIcon = array of Arr1InnerMenuItemArrowIcon;
      Arr3InnerMenuItemArrowIcon = array of Arr2InnerMenuItemArrowIcon;
      InnerMenuItemCheckIcon = class;
      Arr1InnerMenuItemCheckIcon = array of InnerMenuItemCheckIcon;
      Arr2InnerMenuItemCheckIcon = array of Arr1InnerMenuItemCheckIcon;
      Arr3InnerMenuItemCheckIcon = array of Arr2InnerMenuItemCheckIcon;
      InnerRadioButtonIcon = class;
      Arr1InnerRadioButtonIcon = array of InnerRadioButtonIcon;
      Arr2InnerRadioButtonIcon = array of Arr1InnerRadioButtonIcon;
      Arr3InnerRadioButtonIcon = array of Arr2InnerRadioButtonIcon;
      InnerRadioButtonMenuItemIcon = class;
      Arr1InnerRadioButtonMenuItemIcon = array of InnerRadioButtonMenuItemIcon;
      Arr2InnerRadioButtonMenuItemIcon = array of Arr1InnerRadioButtonMenuItemIcon;
      Arr3InnerRadioButtonMenuItemIcon = array of Arr2InnerRadioButtonMenuItemIcon;
      InnerCheckBoxIcon = class external 'javax.swing.plaf.basic' name 'CheckBoxIcon' 
      end;

      InnerEmptyFrameIcon = class external 'javax.swing.plaf.basic' name 'EmptyFrameIcon' 
      end;

      InnerCheckBoxMenuItemIcon = class external 'javax.swing.plaf.basic' name 'CheckBoxMenuItemIcon' 
      end;

      InnerMenuArrowIcon = class external 'javax.swing.plaf.basic' name 'MenuArrowIcon' 
      end;

      InnerMenuItemArrowIcon = class external 'javax.swing.plaf.basic' name 'MenuItemArrowIcon' 
      end;

      InnerMenuItemCheckIcon = class external 'javax.swing.plaf.basic' name 'MenuItemCheckIcon' 
      end;

      InnerRadioButtonIcon = class external 'javax.swing.plaf.basic' name 'RadioButtonIcon' 
      end;

      InnerRadioButtonMenuItemIcon = class external 'javax.swing.plaf.basic' name 'RadioButtonMenuItemIcon' 
      end;

  public
    constructor create(); overload;
    class function getMenuItemCheckIcon(): JSIcon; static; overload;
    class function getMenuItemArrowIcon(): JSIcon; static; overload;
    class function getMenuArrowIcon(): JSIcon; static; overload;
    class function getCheckBoxIcon(): JSIcon; static; overload;
    class function getRadioButtonIcon(): JSIcon; static; overload;
    class function getCheckBoxMenuItemIcon(): JSIcon; static; overload;
    class function getRadioButtonMenuItemIcon(): JSIcon; static; overload;
    class function createEmptyFrameIcon(): JSIcon; static; overload;
  end;

  JSTTableColumn = class external 'javax.swing.table' name 'TableColumn' (JLObject, JISerializable)
  public
    const
      COLUMN_WIDTH_PROPERTY = 'columWidth';
      HEADER_VALUE_PROPERTY = 'headerValue';
      HEADER_RENDERER_PROPERTY = 'headerRenderer';
      CELL_RENDERER_PROPERTY = 'cellRenderer';
  strict protected
    var
      fmodelIndex: jint; external name 'modelIndex';
      fidentifier: JLObject; external name 'identifier';
      fwidth: jint; external name 'width';
      fminWidth: jint; external name 'minWidth';
      fmaxWidth: jint; external name 'maxWidth';
      fheaderRenderer: JSTTableCellRenderer; external name 'headerRenderer';
      fheaderValue: JLObject; external name 'headerValue';
      fcellRenderer: JSTTableCellRenderer; external name 'cellRenderer';
      fcellEditor: JSTTableCellEditor; external name 'cellEditor';
      fisResizable: jboolean; external name 'isResizable';
      fresizedPostingDisableCount: jint deprecated; external name 'resizedPostingDisableCount';
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jint); overload;
    constructor create(para1: jint; para2: jint; para3: JSTTableCellRenderer; para4: JSTTableCellEditor); overload;
    procedure setModelIndex(para1: jint); overload; virtual;
    function getModelIndex(): jint; overload; virtual;
    procedure setIdentifier(para1: JLObject); overload; virtual;
    function getIdentifier(): JLObject; overload; virtual;
    procedure setHeaderValue(para1: JLObject); overload; virtual;
    function getHeaderValue(): JLObject; overload; virtual;
    procedure setHeaderRenderer(para1: JSTTableCellRenderer); overload; virtual;
    function getHeaderRenderer(): JSTTableCellRenderer; overload; virtual;
    procedure setCellRenderer(para1: JSTTableCellRenderer); overload; virtual;
    function getCellRenderer(): JSTTableCellRenderer; overload; virtual;
    procedure setCellEditor(para1: JSTTableCellEditor); overload; virtual;
    function getCellEditor(): JSTTableCellEditor; overload; virtual;
    procedure setWidth(para1: jint); overload; virtual;
    function getWidth(): jint; overload; virtual;
    procedure setPreferredWidth(para1: jint); overload; virtual;
    function getPreferredWidth(): jint; overload; virtual;
    procedure setMinWidth(para1: jint); overload; virtual;
    function getMinWidth(): jint; overload; virtual;
    procedure setMaxWidth(para1: jint); overload; virtual;
    function getMaxWidth(): jint; overload; virtual;
    procedure setResizable(para1: jboolean); overload; virtual;
    function getResizable(): jboolean; overload; virtual;
    procedure sizeWidthToFit(); overload; virtual;
    procedure disableResizedPosting(); overload; virtual;
    procedure enableResizedPosting(); overload; virtual;
    procedure addPropertyChangeListener(para1: JBPropertyChangeListener); overload; virtual;
    procedure removePropertyChangeListener(para1: JBPropertyChangeListener); overload; virtual;
    function getPropertyChangeListeners(): Arr1JBPropertyChangeListener; overload; virtual;
  strict protected
    function createDefaultHeaderRenderer(): JSTTableCellRenderer; overload; virtual;
  end;

  JSTGapVector = class abstract external 'javax.swing.text' name 'GapVector' (JLObject, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
  strict protected
    function allocateArray(para1: jint): JLObject; overload; virtual; abstract;
    function getArrayLength(): jint; overload; virtual; abstract;
    function getArray(): JLObject; overload; virtual; final;
    function getGapStart(): jint; overload; virtual; final;
    function getGapEnd(): jint; overload; virtual; final;
    procedure replace(para1: jint; para2: jint; para3: JLObject; para4: jint); overload; virtual;
    procedure shiftEnd(para1: jint); overload; virtual;
    procedure shiftGap(para1: jint); overload; virtual;
    procedure shiftGapStartDown(para1: jint); overload; virtual;
    procedure shiftGapEndUp(para1: jint); overload; virtual;
  end;

  JSTTabSet = class external 'javax.swing.text' name 'TabSet' (JLObject, JISerializable)
  public
    constructor create(para1: Arr1JSTTabStop); overload;
    constructor create(const para1: array of JSTTabStop); overload;
    function getTabCount(): jint; overload; virtual;
    function getTab(para1: jint): JSTTabStop; overload; virtual;
    function getTabAfter(para1: jfloat): JSTTabStop; overload; virtual;
    function getTabIndex(para1: JSTTabStop): jint; overload; virtual;
    function getTabIndexAfter(para1: jfloat): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSTTabStop = class external 'javax.swing.text' name 'TabStop' (JLObject, JISerializable)
  public
    const
      ALIGN_LEFT = 0;
      ALIGN_RIGHT = 1;
      ALIGN_CENTER = 2;
      ALIGN_DECIMAL = 4;
      ALIGN_BAR = 5;
      LEAD_NONE = 0;
      LEAD_DOTS = 1;
      LEAD_HYPHENS = 2;
      LEAD_UNDERLINE = 3;
      LEAD_THICKLINE = 4;
      LEAD_EQUALS = 5;
  public
    constructor create(para1: jfloat); overload;
    constructor create(para1: jfloat; para2: jint; para3: jint); overload;
    function getPosition(): jfloat; overload; virtual;
    function getAlignment(): jint; overload; virtual;
    function getLeader(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSTHCSS = class external 'javax.swing.text.html' name 'CSS' (JLObject, JISerializable)
  public
    type
      InnerLayoutIterator = interface;
      Arr1InnerLayoutIterator = array of InnerLayoutIterator;
      Arr2InnerLayoutIterator = array of Arr1InnerLayoutIterator;
      Arr3InnerLayoutIterator = array of Arr2InnerLayoutIterator;
      InnerShorthandBackgroundParser = class;
      Arr1InnerShorthandBackgroundParser = array of InnerShorthandBackgroundParser;
      Arr2InnerShorthandBackgroundParser = array of Arr1InnerShorthandBackgroundParser;
      Arr3InnerShorthandBackgroundParser = array of Arr2InnerShorthandBackgroundParser;
      InnerShorthandFontParser = class;
      Arr1InnerShorthandFontParser = array of InnerShorthandFontParser;
      Arr2InnerShorthandFontParser = array of Arr1InnerShorthandFontParser;
      Arr3InnerShorthandFontParser = array of Arr2InnerShorthandFontParser;
      InnerShorthandMarginParser = class;
      Arr1InnerShorthandMarginParser = array of InnerShorthandMarginParser;
      Arr2InnerShorthandMarginParser = array of Arr1InnerShorthandMarginParser;
      Arr3InnerShorthandMarginParser = array of Arr2InnerShorthandMarginParser;
      InnerValue = class;
      Arr1InnerValue = array of InnerValue;
      Arr2InnerValue = array of Arr1InnerValue;
      Arr3InnerValue = array of Arr2InnerValue;
      InnerBackgroundImage = class;
      Arr1InnerBackgroundImage = array of InnerBackgroundImage;
      Arr2InnerBackgroundImage = array of Arr1InnerBackgroundImage;
      Arr3InnerBackgroundImage = array of Arr2InnerBackgroundImage;
      InnerBackgroundPosition = class;
      Arr1InnerBackgroundPosition = array of InnerBackgroundPosition;
      Arr2InnerBackgroundPosition = array of Arr1InnerBackgroundPosition;
      Arr3InnerBackgroundPosition = array of Arr2InnerBackgroundPosition;
      InnerBorderStyle = class;
      Arr1InnerBorderStyle = array of InnerBorderStyle;
      Arr2InnerBorderStyle = array of Arr1InnerBorderStyle;
      Arr3InnerBorderStyle = array of Arr2InnerBorderStyle;
      InnerBorderWidthValue = class;
      Arr1InnerBorderWidthValue = array of InnerBorderWidthValue;
      Arr2InnerBorderWidthValue = array of Arr1InnerBorderWidthValue;
      Arr3InnerBorderWidthValue = array of Arr2InnerBorderWidthValue;
      InnerColorValue = class;
      Arr1InnerColorValue = array of InnerColorValue;
      Arr2InnerColorValue = array of Arr1InnerColorValue;
      Arr3InnerColorValue = array of Arr2InnerColorValue;
      InnerCssValueMapper = class;
      Arr1InnerCssValueMapper = array of InnerCssValueMapper;
      Arr2InnerCssValueMapper = array of Arr1InnerCssValueMapper;
      Arr3InnerCssValueMapper = array of Arr2InnerCssValueMapper;
      InnerFontFamily = class;
      Arr1InnerFontFamily = array of InnerFontFamily;
      Arr2InnerFontFamily = array of Arr1InnerFontFamily;
      Arr3InnerFontFamily = array of Arr2InnerFontFamily;
      InnerFontSize = class;
      Arr1InnerFontSize = array of InnerFontSize;
      Arr2InnerFontSize = array of Arr1InnerFontSize;
      Arr3InnerFontSize = array of Arr2InnerFontSize;
      InnerFontWeight = class;
      Arr1InnerFontWeight = array of InnerFontWeight;
      Arr2InnerFontWeight = array of Arr1InnerFontWeight;
      Arr3InnerFontWeight = array of Arr2InnerFontWeight;
      InnerLengthValue = class;
      Arr1InnerLengthValue = array of InnerLengthValue;
      Arr2InnerLengthValue = array of Arr1InnerLengthValue;
      Arr3InnerLengthValue = array of Arr2InnerLengthValue;
      InnerStringValue = class;
      Arr1InnerStringValue = array of InnerStringValue;
      Arr2InnerStringValue = array of Arr1InnerStringValue;
      Arr3InnerStringValue = array of Arr2InnerStringValue;
      InnerCssValue = class;
      Arr1InnerCssValue = array of InnerCssValue;
      Arr2InnerCssValue = array of Arr1InnerCssValue;
      Arr3InnerCssValue = array of Arr2InnerCssValue;
      InnerLengthUnit = class;
      Arr1InnerLengthUnit = array of InnerLengthUnit;
      Arr2InnerLengthUnit = array of Arr1InnerLengthUnit;
      Arr3InnerLengthUnit = array of Arr2InnerLengthUnit;
      InnerLayoutIterator = interface external 'javax.swing.text.html' name 'LayoutIterator' 
      end;

      InnerShorthandBackgroundParser = class external 'javax.swing.text.html' name 'ShorthandBackgroundParser' 
      end;

      InnerShorthandFontParser = class external 'javax.swing.text.html' name 'ShorthandFontParser' 
      end;

      InnerShorthandMarginParser = class external 'javax.swing.text.html' name 'ShorthandMarginParser' 
      end;

      InnerValue = class sealed external 'javax.swing.text.html' name 'Value' 
      end;

      InnerBackgroundImage = class external 'javax.swing.text.html' name 'BackgroundImage' 
      end;

      InnerBackgroundPosition = class external 'javax.swing.text.html' name 'BackgroundPosition' 
      end;

      InnerBorderStyle = class external 'javax.swing.text.html' name 'BorderStyle' 
      end;

      InnerBorderWidthValue = class external 'javax.swing.text.html' name 'BorderWidthValue' 
      end;

      InnerColorValue = class external 'javax.swing.text.html' name 'ColorValue' 
      end;

      InnerCssValueMapper = class external 'javax.swing.text.html' name 'CssValueMapper' 
      end;

      InnerFontFamily = class external 'javax.swing.text.html' name 'FontFamily' 
      end;

      InnerFontSize = class external 'javax.swing.text.html' name 'FontSize' 
      end;

      InnerFontWeight = class external 'javax.swing.text.html' name 'FontWeight' 
      end;

      InnerLengthValue = class external 'javax.swing.text.html' name 'LengthValue' 
      end;

      InnerStringValue = class external 'javax.swing.text.html' name 'StringValue' 
      end;

      InnerCssValue = class external 'javax.swing.text.html' name 'CssValue' 
      end;

      InnerLengthUnit = class external 'javax.swing.text.html' name 'LengthUnit' 
      end;

  public
    type
      InnerAttribute = class;
      Arr1InnerAttribute = array of InnerAttribute;
      Arr2InnerAttribute = array of Arr1InnerAttribute;
      Arr3InnerAttribute = array of Arr2InnerAttribute;
      InnerAttribute = class sealed external 'javax.swing.text.html' name 'Attribute' (JLObject)
      public
        final class var
          fBACKGROUND: JSTHCSS.InnerAttribute; external name 'BACKGROUND';
          fBACKGROUND_ATTACHMENT: JSTHCSS.InnerAttribute; external name 'BACKGROUND_ATTACHMENT';
          fBACKGROUND_COLOR: JSTHCSS.InnerAttribute; external name 'BACKGROUND_COLOR';
          fBACKGROUND_IMAGE: JSTHCSS.InnerAttribute; external name 'BACKGROUND_IMAGE';
          fBACKGROUND_POSITION: JSTHCSS.InnerAttribute; external name 'BACKGROUND_POSITION';
          fBACKGROUND_REPEAT: JSTHCSS.InnerAttribute; external name 'BACKGROUND_REPEAT';
          fBORDER: JSTHCSS.InnerAttribute; external name 'BORDER';
          fBORDER_BOTTOM: JSTHCSS.InnerAttribute; external name 'BORDER_BOTTOM';
          fBORDER_BOTTOM_WIDTH: JSTHCSS.InnerAttribute; external name 'BORDER_BOTTOM_WIDTH';
          fBORDER_COLOR: JSTHCSS.InnerAttribute; external name 'BORDER_COLOR';
          fBORDER_LEFT: JSTHCSS.InnerAttribute; external name 'BORDER_LEFT';
          fBORDER_LEFT_WIDTH: JSTHCSS.InnerAttribute; external name 'BORDER_LEFT_WIDTH';
          fBORDER_RIGHT: JSTHCSS.InnerAttribute; external name 'BORDER_RIGHT';
          fBORDER_RIGHT_WIDTH: JSTHCSS.InnerAttribute; external name 'BORDER_RIGHT_WIDTH';
          fBORDER_STYLE: JSTHCSS.InnerAttribute; external name 'BORDER_STYLE';
          fBORDER_TOP: JSTHCSS.InnerAttribute; external name 'BORDER_TOP';
          fBORDER_TOP_WIDTH: JSTHCSS.InnerAttribute; external name 'BORDER_TOP_WIDTH';
          fBORDER_WIDTH: JSTHCSS.InnerAttribute; external name 'BORDER_WIDTH';
          fCLEAR: JSTHCSS.InnerAttribute; external name 'CLEAR';
          fCOLOR: JSTHCSS.InnerAttribute; external name 'COLOR';
          fDISPLAY: JSTHCSS.InnerAttribute; external name 'DISPLAY';
          fFLOAT: JSTHCSS.InnerAttribute; external name 'FLOAT';
          fFONT: JSTHCSS.InnerAttribute; external name 'FONT';
          fFONT_FAMILY: JSTHCSS.InnerAttribute; external name 'FONT_FAMILY';
          fFONT_SIZE: JSTHCSS.InnerAttribute; external name 'FONT_SIZE';
          fFONT_STYLE: JSTHCSS.InnerAttribute; external name 'FONT_STYLE';
          fFONT_VARIANT: JSTHCSS.InnerAttribute; external name 'FONT_VARIANT';
          fFONT_WEIGHT: JSTHCSS.InnerAttribute; external name 'FONT_WEIGHT';
          fHEIGHT: JSTHCSS.InnerAttribute; external name 'HEIGHT';
          fLETTER_SPACING: JSTHCSS.InnerAttribute; external name 'LETTER_SPACING';
          fLINE_HEIGHT: JSTHCSS.InnerAttribute; external name 'LINE_HEIGHT';
          fLIST_STYLE: JSTHCSS.InnerAttribute; external name 'LIST_STYLE';
          fLIST_STYLE_IMAGE: JSTHCSS.InnerAttribute; external name 'LIST_STYLE_IMAGE';
          fLIST_STYLE_POSITION: JSTHCSS.InnerAttribute; external name 'LIST_STYLE_POSITION';
          fLIST_STYLE_TYPE: JSTHCSS.InnerAttribute; external name 'LIST_STYLE_TYPE';
          fMARGIN: JSTHCSS.InnerAttribute; external name 'MARGIN';
          fMARGIN_BOTTOM: JSTHCSS.InnerAttribute; external name 'MARGIN_BOTTOM';
          fMARGIN_LEFT: JSTHCSS.InnerAttribute; external name 'MARGIN_LEFT';
          fMARGIN_RIGHT: JSTHCSS.InnerAttribute; external name 'MARGIN_RIGHT';
          fMARGIN_TOP: JSTHCSS.InnerAttribute; external name 'MARGIN_TOP';
          fPADDING: JSTHCSS.InnerAttribute; external name 'PADDING';
          fPADDING_BOTTOM: JSTHCSS.InnerAttribute; external name 'PADDING_BOTTOM';
          fPADDING_LEFT: JSTHCSS.InnerAttribute; external name 'PADDING_LEFT';
          fPADDING_RIGHT: JSTHCSS.InnerAttribute; external name 'PADDING_RIGHT';
          fPADDING_TOP: JSTHCSS.InnerAttribute; external name 'PADDING_TOP';
          fTEXT_ALIGN: JSTHCSS.InnerAttribute; external name 'TEXT_ALIGN';
          fTEXT_DECORATION: JSTHCSS.InnerAttribute; external name 'TEXT_DECORATION';
          fTEXT_INDENT: JSTHCSS.InnerAttribute; external name 'TEXT_INDENT';
          fTEXT_TRANSFORM: JSTHCSS.InnerAttribute; external name 'TEXT_TRANSFORM';
          fVERTICAL_ALIGN: JSTHCSS.InnerAttribute; external name 'VERTICAL_ALIGN';
          fWORD_SPACING: JSTHCSS.InnerAttribute; external name 'WORD_SPACING';
          fWHITE_SPACE: JSTHCSS.InnerAttribute; external name 'WHITE_SPACE';
          fWIDTH: JSTHCSS.InnerAttribute; external name 'WIDTH';
      public
        function toString(): JLString; overload; virtual;
        function getDefaultValue(): JLString; overload; virtual;
        function isInherited(): jboolean; overload; virtual;
      end;

  public
    constructor create(); overload;
    class function getAllAttributeKeys(): JSTHCSS.Arr1InnerAttribute; static; overload;
    class function getAttribute(para1: JLString): JSTHCSS.InnerAttribute; static; overload; final;
  end;

  JSTHHTML = class external 'javax.swing.text.html' name 'HTML' (JLObject)
  public
    type
      InnerAttribute = class;
      Arr1InnerAttribute = array of InnerAttribute;
      Arr2InnerAttribute = array of Arr1InnerAttribute;
      Arr3InnerAttribute = array of Arr2InnerAttribute;
      InnerTag = class;
      Arr1InnerTag = array of InnerTag;
      Arr2InnerTag = array of Arr1InnerTag;
      Arr3InnerTag = array of Arr2InnerTag;
      InnerUnknownTag = class;
      Arr1InnerUnknownTag = array of InnerUnknownTag;
      Arr2InnerUnknownTag = array of Arr1InnerUnknownTag;
      Arr3InnerUnknownTag = array of Arr2InnerUnknownTag;
      InnerAttribute = class sealed external 'javax.swing.text.html' name 'Attribute' (JLObject)
      public
        final class var
          fSIZE: JSTHHTML.InnerAttribute; external name 'SIZE';
          fCOLOR: JSTHHTML.InnerAttribute; external name 'COLOR';
          fCLEAR: JSTHHTML.InnerAttribute; external name 'CLEAR';
          fBACKGROUND: JSTHHTML.InnerAttribute; external name 'BACKGROUND';
          fBGCOLOR: JSTHHTML.InnerAttribute; external name 'BGCOLOR';
          fTEXT: JSTHHTML.InnerAttribute; external name 'TEXT';
          fLINK: JSTHHTML.InnerAttribute; external name 'LINK';
          fVLINK: JSTHHTML.InnerAttribute; external name 'VLINK';
          fALINK: JSTHHTML.InnerAttribute; external name 'ALINK';
          fWIDTH: JSTHHTML.InnerAttribute; external name 'WIDTH';
          fHEIGHT: JSTHHTML.InnerAttribute; external name 'HEIGHT';
          fALIGN: JSTHHTML.InnerAttribute; external name 'ALIGN';
          fNAME: JSTHHTML.InnerAttribute; external name 'NAME';
          fHREF: JSTHHTML.InnerAttribute; external name 'HREF';
          fREL: JSTHHTML.InnerAttribute; external name 'REL';
          fREV: JSTHHTML.InnerAttribute; external name 'REV';
          fTITLE: JSTHHTML.InnerAttribute; external name 'TITLE';
          fTARGET: JSTHHTML.InnerAttribute; external name 'TARGET';
          fSHAPE: JSTHHTML.InnerAttribute; external name 'SHAPE';
          fCOORDS: JSTHHTML.InnerAttribute; external name 'COORDS';
          fISMAP: JSTHHTML.InnerAttribute; external name 'ISMAP';
          fNOHREF: JSTHHTML.InnerAttribute; external name 'NOHREF';
          fALT: JSTHHTML.InnerAttribute; external name 'ALT';
          fID: JSTHHTML.InnerAttribute; external name 'ID';
          fSRC: JSTHHTML.InnerAttribute; external name 'SRC';
          fHSPACE: JSTHHTML.InnerAttribute; external name 'HSPACE';
          fVSPACE: JSTHHTML.InnerAttribute; external name 'VSPACE';
          fUSEMAP: JSTHHTML.InnerAttribute; external name 'USEMAP';
          fLOWSRC: JSTHHTML.InnerAttribute; external name 'LOWSRC';
          fCODEBASE: JSTHHTML.InnerAttribute; external name 'CODEBASE';
          fCODE: JSTHHTML.InnerAttribute; external name 'CODE';
          fARCHIVE: JSTHHTML.InnerAttribute; external name 'ARCHIVE';
          fVALUE: JSTHHTML.InnerAttribute; external name 'VALUE';
          fVALUETYPE: JSTHHTML.InnerAttribute; external name 'VALUETYPE';
          fTYPE: JSTHHTML.InnerAttribute; external name 'TYPE';
          fCLASS: JSTHHTML.InnerAttribute; external name 'CLASS';
          fSTYLE: JSTHHTML.InnerAttribute; external name 'STYLE';
          fLANG: JSTHHTML.InnerAttribute; external name 'LANG';
          fFACE: JSTHHTML.InnerAttribute; external name 'FACE';
          fDIR: JSTHHTML.InnerAttribute; external name 'DIR';
          fDECLARE: JSTHHTML.InnerAttribute; external name 'DECLARE';
          fCLASSID: JSTHHTML.InnerAttribute; external name 'CLASSID';
          fDATA: JSTHHTML.InnerAttribute; external name 'DATA';
          fCODETYPE: JSTHHTML.InnerAttribute; external name 'CODETYPE';
          fSTANDBY: JSTHHTML.InnerAttribute; external name 'STANDBY';
          fBORDER: JSTHHTML.InnerAttribute; external name 'BORDER';
          fSHAPES: JSTHHTML.InnerAttribute; external name 'SHAPES';
          fNOSHADE: JSTHHTML.InnerAttribute; external name 'NOSHADE';
          fCOMPACT: JSTHHTML.InnerAttribute; external name 'COMPACT';
          fSTART: JSTHHTML.InnerAttribute; external name 'START';
          fACTION: JSTHHTML.InnerAttribute; external name 'ACTION';
          fMETHOD: JSTHHTML.InnerAttribute; external name 'METHOD';
          fENCTYPE: JSTHHTML.InnerAttribute; external name 'ENCTYPE';
          fCHECKED: JSTHHTML.InnerAttribute; external name 'CHECKED';
          fMAXLENGTH: JSTHHTML.InnerAttribute; external name 'MAXLENGTH';
          fMULTIPLE: JSTHHTML.InnerAttribute; external name 'MULTIPLE';
          fSELECTED: JSTHHTML.InnerAttribute; external name 'SELECTED';
          fROWS: JSTHHTML.InnerAttribute; external name 'ROWS';
          fCOLS: JSTHHTML.InnerAttribute; external name 'COLS';
          fDUMMY: JSTHHTML.InnerAttribute; external name 'DUMMY';
          fCELLSPACING: JSTHHTML.InnerAttribute; external name 'CELLSPACING';
          fCELLPADDING: JSTHHTML.InnerAttribute; external name 'CELLPADDING';
          fVALIGN: JSTHHTML.InnerAttribute; external name 'VALIGN';
          fHALIGN: JSTHHTML.InnerAttribute; external name 'HALIGN';
          fNOWRAP: JSTHHTML.InnerAttribute; external name 'NOWRAP';
          fROWSPAN: JSTHHTML.InnerAttribute; external name 'ROWSPAN';
          fCOLSPAN: JSTHHTML.InnerAttribute; external name 'COLSPAN';
          fPROMPT: JSTHHTML.InnerAttribute; external name 'PROMPT';
          fHTTPEQUIV: JSTHHTML.InnerAttribute; external name 'HTTPEQUIV';
          fCONTENT: JSTHHTML.InnerAttribute; external name 'CONTENT';
          fLANGUAGE: JSTHHTML.InnerAttribute; external name 'LANGUAGE';
          fVERSION: JSTHHTML.InnerAttribute; external name 'VERSION';
          fN: JSTHHTML.InnerAttribute; external name 'N';
          fFRAMEBORDER: JSTHHTML.InnerAttribute; external name 'FRAMEBORDER';
          fMARGINWIDTH: JSTHHTML.InnerAttribute; external name 'MARGINWIDTH';
          fMARGINHEIGHT: JSTHHTML.InnerAttribute; external name 'MARGINHEIGHT';
          fSCROLLING: JSTHHTML.InnerAttribute; external name 'SCROLLING';
          fNORESIZE: JSTHHTML.InnerAttribute; external name 'NORESIZE';
          fENDTAG: JSTHHTML.InnerAttribute; external name 'ENDTAG';
          fCOMMENT: JSTHHTML.InnerAttribute; external name 'COMMENT';
      public
        function toString(): JLString; overload; virtual;
      end;

      InnerTag = class external 'javax.swing.text.html' name 'Tag' (JLObject)
      public
        final class var
          fA: JSTHHTML.InnerTag; external name 'A';
          fADDRESS: JSTHHTML.InnerTag; external name 'ADDRESS';
          fAPPLET: JSTHHTML.InnerTag; external name 'APPLET';
          fAREA: JSTHHTML.InnerTag; external name 'AREA';
          fB: JSTHHTML.InnerTag; external name 'B';
          fBASE: JSTHHTML.InnerTag; external name 'BASE';
          fBASEFONT: JSTHHTML.InnerTag; external name 'BASEFONT';
          fBIG: JSTHHTML.InnerTag; external name 'BIG';
          fBLOCKQUOTE: JSTHHTML.InnerTag; external name 'BLOCKQUOTE';
          fBODY: JSTHHTML.InnerTag; external name 'BODY';
          fBR: JSTHHTML.InnerTag; external name 'BR';
          fCAPTION: JSTHHTML.InnerTag; external name 'CAPTION';
          fCENTER: JSTHHTML.InnerTag; external name 'CENTER';
          fCITE: JSTHHTML.InnerTag; external name 'CITE';
          fCODE: JSTHHTML.InnerTag; external name 'CODE';
          fDD: JSTHHTML.InnerTag; external name 'DD';
          fDFN: JSTHHTML.InnerTag; external name 'DFN';
          fDIR: JSTHHTML.InnerTag; external name 'DIR';
          fDIV: JSTHHTML.InnerTag; external name 'DIV';
          fDL: JSTHHTML.InnerTag; external name 'DL';
          fDT: JSTHHTML.InnerTag; external name 'DT';
          fEM: JSTHHTML.InnerTag; external name 'EM';
          fFONT: JSTHHTML.InnerTag; external name 'FONT';
          fFORM: JSTHHTML.InnerTag; external name 'FORM';
          fFRAME: JSTHHTML.InnerTag; external name 'FRAME';
          fFRAMESET: JSTHHTML.InnerTag; external name 'FRAMESET';
          fH1: JSTHHTML.InnerTag; external name 'H1';
          fH2: JSTHHTML.InnerTag; external name 'H2';
          fH3: JSTHHTML.InnerTag; external name 'H3';
          fH4: JSTHHTML.InnerTag; external name 'H4';
          fH5: JSTHHTML.InnerTag; external name 'H5';
          fH6: JSTHHTML.InnerTag; external name 'H6';
          fHEAD: JSTHHTML.InnerTag; external name 'HEAD';
          fHR: JSTHHTML.InnerTag; external name 'HR';
          fHTML: JSTHHTML.InnerTag; external name 'HTML';
          fI: JSTHHTML.InnerTag; external name 'I';
          fIMG: JSTHHTML.InnerTag; external name 'IMG';
          fINPUT: JSTHHTML.InnerTag; external name 'INPUT';
          fISINDEX: JSTHHTML.InnerTag; external name 'ISINDEX';
          fKBD: JSTHHTML.InnerTag; external name 'KBD';
          fLI: JSTHHTML.InnerTag; external name 'LI';
          fLINK: JSTHHTML.InnerTag; external name 'LINK';
          fMAP: JSTHHTML.InnerTag; external name 'MAP';
          fMENU: JSTHHTML.InnerTag; external name 'MENU';
          fMETA: JSTHHTML.InnerTag; external name 'META';
          fNOFRAMES: JSTHHTML.InnerTag; external name 'NOFRAMES';
          fOBJECT: JSTHHTML.InnerTag; external name 'OBJECT';
          fOL: JSTHHTML.InnerTag; external name 'OL';
          fOPTION: JSTHHTML.InnerTag; external name 'OPTION';
          fP: JSTHHTML.InnerTag; external name 'P';
          fPARAM: JSTHHTML.InnerTag; external name 'PARAM';
          fPRE: JSTHHTML.InnerTag; external name 'PRE';
          fSAMP: JSTHHTML.InnerTag; external name 'SAMP';
          fSCRIPT: JSTHHTML.InnerTag; external name 'SCRIPT';
          fSELECT: JSTHHTML.InnerTag; external name 'SELECT';
          fSMALL: JSTHHTML.InnerTag; external name 'SMALL';
          fSPAN: JSTHHTML.InnerTag; external name 'SPAN';
          fSTRIKE: JSTHHTML.InnerTag; external name 'STRIKE';
          fS: JSTHHTML.InnerTag; external name 'S';
          fSTRONG: JSTHHTML.InnerTag; external name 'STRONG';
          fSTYLE: JSTHHTML.InnerTag; external name 'STYLE';
          fSUB: JSTHHTML.InnerTag; external name 'SUB';
          fSUP: JSTHHTML.InnerTag; external name 'SUP';
          fTABLE: JSTHHTML.InnerTag; external name 'TABLE';
          fTD: JSTHHTML.InnerTag; external name 'TD';
          fTEXTAREA: JSTHHTML.InnerTag; external name 'TEXTAREA';
          fTH: JSTHHTML.InnerTag; external name 'TH';
          fTITLE: JSTHHTML.InnerTag; external name 'TITLE';
          fTR: JSTHHTML.InnerTag; external name 'TR';
          fTT: JSTHHTML.InnerTag; external name 'TT';
          fU: JSTHHTML.InnerTag; external name 'U';
          fUL: JSTHHTML.InnerTag; external name 'UL';
          fVAR: JSTHHTML.InnerTag; external name 'VAR';
          fIMPLIED: JSTHHTML.InnerTag; external name 'IMPLIED';
          fCONTENT: JSTHHTML.InnerTag; external name 'CONTENT';
          fCOMMENT: JSTHHTML.InnerTag; external name 'COMMENT';
      public
        constructor create(); overload;
      strict protected
        constructor create(para1: JLString); overload;
        constructor create(para1: JLString; para2: jboolean; para3: jboolean); overload;
      public
        function isBlock(): jboolean; overload; virtual;
        function breaksFlow(): jboolean; overload; virtual;
        function isPreformatted(): jboolean; overload; virtual;
        function toString(): JLString; overload; virtual;
      end;

      InnerUnknownTag = class external 'javax.swing.text.html' name 'UnknownTag' (InnerTag, JISerializable)
      public
        constructor create(para1: JLString); overload;
        function hashCode(): jint; overload; virtual;
        function equals(para1: JLObject): jboolean; overload; virtual;
      end;

  public
    const
      NULL_ATTRIBUTE_VALUE = '#DEFAULT';
  public
    constructor create(); overload;
    class function getAllTags(): JSTHHTML.Arr1InnerTag; static; overload;
    class function getTag(para1: JLString): JSTHHTML.InnerTag; static; overload;
    class function getIntegerAttributeValue(para1: JSTAttributeSet; para2: JSTHHTML.InnerAttribute; para3: jint): jint; static; overload;
    class function getAllAttributeKeys(): JSTHHTML.Arr1InnerAttribute; static; overload;
    class function getAttributeKey(para1: JLString): JSTHHTML.InnerAttribute; static; overload;
  end;

  JSTHMap = class external 'javax.swing.text.html' name 'Map' (JLObject, JISerializable)
  public
    type
      InnerRegionContainment = interface;
      Arr1InnerRegionContainment = array of InnerRegionContainment;
      Arr2InnerRegionContainment = array of Arr1InnerRegionContainment;
      Arr3InnerRegionContainment = array of Arr2InnerRegionContainment;
      InnerCircleRegionContainment = class;
      Arr1InnerCircleRegionContainment = array of InnerCircleRegionContainment;
      Arr2InnerCircleRegionContainment = array of Arr1InnerCircleRegionContainment;
      Arr3InnerCircleRegionContainment = array of Arr2InnerCircleRegionContainment;
      InnerDefaultRegionContainment = class;
      Arr1InnerDefaultRegionContainment = array of InnerDefaultRegionContainment;
      Arr2InnerDefaultRegionContainment = array of Arr1InnerDefaultRegionContainment;
      Arr3InnerDefaultRegionContainment = array of Arr2InnerDefaultRegionContainment;
      InnerRectangleRegionContainment = class;
      Arr1InnerRectangleRegionContainment = array of InnerRectangleRegionContainment;
      Arr2InnerRectangleRegionContainment = array of Arr1InnerRectangleRegionContainment;
      Arr3InnerRectangleRegionContainment = array of Arr2InnerRectangleRegionContainment;
      InnerPolygonRegionContainment = class;
      Arr1InnerPolygonRegionContainment = array of InnerPolygonRegionContainment;
      Arr2InnerPolygonRegionContainment = array of Arr1InnerPolygonRegionContainment;
      Arr3InnerPolygonRegionContainment = array of Arr2InnerPolygonRegionContainment;
      InnerRegionContainment = interface external 'javax.swing.text.html' name 'RegionContainment' 
      end;

      InnerCircleRegionContainment = class external 'javax.swing.text.html' name 'CircleRegionContainment' 
      end;

      InnerDefaultRegionContainment = class external 'javax.swing.text.html' name 'DefaultRegionContainment' 
      end;

      InnerRectangleRegionContainment = class external 'javax.swing.text.html' name 'RectangleRegionContainment' 
      end;

      InnerPolygonRegionContainment = class external 'javax.swing.text.html' name 'PolygonRegionContainment' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    function getName(): JLString; overload; virtual;
    procedure addArea(para1: JSTAttributeSet); overload; virtual;
    procedure removeArea(para1: JSTAttributeSet); overload; virtual;
    function getAreas(): Arr1JSTAttributeSet; overload; virtual;
    function getArea(para1: jint; para2: jint; para3: jint; para4: jint): JSTAttributeSet; overload; virtual;
  strict protected
    function createRegionContainment(para1: JSTAttributeSet): JSTHMap.InnerRegionContainment; overload; virtual;
    class function extractCoords(para1: JLObject): Arr1jint; static; overload;
  end;

  JSTHOption = class external 'javax.swing.text.html' name 'Option' (JLObject, JISerializable)
  public
    constructor create(para1: JSTAttributeSet); overload;
    procedure setLabel(para1: JLString); overload; virtual;
    function getLabel(): JLString; overload; virtual;
    function getAttributes(): JSTAttributeSet; overload; virtual;
    function toString(): JLString; overload; virtual;
  strict protected
    procedure setSelection(para1: jboolean); overload; virtual;
  public
    function isSelected(): jboolean; overload; virtual;
    function getValue(): JLString; overload; virtual;
  end;

  JSTHPContentModel = class sealed external 'javax.swing.text.html.parser' name 'ContentModel' (JLObject, JISerializable)
  public
    var
      ftype: jint; external name 'type';
      fcontent: JLObject; external name 'content';
      fnext: JSTHPContentModel; external name 'next';
  public
    constructor create(); overload;
    constructor create(para1: JSTHPElement); overload;
    constructor create(para1: jint; para2: JSTHPContentModel); overload;
    constructor create(para1: jint; para2: JLObject; para3: JSTHPContentModel); overload;
    function empty(): jboolean; overload; virtual;
    procedure getElements(para1: JUVector); overload; virtual;
    function first(para1: JLObject): jboolean; overload; virtual;
    function first(): JSTHPElement; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSTTreePath = class external 'javax.swing.tree' name 'TreePath' (JLObject, JISerializable)
  public
    constructor create(para1: Arr1JLObject); overload;
    constructor create(const para1: array of JLObject); overload;
    constructor create(para1: JLObject); overload;
  strict protected
    constructor create(para1: JSTTreePath; para2: JLObject); overload;
    constructor create(para1: Arr1JLObject; para2: jint); overload;
    constructor create(const para1: array of JLObject; para2: jint); overload;
    constructor create(); overload;
  public
    function getPath(): Arr1JLObject; overload; virtual;
    function getLastPathComponent(): JLObject; overload; virtual;
    function getPathCount(): jint; overload; virtual;
    function getPathComponent(para1: jint): JLObject; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function isDescendant(para1: JSTTreePath): jboolean; overload; virtual;
    function pathByAddingChild(para1: JLObject): JSTTreePath; overload; virtual;
    function getParentPath(): JSTTreePath; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JXBJAXBElement = class external 'javax.xml.bind' name 'JAXBElement' (JLObject, JISerializable)
  public
    type
      InnerGlobalScope = class;
      Arr1InnerGlobalScope = array of InnerGlobalScope;
      Arr2InnerGlobalScope = array of Arr1InnerGlobalScope;
      Arr3InnerGlobalScope = array of Arr2InnerGlobalScope;
      InnerGlobalScope = class sealed external 'javax.xml.bind' name 'GlobalScope' (JLObject)
      public
        constructor create(); overload;
      end;

  strict protected
    final var
      fname: JXNQName; external name 'name';
      fdeclaredType: JLClass; external name 'declaredType';
      fscope: JLClass; external name 'scope';
  strict protected
    var
      fvalue: JLObject; external name 'value';
      fnil: jboolean; external name 'nil';
  public
    constructor create(para1: JXNQName; para2: JLClass; para3: JLClass; para4: JLObject); overload;
    constructor create(para1: JXNQName; para2: JLClass; para3: JLObject); overload;
    function getDeclaredType(): JLClass; overload; virtual;
    function getName(): JXNQName; overload; virtual;
    procedure setValue(para1: JLObject); overload; virtual;
    function getValue(): JLObject; overload; virtual;
    function getScope(): JLClass; overload; virtual;
    function isNil(): jboolean; overload; virtual;
    procedure setNil(para1: jboolean); overload; virtual;
    function isGlobalScope(): jboolean; overload; virtual;
    function isTypeSubstituted(): jboolean; overload; virtual;
  end;

  JXNQName = class external 'javax.xml.namespace' name 'QName' (JLObject, JISerializable)
  public
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLString); overload;
    constructor create(para1: JLString); overload;
    function getNamespaceURI(): JLString; overload; virtual;
    function getLocalPart(): JLString; overload; virtual;
    function getPrefix(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual; final;
    function hashCode(): jint; overload; virtual; final;
    function toString(): JLString; overload; virtual;
    class function valueOf(para1: JLString): JXNQName; static; overload;
  end;

  OOCPIDLEntity = interface external 'org.omg.CORBA.portable' name 'IDLEntity' (JISerializable)
  end;

  JAGridBagConstraints = class external 'java.awt' name 'GridBagConstraints' (JLObject, JLCloneable, JISerializable)
  public
    const
      RELATIVE = -1;
      REMAINDER = 0;
      NONE = 0;
      BOTH = 1;
      HORIZONTAL = 2;
      VERTICAL = 3;
      CENTER = 10;
      NORTH = 11;
      NORTHEAST = 12;
      EAST = 13;
      SOUTHEAST = 14;
      SOUTH = 15;
      SOUTHWEST = 16;
      WEST = 17;
      NORTHWEST = 18;
      PAGE_START = 19;
      PAGE_END = 20;
      LINE_START = 21;
      LINE_END = 22;
      FIRST_LINE_START = 23;
      FIRST_LINE_END = 24;
      LAST_LINE_START = 25;
      LAST_LINE_END = 26;
      BASELINE = 256;
      BASELINE_LEADING = 512;
      BASELINE_TRAILING = 768;
      ABOVE_BASELINE = 1024;
      ABOVE_BASELINE_LEADING = 1280;
      ABOVE_BASELINE_TRAILING = 1536;
      BELOW_BASELINE = 1792;
      BELOW_BASELINE_LEADING = 2048;
      BELOW_BASELINE_TRAILING = 2304;
  public
    var
      fgridx: jint; external name 'gridx';
      fgridy: jint; external name 'gridy';
      fgridwidth: jint; external name 'gridwidth';
      fgridheight: jint; external name 'gridheight';
      fweightx: jdouble; external name 'weightx';
      fweighty: jdouble; external name 'weighty';
      fanchor: jint; external name 'anchor';
      ffill: jint; external name 'fill';
      finsets: JAInsets; external name 'insets';
      fipadx: jint; external name 'ipadx';
      fipady: jint; external name 'ipady';
  public
    constructor create(); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: jdouble; para6: jdouble; para7: jint; para8: jint; para9: JAInsets; para10: jint; para11: jint); overload;
    function clone(): JLObject; overload; virtual;
  end;

  JAImageCapabilities = class external 'java.awt' name 'ImageCapabilities' (JLObject, JLCloneable)
  public
    constructor create(para1: jboolean); overload;
    function isAccelerated(): jboolean; overload; virtual;
    function isTrueVolatile(): jboolean; overload; virtual;
    function clone(): JLObject; overload; virtual;
  end;

  JAInsets = class external 'java.awt' name 'Insets' (JLObject, JLCloneable, JISerializable)
  public
    var
      ftop: jint; external name 'top';
      fleft: jint; external name 'left';
      fbottom: jint; external name 'bottom';
      fright: jint; external name 'right';
  public
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint); overload;
    procedure &set(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function clone(): JLObject; overload; virtual;
  end;

  JADMimeTypeParameterList = class external 'java.awt.datatransfer' name 'MimeTypeParameterList' (JLObject, JLCloneable)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;  // throws java.awt.datatransfer.MimeTypeParseException
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  strict protected
    procedure parse(para1: JLString); overload; virtual;  // throws java.awt.datatransfer.MimeTypeParseException
  public
    function size(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function get(para1: JLString): JLString; overload; virtual;
    procedure &set(para1: JLString; para2: JLString); overload; virtual;
    procedure remove(para1: JLString); overload; virtual;
    function getNames(): JUEnumeration; overload; virtual;
    function toString(): JLString; overload; virtual;
    function clone(): JLObject; overload; virtual;
  end;

  JAFGlyphVector = class abstract external 'java.awt.font' name 'GlyphVector' (JLObject, JLCloneable)
  public
    const
      FLAG_HAS_TRANSFORMS = 1;
      FLAG_HAS_POSITION_ADJUSTMENTS = 2;
      FLAG_RUN_RTL = 4;
      FLAG_COMPLEX_GLYPHS = 8;
      FLAG_MASK = 15;
  public
    constructor create(); overload;
    function getFont(): JAFont; overload; virtual; abstract;
    function getFontRenderContext(): JAFFontRenderContext; overload; virtual; abstract;
    procedure performDefaultLayout(); overload; virtual; abstract;
    function getNumGlyphs(): jint; overload; virtual; abstract;
    function getGlyphCode(para1: jint): jint; overload; virtual; abstract;
    function getGlyphCodes(para1: jint; para2: jint; para3: Arr1jint): Arr1jint; overload; virtual; abstract;
    function getGlyphCodes(para1: jint; para2: jint; var para3: array of jint): Arr1jint; overload; virtual; abstract;
    function getGlyphCharIndex(para1: jint): jint; overload; virtual;
    function getGlyphCharIndices(para1: jint; para2: jint; para3: Arr1jint): Arr1jint; overload; virtual;
    function getGlyphCharIndices(para1: jint; para2: jint; var para3: array of jint): Arr1jint; overload; virtual;
    function getLogicalBounds(): JAGRectangle2D; overload; virtual; abstract;
    function getVisualBounds(): JAGRectangle2D; overload; virtual; abstract;
    function getPixelBounds(para1: JAFFontRenderContext; para2: jfloat; para3: jfloat): JARectangle; overload; virtual;
    function getOutline(): JAShape; overload; virtual; abstract;
    function getOutline(para1: jfloat; para2: jfloat): JAShape; overload; virtual; abstract;
    function getGlyphOutline(para1: jint): JAShape; overload; virtual; abstract;
    function getGlyphOutline(para1: jint; para2: jfloat; para3: jfloat): JAShape; overload; virtual;
    function getGlyphPosition(para1: jint): JAGPoint2D; overload; virtual; abstract;
    procedure setGlyphPosition(para1: jint; para2: JAGPoint2D); overload; virtual; abstract;
    function getGlyphTransform(para1: jint): JAGAffineTransform; overload; virtual; abstract;
    procedure setGlyphTransform(para1: jint; para2: JAGAffineTransform); overload; virtual; abstract;
    function getLayoutFlags(): jint; overload; virtual;
    function getGlyphPositions(para1: jint; para2: jint; para3: Arr1jfloat): Arr1jfloat; overload; virtual; abstract;
    function getGlyphPositions(para1: jint; para2: jint; var para3: array of jfloat): Arr1jfloat; overload; virtual; abstract;
    function getGlyphLogicalBounds(para1: jint): JAShape; overload; virtual; abstract;
    function getGlyphVisualBounds(para1: jint): JAShape; overload; virtual; abstract;
    function getGlyphPixelBounds(para1: jint; para2: JAFFontRenderContext; para3: jfloat; para4: jfloat): JARectangle; overload; virtual;
    function getGlyphMetrics(para1: jint): JAFGlyphMetrics; overload; virtual; abstract;
    function getGlyphJustificationInfo(para1: jint): JAFGlyphJustificationInfo; overload; virtual; abstract;
    function equals(para1: JAFGlyphVector): jboolean; overload; virtual; abstract;
  end;

  JAFTextLayout = class sealed external 'java.awt.font' name 'TextLayout' (JLObject, JLCloneable)
  public
    type
      InnerCaretPolicy = class;
      Arr1InnerCaretPolicy = array of InnerCaretPolicy;
      Arr2InnerCaretPolicy = array of Arr1InnerCaretPolicy;
      Arr3InnerCaretPolicy = array of Arr2InnerCaretPolicy;
      InnerCaretPolicy = class external 'java.awt.font' name 'CaretPolicy' (JLObject)
      public
        constructor create(); overload;
        function getStrongCaret(para1: JAFTextHitInfo; para2: JAFTextHitInfo; para3: JAFTextLayout): JAFTextHitInfo; overload; virtual;
      end;

  public
    final class var
      fDEFAULT_CARET_POLICY: JAFTextLayout.InnerCaretPolicy; external name 'DEFAULT_CARET_POLICY';
  public
    constructor create(para1: JLString; para2: JAFont; para3: JAFFontRenderContext); overload;
    constructor create(para1: JLString; para2: JUMap; para3: JAFFontRenderContext); overload;
    constructor create(para1: JTAttributedCharacterIterator; para2: JAFFontRenderContext); overload;
  strict protected
    function clone(): JLObject; overload; virtual;
  public
    function getJustifiedLayout(para1: jfloat): JAFTextLayout; overload; virtual;
  strict protected
    procedure handleJustify(para1: jfloat); overload; virtual;
  public
    function getBaseline(): jbyte; overload; virtual;
    function getBaselineOffsets(): Arr1jfloat; overload; virtual;
    function getAdvance(): jfloat; overload; virtual;
    function getVisibleAdvance(): jfloat; overload; virtual;
    function getAscent(): jfloat; overload; virtual;
    function getDescent(): jfloat; overload; virtual;
    function getLeading(): jfloat; overload; virtual;
    function getBounds(): JAGRectangle2D; overload; virtual;
    function getPixelBounds(para1: JAFFontRenderContext; para2: jfloat; para3: jfloat): JARectangle; overload; virtual;
    function isLeftToRight(): jboolean; overload; virtual;
    function isVertical(): jboolean; overload; virtual;
    function getCharacterCount(): jint; overload; virtual;
    function getCaretInfo(para1: JAFTextHitInfo; para2: JAGRectangle2D): Arr1jfloat; overload; virtual;
    function getCaretInfo(para1: JAFTextHitInfo): Arr1jfloat; overload; virtual;
    function getNextRightHit(para1: JAFTextHitInfo): JAFTextHitInfo; overload; virtual;
    function getNextRightHit(para1: jint; para2: JAFTextLayout.InnerCaretPolicy): JAFTextHitInfo; overload; virtual;
    function getNextRightHit(para1: jint): JAFTextHitInfo; overload; virtual;
    function getNextLeftHit(para1: JAFTextHitInfo): JAFTextHitInfo; overload; virtual;
    function getNextLeftHit(para1: jint; para2: JAFTextLayout.InnerCaretPolicy): JAFTextHitInfo; overload; virtual;
    function getNextLeftHit(para1: jint): JAFTextHitInfo; overload; virtual;
    function getVisualOtherHit(para1: JAFTextHitInfo): JAFTextHitInfo; overload; virtual;
    function getCaretShape(para1: JAFTextHitInfo; para2: JAGRectangle2D): JAShape; overload; virtual;
    function getCaretShape(para1: JAFTextHitInfo): JAShape; overload; virtual;
    function getCharacterLevel(para1: jint): jbyte; overload; virtual;
    function getCaretShapes(para1: jint; para2: JAGRectangle2D; para3: JAFTextLayout.InnerCaretPolicy): Arr1JAShape; overload; virtual;
    function getCaretShapes(para1: jint; para2: JAGRectangle2D): Arr1JAShape; overload; virtual;
    function getCaretShapes(para1: jint): Arr1JAShape; overload; virtual;
    function getLogicalRangesForVisualSelection(para1: JAFTextHitInfo; para2: JAFTextHitInfo): Arr1jint; overload; virtual;
    function getVisualHighlightShape(para1: JAFTextHitInfo; para2: JAFTextHitInfo; para3: JAGRectangle2D): JAShape; overload; virtual;
    function getVisualHighlightShape(para1: JAFTextHitInfo; para2: JAFTextHitInfo): JAShape; overload; virtual;
    function getLogicalHighlightShape(para1: jint; para2: jint; para3: JAGRectangle2D): JAShape; overload; virtual;
    function getLogicalHighlightShape(para1: jint; para2: jint): JAShape; overload; virtual;
    function getBlackBoxBounds(para1: jint; para2: jint): JAShape; overload; virtual;
    function hitTestChar(para1: jfloat; para2: jfloat; para3: JAGRectangle2D): JAFTextHitInfo; overload; virtual;
    function hitTestChar(para1: jfloat; para2: jfloat): JAFTextHitInfo; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function equals(para1: JAFTextLayout): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure draw(para1: JAGraphics2D; para2: jfloat; para3: jfloat); overload; virtual;
    function getOutline(para1: JAGAffineTransform): JAShape; overload; virtual;
    function getLayoutPath(): JAFLayoutPath; overload; virtual;
    procedure hitToPoint(para1: JAFTextHitInfo; para2: JAGPoint2D); overload; virtual;
  end;

  JAFTextMeasurer = class sealed external 'java.awt.font' name 'TextMeasurer' (JLObject, JLCloneable)
  public
    constructor create(para1: JTAttributedCharacterIterator; para2: JAFFontRenderContext); overload;
  strict protected
    function clone(): JLObject; overload; virtual;
  public
    function getLineBreakIndex(para1: jint; para2: jfloat): jint; overload; virtual;
    function getAdvanceBetween(para1: jint; para2: jint): jfloat; overload; virtual;
    function getLayout(para1: jint; para2: jint): JAFTextLayout; overload; virtual;
    procedure insertChar(para1: JTAttributedCharacterIterator; para2: jint); overload; virtual;
    procedure deleteChar(para1: JTAttributedCharacterIterator; para2: jint); overload; virtual;
  end;

  JAGAffineTransform = class external 'java.awt.geom' name 'AffineTransform' (JLObject, JLCloneable, JISerializable)
  public
    const
      TYPE_IDENTITY = 0;
      TYPE_TRANSLATION = 1;
      TYPE_UNIFORM_SCALE = 2;
      TYPE_GENERAL_SCALE = 4;
      TYPE_MASK_SCALE = 6;
      TYPE_FLIP = 64;
      TYPE_QUADRANT_ROTATION = 8;
      TYPE_GENERAL_ROTATION = 16;
      TYPE_MASK_ROTATION = 24;
      TYPE_GENERAL_TRANSFORM = 32;
  public
    constructor create(); overload;
    constructor create(para1: JAGAffineTransform); overload;
    constructor create(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat); overload;
    constructor create(para1: Arr1jfloat); overload;
    constructor create(const para1: array of jfloat); overload;
    constructor create(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble; para6: jdouble); overload;
    constructor create(para1: Arr1jdouble); overload;
    constructor create(const para1: array of jdouble); overload;
    class function getTranslateInstance(para1: jdouble; para2: jdouble): JAGAffineTransform; static; overload;
    class function getRotateInstance(para1: jdouble): JAGAffineTransform; static; overload;
    class function getRotateInstance(para1: jdouble; para2: jdouble; para3: jdouble): JAGAffineTransform; static; overload;
    class function getRotateInstance(para1: jdouble; para2: jdouble): JAGAffineTransform; static; overload;
    class function getRotateInstance(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble): JAGAffineTransform; static; overload;
    class function getQuadrantRotateInstance(para1: jint): JAGAffineTransform; static; overload;
    class function getQuadrantRotateInstance(para1: jint; para2: jdouble; para3: jdouble): JAGAffineTransform; static; overload;
    class function getScaleInstance(para1: jdouble; para2: jdouble): JAGAffineTransform; static; overload;
    class function getShearInstance(para1: jdouble; para2: jdouble): JAGAffineTransform; static; overload;
    function getType(): jint; overload; virtual;
    function getDeterminant(): jdouble; overload; virtual;
    procedure getMatrix(para1: Arr1jdouble); overload; virtual;
    procedure getMatrix(var para1: array of jdouble); overload; virtual;
    function getScaleX(): jdouble; overload; virtual;
    function getScaleY(): jdouble; overload; virtual;
    function getShearX(): jdouble; overload; virtual;
    function getShearY(): jdouble; overload; virtual;
    function getTranslateX(): jdouble; overload; virtual;
    function getTranslateY(): jdouble; overload; virtual;
    procedure translate(para1: jdouble; para2: jdouble); overload; virtual;
    procedure rotate(para1: jdouble); overload; virtual;
    procedure rotate(para1: jdouble; para2: jdouble; para3: jdouble); overload; virtual;
    procedure rotate(para1: jdouble; para2: jdouble); overload; virtual;
    procedure rotate(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble); overload; virtual;
    procedure quadrantRotate(para1: jint); overload; virtual;
    procedure quadrantRotate(para1: jint; para2: jdouble; para3: jdouble); overload; virtual;
    procedure scale(para1: jdouble; para2: jdouble); overload; virtual;
    procedure shear(para1: jdouble; para2: jdouble); overload; virtual;
    procedure setToIdentity(); overload; virtual;
    procedure setToTranslation(para1: jdouble; para2: jdouble); overload; virtual;
    procedure setToRotation(para1: jdouble); overload; virtual;
    procedure setToRotation(para1: jdouble; para2: jdouble; para3: jdouble); overload; virtual;
    procedure setToRotation(para1: jdouble; para2: jdouble); overload; virtual;
    procedure setToRotation(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble); overload; virtual;
    procedure setToQuadrantRotation(para1: jint); overload; virtual;
    procedure setToQuadrantRotation(para1: jint; para2: jdouble; para3: jdouble); overload; virtual;
    procedure setToScale(para1: jdouble; para2: jdouble); overload; virtual;
    procedure setToShear(para1: jdouble; para2: jdouble); overload; virtual;
    procedure setTransform(para1: JAGAffineTransform); overload; virtual;
    procedure setTransform(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble; para6: jdouble); overload; virtual;
    procedure concatenate(para1: JAGAffineTransform); overload; virtual;
    procedure preConcatenate(para1: JAGAffineTransform); overload; virtual;
    function createInverse(): JAGAffineTransform; overload; virtual;  // throws java.awt.geom.NoninvertibleTransformException
    procedure invert(); overload; virtual;  // throws java.awt.geom.NoninvertibleTransformException
    function transform(para1: JAGPoint2D; para2: JAGPoint2D): JAGPoint2D; overload; virtual;
    procedure transform(para1: Arr1JAGPoint2D; para2: jint; para3: Arr1JAGPoint2D; para4: jint; para5: jint); overload; virtual;
    procedure transform(var para1: array of JAGPoint2D; para2: jint; var para3: array of JAGPoint2D; para4: jint; para5: jint); overload; virtual;
    procedure transform(para1: Arr1jfloat; para2: jint; para3: Arr1jfloat; para4: jint; para5: jint); overload; virtual;
    procedure transform(var para1: array of jfloat; para2: jint; var para3: array of jfloat; para4: jint; para5: jint); overload; virtual;
    procedure transform(para1: Arr1jdouble; para2: jint; para3: Arr1jdouble; para4: jint; para5: jint); overload; virtual;
    procedure transform(var para1: array of jdouble; para2: jint; var para3: array of jdouble; para4: jint; para5: jint); overload; virtual;
    procedure transform(para1: Arr1jfloat; para2: jint; para3: Arr1jdouble; para4: jint; para5: jint); overload; virtual;
    procedure transform(var para1: array of jfloat; para2: jint; var para3: array of jdouble; para4: jint; para5: jint); overload; virtual;
    procedure transform(para1: Arr1jdouble; para2: jint; para3: Arr1jfloat; para4: jint; para5: jint); overload; virtual;
    procedure transform(var para1: array of jdouble; para2: jint; var para3: array of jfloat; para4: jint; para5: jint); overload; virtual;
    function inverseTransform(para1: JAGPoint2D; para2: JAGPoint2D): JAGPoint2D; overload; virtual;  // throws java.awt.geom.NoninvertibleTransformException
    procedure inverseTransform(para1: Arr1jdouble; para2: jint; para3: Arr1jdouble; para4: jint; para5: jint); overload; virtual;  // throws java.awt.geom.NoninvertibleTransformException
    procedure inverseTransform(var para1: array of jdouble; para2: jint; var para3: array of jdouble; para4: jint; para5: jint); overload; virtual;  // throws java.awt.geom.NoninvertibleTransformException
    function deltaTransform(para1: JAGPoint2D; para2: JAGPoint2D): JAGPoint2D; overload; virtual;
    procedure deltaTransform(para1: Arr1jdouble; para2: jint; para3: Arr1jdouble; para4: jint; para5: jint); overload; virtual;
    procedure deltaTransform(var para1: array of jdouble; para2: jint; var para3: array of jdouble; para4: jint; para5: jint); overload; virtual;
    function createTransformedShape(para1: JAShape): JAShape; overload; virtual;
    function toString(): JLString; overload; virtual;
    function isIdentity(): jboolean; overload; virtual;
    function clone(): JLObject; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JAGDimension2D = class abstract external 'java.awt.geom' name 'Dimension2D' (JLObject, JLCloneable)
  strict protected
    constructor create(); overload;
  public
    function getWidth(): jdouble; overload; virtual; abstract;
    function getHeight(): jdouble; overload; virtual; abstract;
    procedure setSize(para1: jdouble; para2: jdouble); overload; virtual; abstract;
    procedure setSize(para1: JAGDimension2D); overload; virtual;
    function clone(): JLObject; overload; virtual;
  end;

  JAGPoint2D = class abstract external 'java.awt.geom' name 'Point2D' (JLObject, JLCloneable)
  public
    type
      InnerDouble = class;
      Arr1InnerDouble = array of InnerDouble;
      Arr2InnerDouble = array of Arr1InnerDouble;
      Arr3InnerDouble = array of Arr2InnerDouble;
      InnerFloat = class;
      Arr1InnerFloat = array of InnerFloat;
      Arr2InnerFloat = array of Arr1InnerFloat;
      Arr3InnerFloat = array of Arr2InnerFloat;
      InnerDouble = class external 'java.awt.geom' name 'Double' (JAGPoint2D, JISerializable)
      public
        var
          fx: jdouble; external name 'x';
          fy: jdouble; external name 'y';
      public
        constructor create(); overload;
        constructor create(para1: jdouble; para2: jdouble); overload;
        function getX(): jdouble; overload; virtual;
        function getY(): jdouble; overload; virtual;
        procedure setLocation(para1: jdouble; para2: jdouble); overload; virtual;
        function toString(): JLString; overload; virtual;
      end;

      InnerFloat = class external 'java.awt.geom' name 'Float' (JAGPoint2D, JISerializable)
      public
        var
          fx: jfloat; external name 'x';
          fy: jfloat; external name 'y';
      public
        constructor create(); overload;
        constructor create(para1: jfloat; para2: jfloat); overload;
        function getX(): jdouble; overload; virtual;
        function getY(): jdouble; overload; virtual;
        procedure setLocation(para1: jdouble; para2: jdouble); overload; virtual;
        procedure setLocation(para1: jfloat; para2: jfloat); overload; virtual;
        function toString(): JLString; overload; virtual;
      end;

  strict protected
    constructor create(); overload;
  public
    function getX(): jdouble; overload; virtual; abstract;
    function getY(): jdouble; overload; virtual; abstract;
    procedure setLocation(para1: jdouble; para2: jdouble); overload; virtual; abstract;
    procedure setLocation(para1: JAGPoint2D); overload; virtual;
    class function distanceSq(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble): jdouble; static; overload;
    class function distance(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble): jdouble; static; overload;
    function distanceSq(para1: jdouble; para2: jdouble): jdouble; overload; virtual;
    function distanceSq(para1: JAGPoint2D): jdouble; overload; virtual;
    function distance(para1: jdouble; para2: jdouble): jdouble; overload; virtual;
    function distance(para1: JAGPoint2D): jdouble; overload; virtual;
    function clone(): JLObject; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JAIKernel = class external 'java.awt.image' name 'Kernel' (JLObject, JLCloneable)
  public
    constructor create(para1: jint; para2: jint; para3: Arr1jfloat); overload;
    constructor create(para1: jint; para2: jint; const para3: array of jfloat); overload;
    function getXOrigin(): jint; overload; virtual; final;
    function getYOrigin(): jint; overload; virtual; final;
    function getWidth(): jint; overload; virtual; final;
    function getHeight(): jint; overload; virtual; final;
    function getKernelData(para1: Arr1jfloat): Arr1jfloat; overload; virtual; final;
    function getKernelData(var para1: array of jfloat): Arr1jfloat; overload; virtual; final;
    function clone(): JLObject; overload; virtual;
  end;

  JAIRParameterBlock = class external 'java.awt.image.renderable' name 'ParameterBlock' (JLObject, JLCloneable, JISerializable)
  strict protected
    var
      fsources: JUVector; external name 'sources';
      fparameters: JUVector; external name 'parameters';
  public
    constructor create(); overload;
    constructor create(para1: JUVector); overload;
    constructor create(para1: JUVector; para2: JUVector); overload;
    function shallowClone(): JLObject; overload; virtual;
    function clone(): JLObject; overload; virtual;
    function addSource(para1: JLObject): JAIRParameterBlock; overload; virtual;
    function getSource(para1: jint): JLObject; overload; virtual;
    function setSource(para1: JLObject; para2: jint): JAIRParameterBlock; overload; virtual;
    function getRenderedSource(para1: jint): JAIRenderedImage; overload; virtual;
    function getRenderableSource(para1: jint): JAIRRenderableImage; overload; virtual;
    function getNumSources(): jint; overload; virtual;
    function getSources(): JUVector; overload; virtual;
    procedure setSources(para1: JUVector); overload; virtual;
    procedure removeSources(); overload; virtual;
    function getNumParameters(): jint; overload; virtual;
    function getParameters(): JUVector; overload; virtual;
    procedure setParameters(para1: JUVector); overload; virtual;
    procedure removeParameters(); overload; virtual;
    function add(para1: JLObject): JAIRParameterBlock; overload; virtual;
    function add(para1: jbyte): JAIRParameterBlock; overload; virtual;
    function add(para1: jchar): JAIRParameterBlock; overload; virtual;
    function add(para1: jshort): JAIRParameterBlock; overload; virtual;
    function add(para1: jint): JAIRParameterBlock; overload; virtual;
    function add(para1: jlong): JAIRParameterBlock; overload; virtual;
    function add(para1: jfloat): JAIRParameterBlock; overload; virtual;
    function add(para1: jdouble): JAIRParameterBlock; overload; virtual;
    function &set(para1: JLObject; para2: jint): JAIRParameterBlock; overload; virtual;
    function &set(para1: jbyte; para2: jint): JAIRParameterBlock; overload; virtual;
    function &set(para1: jchar; para2: jint): JAIRParameterBlock; overload; virtual;
    function &set(para1: jshort; para2: jint): JAIRParameterBlock; overload; virtual;
    function &set(para1: jint; para2: jint): JAIRParameterBlock; overload; virtual;
    function &set(para1: jlong; para2: jint): JAIRParameterBlock; overload; virtual;
    function &set(para1: jfloat; para2: jint): JAIRParameterBlock; overload; virtual;
    function &set(para1: jdouble; para2: jint): JAIRParameterBlock; overload; virtual;
    function getObjectParameter(para1: jint): JLObject; overload; virtual;
    function getByteParameter(para1: jint): jbyte; overload; virtual;
    function getCharParameter(para1: jint): jchar; overload; virtual;
    function getShortParameter(para1: jint): jshort; overload; virtual;
    function getIntParameter(para1: jint): jint; overload; virtual;
    function getLongParameter(para1: jint): jlong; overload; virtual;
    function getFloatParameter(para1: jint): jfloat; overload; virtual;
    function getDoubleParameter(para1: jint): jdouble; overload; virtual;
    function getParamClasses(): Arr1JLClass; overload; virtual;
  end;

  JAIRRenderContext = class external 'java.awt.image.renderable' name 'RenderContext' (JLObject, JLCloneable)
  public
    constructor create(para1: JAGAffineTransform; para2: JAShape; para3: JARenderingHints); overload;
    constructor create(para1: JAGAffineTransform); overload;
    constructor create(para1: JAGAffineTransform; para2: JARenderingHints); overload;
    constructor create(para1: JAGAffineTransform; para2: JAShape); overload;
    function getRenderingHints(): JARenderingHints; overload; virtual;
    procedure setRenderingHints(para1: JARenderingHints); overload; virtual;
    procedure setTransform(para1: JAGAffineTransform); overload; virtual;
    procedure preConcatenateTransform(para1: JAGAffineTransform); overload; virtual;
    procedure preConcetenateTransform(para1: JAGAffineTransform); overload; virtual;
    procedure concatenateTransform(para1: JAGAffineTransform); overload; virtual;
    procedure concetenateTransform(para1: JAGAffineTransform); overload; virtual;
    function getTransform(): JAGAffineTransform; overload; virtual;
    procedure setAreaOfInterest(para1: JAShape); overload; virtual;
    function getAreaOfInterest(): JAShape; overload; virtual;
    function clone(): JLObject; overload; virtual;
  end;

  JAPPageFormat = class external 'java.awt.print' name 'PageFormat' (JLObject, JLCloneable)
  public
    const
      LANDSCAPE = 0;
      PORTRAIT = 1;
      REVERSE_LANDSCAPE = 2;
  public
    constructor create(); overload;
    function clone(): JLObject; overload; virtual;
    function getWidth(): jdouble; overload; virtual;
    function getHeight(): jdouble; overload; virtual;
    function getImageableX(): jdouble; overload; virtual;
    function getImageableY(): jdouble; overload; virtual;
    function getImageableWidth(): jdouble; overload; virtual;
    function getImageableHeight(): jdouble; overload; virtual;
    function getPaper(): JAPPaper; overload; virtual;
    procedure setPaper(para1: JAPPaper); overload; virtual;
    procedure setOrientation(para1: jint); overload; virtual;  // throws java.lang.IllegalArgumentException
    function getOrientation(): jint; overload; virtual;
    function getMatrix(): Arr1jdouble; overload; virtual;
  end;

  JAPPaper = class external 'java.awt.print' name 'Paper' (JLObject, JLCloneable)
  public
    constructor create(); overload;
    function clone(): JLObject; overload; virtual;
    function getHeight(): jdouble; overload; virtual;
    procedure setSize(para1: jdouble; para2: jdouble); overload; virtual;
    function getWidth(): jdouble; overload; virtual;
    procedure setImageableArea(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble); overload; virtual;
    function getImageableX(): jdouble; overload; virtual;
    function getImageableY(): jdouble; overload; virtual;
    function getImageableWidth(): jdouble; overload; virtual;
    function getImageableHeight(): jdouble; overload; virtual;
  end;

  JNHttpCookie = class sealed external 'java.net' name 'HttpCookie' (JLObject, JLCloneable)
  public
    type
      InnerCookieAttributeAssignor = interface;
      Arr1InnerCookieAttributeAssignor = array of InnerCookieAttributeAssignor;
      Arr2InnerCookieAttributeAssignor = array of Arr1InnerCookieAttributeAssignor;
      Arr3InnerCookieAttributeAssignor = array of Arr2InnerCookieAttributeAssignor;
      InnerCookieAttributeAssignor = interface external 'java.net' name 'CookieAttributeAssignor' 
      end;

  public
    constructor create(para1: JLString; para2: JLString); overload;
    class function parse(para1: JLString): JUList; static; overload;
    function hasExpired(): jboolean; overload; virtual;
    procedure setComment(para1: JLString); overload; virtual;
    function getComment(): JLString; overload; virtual;
    procedure setCommentURL(para1: JLString); overload; virtual;
    function getCommentURL(): JLString; overload; virtual;
    procedure setDiscard(para1: jboolean); overload; virtual;
    function getDiscard(): jboolean; overload; virtual;
    procedure setPortlist(para1: JLString); overload; virtual;
    function getPortlist(): JLString; overload; virtual;
    procedure setDomain(para1: JLString); overload; virtual;
    function getDomain(): JLString; overload; virtual;
    procedure setMaxAge(para1: jlong); overload; virtual;
    function getMaxAge(): jlong; overload; virtual;
    procedure setPath(para1: JLString); overload; virtual;
    function getPath(): JLString; overload; virtual;
    procedure setSecure(para1: jboolean); overload; virtual;
    function getSecure(): jboolean; overload; virtual;
    function getName(): JLString; overload; virtual;
    procedure setValue(para1: JLString); overload; virtual;
    function getValue(): JLString; overload; virtual;
    function getVersion(): jint; overload; virtual;
    procedure setVersion(para1: jint); overload; virtual;
    class function domainMatches(para1: JLString; para2: JLString): jboolean; static; overload;
    function toString(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function clone(): JLObject; overload; virtual;
  end;

  JSAAclEntry = interface external 'java.security.acl' name 'AclEntry' (JLCloneable)
    function setPrincipal(para1: JSPrincipal): jboolean; overload;
    function getPrincipal(): JSPrincipal; overload;
    procedure setNegativePermissions(); overload;
    function isNegative(): jboolean; overload;
    function addPermission(para1: JSAPermission): jboolean; overload;
    function removePermission(para1: JSAPermission): jboolean; overload;
    function checkPermission(para1: JSAPermission): jboolean; overload;
    function permissions(): JUEnumeration; overload;
    function toString(): JLString; overload;
    function clone(): JLObject; overload;
  end;

  JSCCRLSelector = interface external 'java.security.cert' name 'CRLSelector' (JLCloneable)
    function match(para1: JSCCRL): jboolean; overload;
    function clone(): JLObject; overload;
  end;

  JSCCertPathBuilderResult = interface external 'java.security.cert' name 'CertPathBuilderResult' (JLCloneable)
    function getCertPath(): JSCCertPath; overload;
    function clone(): JLObject; overload;
  end;

  JSCCertPathParameters = interface external 'java.security.cert' name 'CertPathParameters' (JLCloneable)
    function clone(): JLObject; overload;
  end;

  JSCCertPathValidatorResult = interface external 'java.security.cert' name 'CertPathValidatorResult' (JLCloneable)
    function clone(): JLObject; overload;
  end;

  JSCCertSelector = interface external 'java.security.cert' name 'CertSelector' (JLCloneable)
    function match(para1: JSCCertificate): jboolean; overload;
    function clone(): JLObject; overload;
  end;

  JSCCertStoreParameters = interface external 'java.security.cert' name 'CertStoreParameters' (JLCloneable)
    function clone(): JLObject; overload;
  end;

  JSCPKIXCertPathChecker = class abstract external 'java.security.cert' name 'PKIXCertPathChecker' (JLObject, JLCloneable)
  strict protected
    constructor create(); overload;
  public
    procedure init(para1: jboolean); overload; virtual; abstract;  // throws java.security.cert.CertPathValidatorException
    function isForwardCheckingSupported(): jboolean; overload; virtual; abstract;
    function getSupportedExtensions(): JUSet; overload; virtual; abstract;
    procedure check(para1: JSCCertificate; para2: JUCollection); overload; virtual; abstract;  // throws java.security.cert.CertPathValidatorException
    function clone(): JLObject; overload; virtual;
  end;

  JTBreakIterator = class abstract external 'java.text' name 'BreakIterator' (JLObject, JLCloneable)
  public
    type
      InnerBreakIteratorCache = class;
      Arr1InnerBreakIteratorCache = array of InnerBreakIteratorCache;
      Arr2InnerBreakIteratorCache = array of Arr1InnerBreakIteratorCache;
      Arr3InnerBreakIteratorCache = array of Arr2InnerBreakIteratorCache;
      InnerBreakIteratorGetter = class;
      Arr1InnerBreakIteratorGetter = array of InnerBreakIteratorGetter;
      Arr2InnerBreakIteratorGetter = array of Arr1InnerBreakIteratorGetter;
      Arr3InnerBreakIteratorGetter = array of Arr2InnerBreakIteratorGetter;
      InnerBreakIteratorCache = class sealed external 'java.text' name 'BreakIteratorCache' 
      end;

      InnerBreakIteratorGetter = class external 'java.text' name 'BreakIteratorGetter' 
      end;

  public
    const
      DONE = -1;
  strict protected
    constructor create(); overload;
  public
    function clone(): JLObject; overload; virtual;
    function first(): jint; overload; virtual; abstract;
    function last(): jint; overload; virtual; abstract;
    function next(para1: jint): jint; overload; virtual; abstract;
    function next(): jint; overload; virtual; abstract;
    function previous(): jint; overload; virtual; abstract;
    function following(para1: jint): jint; overload; virtual; abstract;
    function preceding(para1: jint): jint; overload; virtual;
    function isBoundary(para1: jint): jboolean; overload; virtual;
    function current(): jint; overload; virtual; abstract;
    function getText(): JTCharacterIterator; overload; virtual; abstract;
    procedure setText(para1: JLString); overload; virtual;
    procedure setText(para1: JTCharacterIterator); overload; virtual; abstract;
    class function getWordInstance(): JTBreakIterator; static; overload;
    class function getWordInstance(para1: JULocale): JTBreakIterator; static; overload;
    class function getLineInstance(): JTBreakIterator; static; overload;
    class function getLineInstance(para1: JULocale): JTBreakIterator; static; overload;
    class function getCharacterInstance(): JTBreakIterator; static; overload;
    class function getCharacterInstance(para1: JULocale): JTBreakIterator; static; overload;
    class function getSentenceInstance(): JTBreakIterator; static; overload;
    class function getSentenceInstance(para1: JULocale): JTBreakIterator; static; overload;
    class function getAvailableLocales(): Arr1JULocale; static; overload;
  end;

  JTCharacterIterator = interface external 'java.text' name 'CharacterIterator' (JLCloneable)
    const
      DONE = 65535;
    function first(): jchar; overload;
    function last(): jchar; overload;
    function current(): jchar; overload;
    function next(): jchar; overload;
    function previous(): jchar; overload;
    function setIndex(para1: jint): jchar; overload;
    function getBeginIndex(): jint; overload;
    function getEndIndex(): jint; overload;
    function getIndex(): jint; overload;
    function clone(): JLObject; overload;
  end;

  JTDateFormatSymbols = class external 'java.text' name 'DateFormatSymbols' (JLObject, JISerializable, JLCloneable)
  public
    type
      InnerDateFormatSymbolsGetter = class;
      Arr1InnerDateFormatSymbolsGetter = array of InnerDateFormatSymbolsGetter;
      Arr2InnerDateFormatSymbolsGetter = array of Arr1InnerDateFormatSymbolsGetter;
      Arr3InnerDateFormatSymbolsGetter = array of Arr2InnerDateFormatSymbolsGetter;
      InnerDateFormatSymbolsGetter = class external 'java.text' name 'DateFormatSymbolsGetter' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: JULocale); overload;
    class function getAvailableLocales(): Arr1JULocale; static; overload;
    class function getInstance(): JTDateFormatSymbols; static; overload; final;
    class function getInstance(para1: JULocale): JTDateFormatSymbols; static; overload; final;
    function getEras(): Arr1JLString; overload; virtual;
    procedure setEras(para1: Arr1JLString); overload; virtual;
    procedure setEras(var para1: array of JLString); overload; virtual;
    function getMonths(): Arr1JLString; overload; virtual;
    procedure setMonths(para1: Arr1JLString); overload; virtual;
    procedure setMonths(var para1: array of JLString); overload; virtual;
    function getShortMonths(): Arr1JLString; overload; virtual;
    procedure setShortMonths(para1: Arr1JLString); overload; virtual;
    procedure setShortMonths(var para1: array of JLString); overload; virtual;
    function getWeekdays(): Arr1JLString; overload; virtual;
    procedure setWeekdays(para1: Arr1JLString); overload; virtual;
    procedure setWeekdays(var para1: array of JLString); overload; virtual;
    function getShortWeekdays(): Arr1JLString; overload; virtual;
    procedure setShortWeekdays(para1: Arr1JLString); overload; virtual;
    procedure setShortWeekdays(var para1: array of JLString); overload; virtual;
    function getAmPmStrings(): Arr1JLString; overload; virtual;
    procedure setAmPmStrings(para1: Arr1JLString); overload; virtual;
    procedure setAmPmStrings(var para1: array of JLString); overload; virtual;
    function getZoneStrings(): Arr2JLString; overload; virtual;
    procedure setZoneStrings(para1: Arr2JLString); overload; virtual;
    function getLocalPatternChars(): JLString; overload; virtual;
    procedure setLocalPatternChars(para1: JLString); overload; virtual;
    function clone(): JLObject; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JTDecimalFormatSymbols = class external 'java.text' name 'DecimalFormatSymbols' (JLObject, JLCloneable, JISerializable)
  public
    type
      InnerDecimalFormatSymbolsGetter = class;
      Arr1InnerDecimalFormatSymbolsGetter = array of InnerDecimalFormatSymbolsGetter;
      Arr2InnerDecimalFormatSymbolsGetter = array of Arr1InnerDecimalFormatSymbolsGetter;
      Arr3InnerDecimalFormatSymbolsGetter = array of Arr2InnerDecimalFormatSymbolsGetter;
      InnerDecimalFormatSymbolsGetter = class external 'java.text' name 'DecimalFormatSymbolsGetter' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: JULocale); overload;
    class function getAvailableLocales(): Arr1JULocale; static; overload;
    class function getInstance(): JTDecimalFormatSymbols; static; overload; final;
    class function getInstance(para1: JULocale): JTDecimalFormatSymbols; static; overload; final;
    function getZeroDigit(): jchar; overload; virtual;
    procedure setZeroDigit(para1: jchar); overload; virtual;
    function getGroupingSeparator(): jchar; overload; virtual;
    procedure setGroupingSeparator(para1: jchar); overload; virtual;
    function getDecimalSeparator(): jchar; overload; virtual;
    procedure setDecimalSeparator(para1: jchar); overload; virtual;
    function getPerMill(): jchar; overload; virtual;
    procedure setPerMill(para1: jchar); overload; virtual;
    function getPercent(): jchar; overload; virtual;
    procedure setPercent(para1: jchar); overload; virtual;
    function getDigit(): jchar; overload; virtual;
    procedure setDigit(para1: jchar); overload; virtual;
    function getPatternSeparator(): jchar; overload; virtual;
    procedure setPatternSeparator(para1: jchar); overload; virtual;
    function getInfinity(): JLString; overload; virtual;
    procedure setInfinity(para1: JLString); overload; virtual;
    function getNaN(): JLString; overload; virtual;
    procedure setNaN(para1: JLString); overload; virtual;
    function getMinusSign(): jchar; overload; virtual;
    procedure setMinusSign(para1: jchar); overload; virtual;
    function getCurrencySymbol(): JLString; overload; virtual;
    procedure setCurrencySymbol(para1: JLString); overload; virtual;
    function getInternationalCurrencySymbol(): JLString; overload; virtual;
    procedure setInternationalCurrencySymbol(para1: JLString); overload; virtual;
    function getCurrency(): JUCurrency; overload; virtual;
    procedure setCurrency(para1: JUCurrency); overload; virtual;
    function getMonetaryDecimalSeparator(): jchar; overload; virtual;
    procedure setMonetaryDecimalSeparator(para1: jchar); overload; virtual;
    function getExponentSeparator(): JLString; overload; virtual;
    procedure setExponentSeparator(para1: JLString); overload; virtual;
    function clone(): JLObject; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JTDigitList = class sealed external 'java.text' name 'DigitList' (JLObject, JLCloneable)
  public
    const
      MAX_COUNT = 19;
  public
    var
      fdecimalAt: jint; external name 'decimalAt';
      fcount: jint; external name 'count';
      fdigits: Arr1jchar; external name 'digits';
  public
    procedure clear(); overload; virtual;
    procedure append(para1: jchar); overload; virtual;
    function getDouble(): jdouble; overload; virtual; final;
    function getLong(): jlong; overload; virtual; final;
    function getBigDecimal(): JMBigDecimal; overload; virtual; final;
    procedure &set(para1: jboolean; para2: jdouble; para3: jint); overload; virtual; final;
    procedure &set(para1: jboolean; para2: jlong); overload; virtual; final;
    procedure &set(para1: jboolean; para2: jlong; para3: jint); overload; virtual; final;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function clone(): JLObject; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JULocale = class sealed external 'java.util' name 'Locale' (JLObject, JLCloneable, JISerializable)
  public
    type
      InnerLocaleNameGetter = class;
      Arr1InnerLocaleNameGetter = array of InnerLocaleNameGetter;
      Arr2InnerLocaleNameGetter = array of Arr1InnerLocaleNameGetter;
      Arr3InnerLocaleNameGetter = array of Arr2InnerLocaleNameGetter;
      InnerLocaleNameGetter = class external 'java.util' name 'LocaleNameGetter' 
      end;

  public
    final class var
      fENGLISH: JULocale; external name 'ENGLISH';
      fFRENCH: JULocale; external name 'FRENCH';
      fGERMAN: JULocale; external name 'GERMAN';
      fITALIAN: JULocale; external name 'ITALIAN';
      fJAPANESE: JULocale; external name 'JAPANESE';
      fKOREAN: JULocale; external name 'KOREAN';
      fCHINESE: JULocale; external name 'CHINESE';
      fSIMPLIFIED_CHINESE: JULocale; external name 'SIMPLIFIED_CHINESE';
      fTRADITIONAL_CHINESE: JULocale; external name 'TRADITIONAL_CHINESE';
      fFRANCE: JULocale; external name 'FRANCE';
      fGERMANY: JULocale; external name 'GERMANY';
      fITALY: JULocale; external name 'ITALY';
      fJAPAN: JULocale; external name 'JAPAN';
      fKOREA: JULocale; external name 'KOREA';
      fCHINA: JULocale; external name 'CHINA';
      fPRC: JULocale; external name 'PRC';
      fTAIWAN: JULocale; external name 'TAIWAN';
      fUK: JULocale; external name 'UK';
      fUS: JULocale; external name 'US';
      fCANADA: JULocale; external name 'CANADA';
      fCANADA_FRENCH: JULocale; external name 'CANADA_FRENCH';
      fROOT: JULocale; external name 'ROOT';
  public
    constructor create(para1: JLString; para2: JLString; para3: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString); overload;
    class function getDefault(): JULocale; static; overload;
    class procedure setDefault(para1: JULocale); static; overload;
    class function getAvailableLocales(): Arr1JULocale; static; overload;
    class function getISOCountries(): Arr1JLString; static; overload;
    class function getISOLanguages(): Arr1JLString; static; overload;
    function getLanguage(): JLString; overload; virtual;
    function getCountry(): JLString; overload; virtual;
    function getVariant(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual; final;
    function getISO3Language(): JLString; overload; virtual;  // throws java.util.MissingResourceException
    function getISO3Country(): JLString; overload; virtual;  // throws java.util.MissingResourceException
    function getDisplayLanguage(): JLString; overload; virtual; final;
    function getDisplayLanguage(para1: JULocale): JLString; overload; virtual;
    function getDisplayCountry(): JLString; overload; virtual; final;
    function getDisplayCountry(para1: JULocale): JLString; overload; virtual;
    function getDisplayVariant(): JLString; overload; virtual; final;
    function getDisplayVariant(para1: JULocale): JLString; overload; virtual;
    function getDisplayName(): JLString; overload; virtual; final;
    function getDisplayName(para1: JULocale): JLString; overload; virtual;
    function clone(): JLObject; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JUTimeZone = class abstract external 'java.util' name 'TimeZone' (JLObject, JISerializable, JLCloneable)
  public
    type
      InnerDisplayNames = class;
      Arr1InnerDisplayNames = array of InnerDisplayNames;
      Arr2InnerDisplayNames = array of Arr1InnerDisplayNames;
      Arr3InnerDisplayNames = array of Arr2InnerDisplayNames;
      InnerDisplayNames = class external 'java.util' name 'DisplayNames' 
      end;

  public
    const
      SHORT = 0;
      LONG = 1;
  public
    constructor create(); overload;
    function getOffset(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint): jint; overload; virtual; abstract;
    function getOffset(para1: jlong): jint; overload; virtual;
    procedure setRawOffset(para1: jint); overload; virtual; abstract;
    function getRawOffset(): jint; overload; virtual; abstract;
    function getID(): JLString; overload; virtual;
    procedure setID(para1: JLString); overload; virtual;
    function getDisplayName(): JLString; overload; virtual; final;
    function getDisplayName(para1: JULocale): JLString; overload; virtual; final;
    function getDisplayName(para1: jboolean; para2: jint): JLString; overload; virtual; final;
    function getDisplayName(para1: jboolean; para2: jint; para3: JULocale): JLString; overload; virtual;
    function getDSTSavings(): jint; overload; virtual;
    function useDaylightTime(): jboolean; overload; virtual; abstract;
    function inDaylightTime(para1: JUDate): jboolean; overload; virtual; abstract;
    class function getTimeZone(para1: JLString): JUTimeZone; static; overload;
    class function getAvailableIDs(para1: jint): Arr1JLString; static; overload;
    class function getAvailableIDs(): Arr1JLString; static; overload;
    class function getDefault(): JUTimeZone; static; overload;
    class procedure setDefault(para1: JUTimeZone); static; overload;
    function hasSameRules(para1: JUTimeZone): jboolean; overload; virtual;
    function clone(): JLObject; overload; virtual;
  end;

  JUJManifest = class external 'java.util.jar' name 'Manifest' (JLObject, JLCloneable)
  public
    type
      InnerFastInputStream = class;
      Arr1InnerFastInputStream = array of InnerFastInputStream;
      Arr2InnerFastInputStream = array of Arr1InnerFastInputStream;
      Arr3InnerFastInputStream = array of Arr2InnerFastInputStream;
      InnerFastInputStream = class external 'java.util.jar' name 'FastInputStream' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: JIInputStream); overload;  // throws java.io.IOException
    constructor create(para1: JUJManifest); overload;
    function getMainAttributes(): JUJAttributes; overload; virtual;
    function getEntries(): JUMap; overload; virtual;
    function getAttributes(para1: JLString): JUJAttributes; overload; virtual;
    procedure clear(); overload; virtual;
    procedure write(para1: JIOutputStream); overload; virtual;  // throws java.io.IOException
    procedure read(para1: JIInputStream); overload; virtual;  // throws java.io.IOException
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function clone(): JLObject; overload; virtual;
  end;

  JCMac = class external 'javax.crypto' name 'Mac' (JLObject, JLCloneable)
  strict protected
    constructor create(para1: JCMacSpi; para2: JSProvider; para3: JLString); overload;
  public
    function getAlgorithm(): JLString; overload; virtual; final;
    class function getInstance(para1: JLString): JCMac; static; overload; final;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JCMac; static; overload; final;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JCMac; static; overload; final;  // throws java.security.NoSuchAlgorithmException
    function getProvider(): JSProvider; overload; virtual; final;
    function getMacLength(): jint; overload; virtual; final;
    procedure init(para1: JSKey); overload; virtual; final;  // throws java.security.InvalidKeyException
    procedure init(para1: JSKey; para2: JSSAlgorithmParameterSpec); overload; virtual; final;  // throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
    procedure update(para1: jbyte); overload; virtual; final;  // throws java.lang.IllegalStateException
    procedure update(para1: Arr1jbyte); overload; virtual; final;  // throws java.lang.IllegalStateException
    procedure update(var para1: array of jbyte); overload; virtual; final;  // throws java.lang.IllegalStateException
    procedure update(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual; final;  // throws java.lang.IllegalStateException
    procedure update(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual; final;  // throws java.lang.IllegalStateException
    procedure update(para1: JNByteBuffer); overload; virtual; final;
    function doFinal(): Arr1jbyte; overload; virtual; final;  // throws java.lang.IllegalStateException
    procedure doFinal(para1: Arr1jbyte; para2: jint); overload; virtual; final;  // throws javax.crypto.ShortBufferException, java.lang.IllegalStateException
    procedure doFinal(var para1: array of jbyte; para2: jint); overload; virtual; final;  // throws javax.crypto.ShortBufferException, java.lang.IllegalStateException
    function doFinal(para1: Arr1jbyte): Arr1jbyte; overload; virtual; final;  // throws java.lang.IllegalStateException
    function doFinal(var para1: array of jbyte): Arr1jbyte; overload; virtual; final;  // throws java.lang.IllegalStateException
    procedure reset(); overload; virtual; final;
    function clone(): JLObject; overload; virtual; final;  // throws java.lang.CloneNotSupportedException
  end;

  JISDigraphNode = class external 'javax.imageio.spi' name 'DigraphNode' (JLObject, JLCloneable, JISerializable)
  strict protected
    var
      fdata: JLObject; external name 'data';
      foutNodes: JUSet; external name 'outNodes';
      finDegree: jint; external name 'inDegree';
  public
    constructor create(para1: JLObject); overload;
    function getData(): JLObject; overload; virtual;
    function getOutNodes(): JUIterator; overload; virtual;
    function addEdge(para1: JISDigraphNode): jboolean; overload; virtual;
    function hasEdge(para1: JISDigraphNode): jboolean; overload; virtual;
    function removeEdge(para1: JISDigraphNode): jboolean; overload; virtual;
    procedure dispose(); overload; virtual;
    function getInDegree(): jint; overload; virtual;
  end;

  JMDescriptor = interface external 'javax.management' name 'Descriptor' (JISerializable, JLCloneable)
    function getFieldValue(para1: JLString): JLObject; overload;  // throws javax.management.RuntimeOperationsException
    procedure setField(para1: JLString; para2: JLObject); overload;  // throws javax.management.RuntimeOperationsException
    function getFields(): Arr1JLString; overload;
    function getFieldNames(): Arr1JLString; overload;
    function getFieldValues(para1: Arr1JLString): Arr1JLObject; overload;
    function getFieldValues(const para1: array of JLString): Arr1JLObject; overload;
    procedure removeField(para1: JLString); overload;
    procedure setFields(para1: Arr1JLString; para2: Arr1JLObject); overload;  // throws javax.management.RuntimeOperationsException
    procedure setFields(var para1: array of JLString; var para2: array of JLObject); overload;  // throws javax.management.RuntimeOperationsException
    function clone(): JLObject; overload;  // throws javax.management.RuntimeOperationsException
    function isValid(): jboolean; overload;  // throws javax.management.RuntimeOperationsException
    function equals(para1: JLObject): jboolean; overload;
    function hashCode(): jint; overload;
  end;

  JNReference = class external 'javax.naming' name 'Reference' (JLObject, JLCloneable, JISerializable)
  strict protected
    var
      fclassName: JLString; external name 'className';
      faddrs: JUVector; external name 'addrs';
      fclassFactory: JLString; external name 'classFactory';
      fclassFactoryLocation: JLString; external name 'classFactoryLocation';
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JNRefAddr); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLString); overload;
    constructor create(para1: JLString; para2: JNRefAddr; para3: JLString; para4: JLString); overload;
    function getClassName(): JLString; overload; virtual;
    function getFactoryClassName(): JLString; overload; virtual;
    function getFactoryClassLocation(): JLString; overload; virtual;
    function get(para1: JLString): JNRefAddr; overload; virtual;
    function get(para1: jint): JNRefAddr; overload; virtual;
    function getAll(): JUEnumeration; overload; virtual;
    function size(): jint; overload; virtual;
    procedure add(para1: JNRefAddr); overload; virtual;
    procedure add(para1: jint; para2: JNRefAddr); overload; virtual;
    function remove(para1: jint): JLObject; overload; virtual;
    procedure clear(); overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function clone(): JLObject; overload; virtual;
  end;

  JNDAttribute = interface external 'javax.naming.directory' name 'Attribute' (JLCloneable, JISerializable)
    const
      serialVersionUID = jlong(8707690322213556804);
    function getAll(): JNNamingEnumeration; overload;  // throws javax.naming.NamingException
    function get(): JLObject; overload;  // throws javax.naming.NamingException
    function size(): jint; overload;
    function getID(): JLString; overload;
    function contains(para1: JLObject): jboolean; overload;
    function add(para1: JLObject): jboolean; overload;
    function remove(para1: JLObject): jboolean; overload;
    procedure clear(); overload;
    function getAttributeSyntaxDefinition(): JNDDirContext; overload;  // throws javax.naming.NamingException
    function getAttributeDefinition(): JNDDirContext; overload;  // throws javax.naming.NamingException
    function clone(): JLObject; overload;
    function isOrdered(): jboolean; overload;
    function get(para1: jint): JLObject; overload;  // throws javax.naming.NamingException
    function remove(para1: jint): JLObject; overload;
    procedure add(para1: jint; para2: JLObject); overload;
    function &set(para1: jint; para2: JLObject): JLObject; overload;
  end;

  JNDAttributes = interface external 'javax.naming.directory' name 'Attributes' (JLCloneable, JISerializable)
    function isCaseIgnored(): jboolean; overload;
    function size(): jint; overload;
    function get(para1: JLString): JNDAttribute; overload;
    function getAll(): JNNamingEnumeration; overload;
    function getIDs(): JNNamingEnumeration; overload;
    function put(para1: JLString; para2: JLObject): JNDAttribute; overload;
    function put(para1: JNDAttribute): JNDAttribute; overload;
    function remove(para1: JLString): JNDAttribute; overload;
    function clone(): JLObject; overload;
  end;

  JPDocFlavor = class external 'javax.print' name 'DocFlavor' (JLObject, JISerializable, JLCloneable)
  public
    type
      InnerBYTE_ARRAY = class;
      Arr1InnerBYTE_ARRAY = array of InnerBYTE_ARRAY;
      Arr2InnerBYTE_ARRAY = array of Arr1InnerBYTE_ARRAY;
      Arr3InnerBYTE_ARRAY = array of Arr2InnerBYTE_ARRAY;
      InnerCHAR_ARRAY = class;
      Arr1InnerCHAR_ARRAY = array of InnerCHAR_ARRAY;
      Arr2InnerCHAR_ARRAY = array of Arr1InnerCHAR_ARRAY;
      Arr3InnerCHAR_ARRAY = array of Arr2InnerCHAR_ARRAY;
      InnerINPUT_STREAM = class;
      Arr1InnerINPUT_STREAM = array of InnerINPUT_STREAM;
      Arr2InnerINPUT_STREAM = array of Arr1InnerINPUT_STREAM;
      Arr3InnerINPUT_STREAM = array of Arr2InnerINPUT_STREAM;
      InnerREADER = class;
      Arr1InnerREADER = array of InnerREADER;
      Arr2InnerREADER = array of Arr1InnerREADER;
      Arr3InnerREADER = array of Arr2InnerREADER;
      InnerSERVICE_FORMATTED = class;
      Arr1InnerSERVICE_FORMATTED = array of InnerSERVICE_FORMATTED;
      Arr2InnerSERVICE_FORMATTED = array of Arr1InnerSERVICE_FORMATTED;
      Arr3InnerSERVICE_FORMATTED = array of Arr2InnerSERVICE_FORMATTED;
      InnerSTRING = class;
      Arr1InnerSTRING = array of InnerSTRING;
      Arr2InnerSTRING = array of Arr1InnerSTRING;
      Arr3InnerSTRING = array of Arr2InnerSTRING;
      InnerURL = class;
      Arr1InnerURL = array of InnerURL;
      Arr2InnerURL = array of Arr1InnerURL;
      Arr3InnerURL = array of Arr2InnerURL;
      InnerBYTE_ARRAY = class external 'javax.print' name 'BYTE_ARRAY' (JPDocFlavor)
      public
        final class var
          fTEXT_PLAIN_HOST: JPDocFlavor.InnerBYTE_ARRAY; external name 'TEXT_PLAIN_HOST';
          fTEXT_PLAIN_UTF_8: JPDocFlavor.InnerBYTE_ARRAY; external name 'TEXT_PLAIN_UTF_8';
          fTEXT_PLAIN_UTF_16: JPDocFlavor.InnerBYTE_ARRAY; external name 'TEXT_PLAIN_UTF_16';
          fTEXT_PLAIN_UTF_16BE: JPDocFlavor.InnerBYTE_ARRAY; external name 'TEXT_PLAIN_UTF_16BE';
          fTEXT_PLAIN_UTF_16LE: JPDocFlavor.InnerBYTE_ARRAY; external name 'TEXT_PLAIN_UTF_16LE';
          fTEXT_PLAIN_US_ASCII: JPDocFlavor.InnerBYTE_ARRAY; external name 'TEXT_PLAIN_US_ASCII';
          fTEXT_HTML_HOST: JPDocFlavor.InnerBYTE_ARRAY; external name 'TEXT_HTML_HOST';
          fTEXT_HTML_UTF_8: JPDocFlavor.InnerBYTE_ARRAY; external name 'TEXT_HTML_UTF_8';
          fTEXT_HTML_UTF_16: JPDocFlavor.InnerBYTE_ARRAY; external name 'TEXT_HTML_UTF_16';
          fTEXT_HTML_UTF_16BE: JPDocFlavor.InnerBYTE_ARRAY; external name 'TEXT_HTML_UTF_16BE';
          fTEXT_HTML_UTF_16LE: JPDocFlavor.InnerBYTE_ARRAY; external name 'TEXT_HTML_UTF_16LE';
          fTEXT_HTML_US_ASCII: JPDocFlavor.InnerBYTE_ARRAY; external name 'TEXT_HTML_US_ASCII';
          fPDF: JPDocFlavor.InnerBYTE_ARRAY; external name 'PDF';
          fPOSTSCRIPT: JPDocFlavor.InnerBYTE_ARRAY; external name 'POSTSCRIPT';
          fPCL: JPDocFlavor.InnerBYTE_ARRAY; external name 'PCL';
          fGIF: JPDocFlavor.InnerBYTE_ARRAY; external name 'GIF';
          fJPEG: JPDocFlavor.InnerBYTE_ARRAY; external name 'JPEG';
          fPNG: JPDocFlavor.InnerBYTE_ARRAY; external name 'PNG';
          fAUTOSENSE: JPDocFlavor.InnerBYTE_ARRAY; external name 'AUTOSENSE';
      public
        constructor create(para1: JLString); overload;
      end;

      InnerCHAR_ARRAY = class external 'javax.print' name 'CHAR_ARRAY' (JPDocFlavor)
      public
        final class var
          fTEXT_PLAIN: JPDocFlavor.InnerCHAR_ARRAY; external name 'TEXT_PLAIN';
          fTEXT_HTML: JPDocFlavor.InnerCHAR_ARRAY; external name 'TEXT_HTML';
      public
        constructor create(para1: JLString); overload;
      end;

      InnerINPUT_STREAM = class external 'javax.print' name 'INPUT_STREAM' (JPDocFlavor)
      public
        final class var
          fTEXT_PLAIN_HOST: JPDocFlavor.InnerINPUT_STREAM; external name 'TEXT_PLAIN_HOST';
          fTEXT_PLAIN_UTF_8: JPDocFlavor.InnerINPUT_STREAM; external name 'TEXT_PLAIN_UTF_8';
          fTEXT_PLAIN_UTF_16: JPDocFlavor.InnerINPUT_STREAM; external name 'TEXT_PLAIN_UTF_16';
          fTEXT_PLAIN_UTF_16BE: JPDocFlavor.InnerINPUT_STREAM; external name 'TEXT_PLAIN_UTF_16BE';
          fTEXT_PLAIN_UTF_16LE: JPDocFlavor.InnerINPUT_STREAM; external name 'TEXT_PLAIN_UTF_16LE';
          fTEXT_PLAIN_US_ASCII: JPDocFlavor.InnerINPUT_STREAM; external name 'TEXT_PLAIN_US_ASCII';
          fTEXT_HTML_HOST: JPDocFlavor.InnerINPUT_STREAM; external name 'TEXT_HTML_HOST';
          fTEXT_HTML_UTF_8: JPDocFlavor.InnerINPUT_STREAM; external name 'TEXT_HTML_UTF_8';
          fTEXT_HTML_UTF_16: JPDocFlavor.InnerINPUT_STREAM; external name 'TEXT_HTML_UTF_16';
          fTEXT_HTML_UTF_16BE: JPDocFlavor.InnerINPUT_STREAM; external name 'TEXT_HTML_UTF_16BE';
          fTEXT_HTML_UTF_16LE: JPDocFlavor.InnerINPUT_STREAM; external name 'TEXT_HTML_UTF_16LE';
          fTEXT_HTML_US_ASCII: JPDocFlavor.InnerINPUT_STREAM; external name 'TEXT_HTML_US_ASCII';
          fPDF: JPDocFlavor.InnerINPUT_STREAM; external name 'PDF';
          fPOSTSCRIPT: JPDocFlavor.InnerINPUT_STREAM; external name 'POSTSCRIPT';
          fPCL: JPDocFlavor.InnerINPUT_STREAM; external name 'PCL';
          fGIF: JPDocFlavor.InnerINPUT_STREAM; external name 'GIF';
          fJPEG: JPDocFlavor.InnerINPUT_STREAM; external name 'JPEG';
          fPNG: JPDocFlavor.InnerINPUT_STREAM; external name 'PNG';
          fAUTOSENSE: JPDocFlavor.InnerINPUT_STREAM; external name 'AUTOSENSE';
      public
        constructor create(para1: JLString); overload;
      end;

      InnerREADER = class external 'javax.print' name 'READER' (JPDocFlavor)
      public
        final class var
          fTEXT_PLAIN: JPDocFlavor.InnerREADER; external name 'TEXT_PLAIN';
          fTEXT_HTML: JPDocFlavor.InnerREADER; external name 'TEXT_HTML';
      public
        constructor create(para1: JLString); overload;
      end;

      InnerSERVICE_FORMATTED = class external 'javax.print' name 'SERVICE_FORMATTED' (JPDocFlavor)
      public
        final class var
          fRENDERABLE_IMAGE: JPDocFlavor.InnerSERVICE_FORMATTED; external name 'RENDERABLE_IMAGE';
          fPRINTABLE: JPDocFlavor.InnerSERVICE_FORMATTED; external name 'PRINTABLE';
          fPAGEABLE: JPDocFlavor.InnerSERVICE_FORMATTED; external name 'PAGEABLE';
      public
        constructor create(para1: JLString); overload;
      end;

      InnerSTRING = class external 'javax.print' name 'STRING' (JPDocFlavor)
      public
        final class var
          fTEXT_PLAIN: JPDocFlavor.InnerSTRING; external name 'TEXT_PLAIN';
          fTEXT_HTML: JPDocFlavor.InnerSTRING; external name 'TEXT_HTML';
      public
        constructor create(para1: JLString); overload;
      end;

      InnerURL = class external 'javax.print' name 'URL' (JPDocFlavor)
      public
        final class var
          fTEXT_PLAIN_HOST: JPDocFlavor.InnerURL; external name 'TEXT_PLAIN_HOST';
          fTEXT_PLAIN_UTF_8: JPDocFlavor.InnerURL; external name 'TEXT_PLAIN_UTF_8';
          fTEXT_PLAIN_UTF_16: JPDocFlavor.InnerURL; external name 'TEXT_PLAIN_UTF_16';
          fTEXT_PLAIN_UTF_16BE: JPDocFlavor.InnerURL; external name 'TEXT_PLAIN_UTF_16BE';
          fTEXT_PLAIN_UTF_16LE: JPDocFlavor.InnerURL; external name 'TEXT_PLAIN_UTF_16LE';
          fTEXT_PLAIN_US_ASCII: JPDocFlavor.InnerURL; external name 'TEXT_PLAIN_US_ASCII';
          fTEXT_HTML_HOST: JPDocFlavor.InnerURL; external name 'TEXT_HTML_HOST';
          fTEXT_HTML_UTF_8: JPDocFlavor.InnerURL; external name 'TEXT_HTML_UTF_8';
          fTEXT_HTML_UTF_16: JPDocFlavor.InnerURL; external name 'TEXT_HTML_UTF_16';
          fTEXT_HTML_UTF_16BE: JPDocFlavor.InnerURL; external name 'TEXT_HTML_UTF_16BE';
          fTEXT_HTML_UTF_16LE: JPDocFlavor.InnerURL; external name 'TEXT_HTML_UTF_16LE';
          fTEXT_HTML_US_ASCII: JPDocFlavor.InnerURL; external name 'TEXT_HTML_US_ASCII';
          fPDF: JPDocFlavor.InnerURL; external name 'PDF';
          fPOSTSCRIPT: JPDocFlavor.InnerURL; external name 'POSTSCRIPT';
          fPCL: JPDocFlavor.InnerURL; external name 'PCL';
          fGIF: JPDocFlavor.InnerURL; external name 'GIF';
          fJPEG: JPDocFlavor.InnerURL; external name 'JPEG';
          fPNG: JPDocFlavor.InnerURL; external name 'PNG';
          fAUTOSENSE: JPDocFlavor.InnerURL; external name 'AUTOSENSE';
      public
        constructor create(para1: JLString); overload;
      end;

  public
    final class var
      fhostEncoding: JLString; external name 'hostEncoding';
  public
    constructor create(para1: JLString; para2: JLString); overload;
    function getMimeType(): JLString; overload; virtual;
    function getMediaType(): JLString; overload; virtual;
    function getMediaSubtype(): JLString; overload; virtual;
    function getParameter(para1: JLString): JLString; overload; virtual;
    function getRepresentationClassName(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JPMimeType = class external 'javax.print' name 'MimeType' (JLObject, JISerializable, JLCloneable)
  public
    type
      InnerLexicalAnalyzer = class;
      Arr1InnerLexicalAnalyzer = array of InnerLexicalAnalyzer;
      Arr2InnerLexicalAnalyzer = array of Arr1InnerLexicalAnalyzer;
      Arr3InnerLexicalAnalyzer = array of Arr2InnerLexicalAnalyzer;
      InnerParameterMap = class;
      Arr1InnerParameterMap = array of InnerParameterMap;
      Arr2InnerParameterMap = array of Arr1InnerParameterMap;
      Arr3InnerParameterMap = array of Arr2InnerParameterMap;
      InnerParameterMapEntry = class;
      Arr1InnerParameterMapEntry = array of InnerParameterMapEntry;
      Arr2InnerParameterMapEntry = array of Arr1InnerParameterMapEntry;
      Arr3InnerParameterMapEntry = array of Arr2InnerParameterMapEntry;
      InnerParameterMapEntrySet = class;
      Arr1InnerParameterMapEntrySet = array of InnerParameterMapEntrySet;
      Arr2InnerParameterMapEntrySet = array of Arr1InnerParameterMapEntrySet;
      Arr3InnerParameterMapEntrySet = array of Arr2InnerParameterMapEntrySet;
      InnerParameterMapEntrySetIterator = class;
      Arr1InnerParameterMapEntrySetIterator = array of InnerParameterMapEntrySetIterator;
      Arr2InnerParameterMapEntrySetIterator = array of Arr1InnerParameterMapEntrySetIterator;
      Arr3InnerParameterMapEntrySetIterator = array of Arr2InnerParameterMapEntrySetIterator;
      InnerLexicalAnalyzer = class external 'javax.print' name 'LexicalAnalyzer' 
      end;

      InnerParameterMap = class external 'javax.print' name 'ParameterMap' 
      end;

      InnerParameterMapEntry = class external 'javax.print' name 'ParameterMapEntry' 
      end;

      InnerParameterMapEntrySet = class external 'javax.print' name 'ParameterMapEntrySet' 
      end;

      InnerParameterMapEntrySetIterator = class external 'javax.print' name 'ParameterMapEntrySetIterator' 
      end;

  public
    constructor create(para1: JLString); overload;
    function getMimeType(): JLString; overload; virtual;
    function getMediaType(): JLString; overload; virtual;
    function getMediaSubtype(): JLString; overload; virtual;
    function getParameterMap(): JUMap; overload; virtual;
    function toString(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JPADateTimeSyntax = class abstract external 'javax.print.attribute' name 'DateTimeSyntax' (JLObject, JISerializable, JLCloneable)
  strict protected
    constructor create(para1: JUDate); overload;
  public
    function getValue(): JUDate; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JPAEnumSyntax = class abstract external 'javax.print.attribute' name 'EnumSyntax' (JLObject, JISerializable, JLCloneable)
  strict protected
    constructor create(para1: jint); overload;
  public
    function getValue(): jint; overload; virtual;
    function clone(): JLObject; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  strict protected
    function readResolve(): JLObject; overload; virtual;  // throws java.io.ObjectStreamException
    function getStringTable(): Arr1JLString; overload; virtual;
    function getEnumValueTable(): Arr1JPAEnumSyntax; overload; virtual;
    function getOffset(): jint; overload; virtual;
  end;

  JPAIntegerSyntax = class abstract external 'javax.print.attribute' name 'IntegerSyntax' (JLObject, JISerializable, JLCloneable)
  strict protected
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint); overload;
  public
    function getValue(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JPAResolutionSyntax = class abstract external 'javax.print.attribute' name 'ResolutionSyntax' (JLObject, JISerializable, JLCloneable)
  public
    const
      DPI = 100;
      DPCM = 254;
  public
    constructor create(para1: jint; para2: jint; para3: jint); overload;
    function getResolution(para1: jint): Arr1jint; overload; virtual;
    function getCrossFeedResolution(para1: jint): jint; overload; virtual;
    function getFeedResolution(para1: jint): jint; overload; virtual;
    function toString(para1: jint; para2: JLString): JLString; overload; virtual;
    function lessThanOrEquals(para1: JPAResolutionSyntax): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  strict protected
    function getCrossFeedResolutionDphi(): jint; overload; virtual;
    function getFeedResolutionDphi(): jint; overload; virtual;
  end;

  JPASetOfIntegerSyntax = class abstract external 'javax.print.attribute' name 'SetOfIntegerSyntax' (JLObject, JISerializable, JLCloneable)
  strict protected
    constructor create(para1: JLString); overload;
    constructor create(para1: Arr2jint); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jint); overload;
  public
    function getMembers(): Arr2jint; overload; virtual;
    function contains(para1: jint): jboolean; overload; virtual;
    function contains(para1: JPAIntegerSyntax): jboolean; overload; virtual;
    function next(para1: jint): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JPASize2DSyntax = class abstract external 'javax.print.attribute' name 'Size2DSyntax' (JLObject, JISerializable, JLCloneable)
  public
    const
      INCH = 25400;
      MM = 1000;
  strict protected
    constructor create(para1: jfloat; para2: jfloat; para3: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint); overload;
  public
    function getSize(para1: jint): Arr1jfloat; overload; virtual;
    function getX(para1: jint): jfloat; overload; virtual;
    function getY(para1: jint): jfloat; overload; virtual;
    function toString(para1: jint; para2: JLString): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  strict protected
    function getXMicrometers(): jint; overload; virtual;
    function getYMicrometers(): jint; overload; virtual;
  end;

  JPATextSyntax = class abstract external 'javax.print.attribute' name 'TextSyntax' (JLObject, JISerializable, JLCloneable)
  strict protected
    constructor create(para1: JLString; para2: JULocale); overload;
  public
    function getValue(): JLString; overload; virtual;
    function getLocale(): JULocale; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JPAURISyntax = class abstract external 'javax.print.attribute' name 'URISyntax' (JLObject, JISerializable, JLCloneable)
  strict protected
    constructor create(para1: JNURI); overload;
  public
    function getURI(): JNURI; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSMMidiMessage = class abstract external 'javax.sound.midi' name 'MidiMessage' (JLObject, JLCloneable)
  strict protected
    var
      fdata: Arr1jbyte; external name 'data';
      flength: jint; external name 'length';
  strict protected
    constructor create(para1: Arr1jbyte); overload;
    constructor create(const para1: array of jbyte); overload;
    procedure setMessage(para1: Arr1jbyte; para2: jint); overload; virtual;  // throws javax.sound.midi.InvalidMidiDataException
    procedure setMessage(var para1: array of jbyte; para2: jint); overload; virtual;  // throws javax.sound.midi.InvalidMidiDataException
  public
    function getMessage(): Arr1jbyte; overload; virtual;
    function getStatus(): jint; overload; virtual;
    function getLength(): jint; overload; virtual;
    function clone(): JLObject; overload; virtual; abstract;
  end;

  JSRBaseRowSet = class abstract external 'javax.sql.rowset' name 'BaseRowSet' (JLObject, JISerializable, JLCloneable)
  public
    const
      UNICODE_STREAM_PARAM = 0;
      BINARY_STREAM_PARAM = 1;
      ASCII_STREAM_PARAM = 2;
  strict protected
    var
      fbinaryStream: JIInputStream; external name 'binaryStream';
      funicodeStream: JIInputStream; external name 'unicodeStream';
      fasciiStream: JIInputStream; external name 'asciiStream';
      fcharStream: JIReader; external name 'charStream';
  public
    constructor create(); overload;
  strict protected
    procedure initParams(); overload; virtual;
  public
    procedure addRowSetListener(para1: JSRowSetListener); overload; virtual;
    procedure removeRowSetListener(para1: JSRowSetListener); overload; virtual;
  strict protected
    procedure notifyCursorMoved(); overload; virtual;  // throws java.sql.SQLException
    procedure notifyRowChanged(); overload; virtual;  // throws java.sql.SQLException
    procedure notifyRowSetChanged(); overload; virtual;  // throws java.sql.SQLException
  public
    function getCommand(): JLString; overload; virtual;
    procedure setCommand(para1: JLString); overload; virtual;  // throws java.sql.SQLException
    function getUrl(): JLString; overload; virtual;  // throws java.sql.SQLException
    procedure setUrl(para1: JLString); overload; virtual;  // throws java.sql.SQLException
    function getDataSourceName(): JLString; overload; virtual;
    procedure setDataSourceName(para1: JLString); overload; virtual;  // throws java.sql.SQLException
    function getUsername(): JLString; overload; virtual;
    procedure setUsername(para1: JLString); overload; virtual;
    function getPassword(): JLString; overload; virtual;
    procedure setPassword(para1: JLString); overload; virtual;
    procedure setType(para1: jint); overload; virtual;  // throws java.sql.SQLException
    function getType(): jint; overload; virtual;  // throws java.sql.SQLException
    procedure setConcurrency(para1: jint); overload; virtual;  // throws java.sql.SQLException
    function isReadOnly(): jboolean; overload; virtual;
    procedure setReadOnly(para1: jboolean); overload; virtual;
    function getTransactionIsolation(): jint; overload; virtual;
    procedure setTransactionIsolation(para1: jint); overload; virtual;  // throws java.sql.SQLException
    function getTypeMap(): JUMap; overload; virtual;
    procedure setTypeMap(para1: JUMap); overload; virtual;
    function getMaxFieldSize(): jint; overload; virtual;  // throws java.sql.SQLException
    procedure setMaxFieldSize(para1: jint); overload; virtual;  // throws java.sql.SQLException
    function getMaxRows(): jint; overload; virtual;  // throws java.sql.SQLException
    procedure setMaxRows(para1: jint); overload; virtual;  // throws java.sql.SQLException
    procedure setEscapeProcessing(para1: jboolean); overload; virtual;  // throws java.sql.SQLException
    function getQueryTimeout(): jint; overload; virtual;  // throws java.sql.SQLException
    procedure setQueryTimeout(para1: jint); overload; virtual;  // throws java.sql.SQLException
    function getShowDeleted(): jboolean; overload; virtual;  // throws java.sql.SQLException
    procedure setShowDeleted(para1: jboolean); overload; virtual;  // throws java.sql.SQLException
    function getEscapeProcessing(): jboolean; overload; virtual;  // throws java.sql.SQLException
    procedure setFetchDirection(para1: jint); overload; virtual;  // throws java.sql.SQLException
    function getFetchDirection(): jint; overload; virtual;  // throws java.sql.SQLException
    procedure setFetchSize(para1: jint); overload; virtual;  // throws java.sql.SQLException
    function getFetchSize(): jint; overload; virtual;  // throws java.sql.SQLException
    function getConcurrency(): jint; overload; virtual;  // throws java.sql.SQLException
    procedure setNull(para1: jint; para2: jint); overload; virtual;  // throws java.sql.SQLException
    procedure setNull(para1: jint; para2: jint; para3: JLString); overload; virtual;  // throws java.sql.SQLException
    procedure setBoolean(para1: jint; para2: jboolean); overload; virtual;  // throws java.sql.SQLException
    procedure setByte(para1: jint; para2: jbyte); overload; virtual;  // throws java.sql.SQLException
    procedure setShort(para1: jint; para2: jshort); overload; virtual;  // throws java.sql.SQLException
    procedure setInt(para1: jint; para2: jint); overload; virtual;  // throws java.sql.SQLException
    procedure setLong(para1: jint; para2: jlong); overload; virtual;  // throws java.sql.SQLException
    procedure setFloat(para1: jint; para2: jfloat); overload; virtual;  // throws java.sql.SQLException
    procedure setDouble(para1: jint; para2: jdouble); overload; virtual;  // throws java.sql.SQLException
    procedure setBigDecimal(para1: jint; para2: JMBigDecimal); overload; virtual;  // throws java.sql.SQLException
    procedure setString(para1: jint; para2: JLString); overload; virtual;  // throws java.sql.SQLException
    procedure setBytes(para1: jint; para2: Arr1jbyte); overload; virtual;  // throws java.sql.SQLException
    procedure setBytes(para1: jint; var para2: array of jbyte); overload; virtual;  // throws java.sql.SQLException
    procedure setDate(para1: jint; para2: JSDate); overload; virtual;  // throws java.sql.SQLException
    procedure setTime(para1: jint; para2: JSTime); overload; virtual;  // throws java.sql.SQLException
    procedure setTimestamp(para1: jint; para2: JSqlTimestamp); overload; virtual;  // throws java.sql.SQLException
    procedure setAsciiStream(para1: jint; para2: JIInputStream; para3: jint); overload; virtual;  // throws java.sql.SQLException
    procedure setAsciiStream(para1: jint; para2: JIInputStream); overload; virtual;  // throws java.sql.SQLException
    procedure setBinaryStream(para1: jint; para2: JIInputStream; para3: jint); overload; virtual;  // throws java.sql.SQLException
    procedure setBinaryStream(para1: jint; para2: JIInputStream); overload; virtual;  // throws java.sql.SQLException
    procedure setUnicodeStream(para1: jint; para2: JIInputStream; para3: jint); overload; virtual;  // throws java.sql.SQLException
    procedure setCharacterStream(para1: jint; para2: JIReader; para3: jint); overload; virtual;  // throws java.sql.SQLException
    procedure setCharacterStream(para1: jint; para2: JIReader); overload; virtual;  // throws java.sql.SQLException
    procedure setObject(para1: jint; para2: JLObject; para3: jint; para4: jint); overload; virtual;  // throws java.sql.SQLException
    procedure setObject(para1: jint; para2: JLObject; para3: jint); overload; virtual;  // throws java.sql.SQLException
    procedure setObject(para1: jint; para2: JLObject); overload; virtual;  // throws java.sql.SQLException
    procedure setRef(para1: jint; para2: JSRef); overload; virtual;  // throws java.sql.SQLException
    procedure setBlob(para1: jint; para2: JSBlob); overload; virtual;  // throws java.sql.SQLException
    procedure setClob(para1: jint; para2: JSClob); overload; virtual;  // throws java.sql.SQLException
    procedure setArray(para1: jint; para2: JSArray); overload; virtual;  // throws java.sql.SQLException
    procedure setDate(para1: jint; para2: JSDate; para3: JUCalendar); overload; virtual;  // throws java.sql.SQLException
    procedure setTime(para1: jint; para2: JSTime; para3: JUCalendar); overload; virtual;  // throws java.sql.SQLException
    procedure setTimestamp(para1: jint; para2: JSqlTimestamp; para3: JUCalendar); overload; virtual;  // throws java.sql.SQLException
    procedure clearParameters(); overload; virtual;  // throws java.sql.SQLException
    function getParams(): Arr1JLObject; overload; virtual;  // throws java.sql.SQLException
    procedure setNull(para1: JLString; para2: jint); overload; virtual;  // throws java.sql.SQLException
    procedure setNull(para1: JLString; para2: jint; para3: JLString); overload; virtual;  // throws java.sql.SQLException
    procedure setBoolean(para1: JLString; para2: jboolean); overload; virtual;  // throws java.sql.SQLException
    procedure setByte(para1: JLString; para2: jbyte); overload; virtual;  // throws java.sql.SQLException
    procedure setShort(para1: JLString; para2: jshort); overload; virtual;  // throws java.sql.SQLException
    procedure setInt(para1: JLString; para2: jint); overload; virtual;  // throws java.sql.SQLException
    procedure setLong(para1: JLString; para2: jlong); overload; virtual;  // throws java.sql.SQLException
    procedure setFloat(para1: JLString; para2: jfloat); overload; virtual;  // throws java.sql.SQLException
    procedure setDouble(para1: JLString; para2: jdouble); overload; virtual;  // throws java.sql.SQLException
    procedure setBigDecimal(para1: JLString; para2: JMBigDecimal); overload; virtual;  // throws java.sql.SQLException
    procedure setString(para1: JLString; para2: JLString); overload; virtual;  // throws java.sql.SQLException
    procedure setBytes(para1: JLString; para2: Arr1jbyte); overload; virtual;  // throws java.sql.SQLException
    procedure setBytes(para1: JLString; var para2: array of jbyte); overload; virtual;  // throws java.sql.SQLException
    procedure setTimestamp(para1: JLString; para2: JSqlTimestamp); overload; virtual;  // throws java.sql.SQLException
    procedure setAsciiStream(para1: JLString; para2: JIInputStream; para3: jint); overload; virtual;  // throws java.sql.SQLException
    procedure setBinaryStream(para1: JLString; para2: JIInputStream; para3: jint); overload; virtual;  // throws java.sql.SQLException
    procedure setCharacterStream(para1: JLString; para2: JIReader; para3: jint); overload; virtual;  // throws java.sql.SQLException
    procedure setAsciiStream(para1: JLString; para2: JIInputStream); overload; virtual;  // throws java.sql.SQLException
    procedure setBinaryStream(para1: JLString; para2: JIInputStream); overload; virtual;  // throws java.sql.SQLException
    procedure setCharacterStream(para1: JLString; para2: JIReader); overload; virtual;  // throws java.sql.SQLException
    procedure setNCharacterStream(para1: jint; para2: JIReader); overload; virtual;  // throws java.sql.SQLException
    procedure setObject(para1: JLString; para2: JLObject; para3: jint; para4: jint); overload; virtual;  // throws java.sql.SQLException
    procedure setObject(para1: JLString; para2: JLObject; para3: jint); overload; virtual;  // throws java.sql.SQLException
    procedure setObject(para1: JLString; para2: JLObject); overload; virtual;  // throws java.sql.SQLException
    procedure setBlob(para1: jint; para2: JIInputStream; para3: jlong); overload; virtual;  // throws java.sql.SQLException
    procedure setBlob(para1: jint; para2: JIInputStream); overload; virtual;  // throws java.sql.SQLException
    procedure setBlob(para1: JLString; para2: JIInputStream; para3: jlong); overload; virtual;  // throws java.sql.SQLException
    procedure setBlob(para1: JLString; para2: JSBlob); overload; virtual;  // throws java.sql.SQLException
    procedure setBlob(para1: JLString; para2: JIInputStream); overload; virtual;  // throws java.sql.SQLException
    procedure setClob(para1: jint; para2: JIReader; para3: jlong); overload; virtual;  // throws java.sql.SQLException
    procedure setClob(para1: jint; para2: JIReader); overload; virtual;  // throws java.sql.SQLException
    procedure setClob(para1: JLString; para2: JIReader; para3: jlong); overload; virtual;  // throws java.sql.SQLException
    procedure setClob(para1: JLString; para2: JSClob); overload; virtual;  // throws java.sql.SQLException
    procedure setClob(para1: JLString; para2: JIReader); overload; virtual;  // throws java.sql.SQLException
    procedure setDate(para1: JLString; para2: JSDate); overload; virtual;  // throws java.sql.SQLException
    procedure setDate(para1: JLString; para2: JSDate; para3: JUCalendar); overload; virtual;  // throws java.sql.SQLException
    procedure setTime(para1: JLString; para2: JSTime); overload; virtual;  // throws java.sql.SQLException
    procedure setTime(para1: JLString; para2: JSTime; para3: JUCalendar); overload; virtual;  // throws java.sql.SQLException
    procedure setTimestamp(para1: JLString; para2: JSqlTimestamp; para3: JUCalendar); overload; virtual;  // throws java.sql.SQLException
    procedure setSQLXML(para1: jint; para2: JSSQLXML); overload; virtual;  // throws java.sql.SQLException
    procedure setSQLXML(para1: JLString; para2: JSSQLXML); overload; virtual;  // throws java.sql.SQLException
    procedure setRowId(para1: jint; para2: JSRowId); overload; virtual;  // throws java.sql.SQLException
    procedure setRowId(para1: JLString; para2: JSRowId); overload; virtual;  // throws java.sql.SQLException
    procedure setNString(para1: jint; para2: JLString); overload; virtual;  // throws java.sql.SQLException
    procedure setNString(para1: JLString; para2: JLString); overload; virtual;  // throws java.sql.SQLException
    procedure setNCharacterStream(para1: jint; para2: JIReader; para3: jlong); overload; virtual;  // throws java.sql.SQLException
    procedure setNCharacterStream(para1: JLString; para2: JIReader; para3: jlong); overload; virtual;  // throws java.sql.SQLException
    procedure setNCharacterStream(para1: JLString; para2: JIReader); overload; virtual;  // throws java.sql.SQLException
    procedure setNClob(para1: JLString; para2: JSNClob); overload; virtual;  // throws java.sql.SQLException
    procedure setNClob(para1: JLString; para2: JIReader; para3: jlong); overload; virtual;  // throws java.sql.SQLException
    procedure setNClob(para1: JLString; para2: JIReader); overload; virtual;  // throws java.sql.SQLException
    procedure setNClob(para1: jint; para2: JIReader; para3: jlong); overload; virtual;  // throws java.sql.SQLException
    procedure setNClob(para1: jint; para2: JSNClob); overload; virtual;  // throws java.sql.SQLException
    procedure setNClob(para1: jint; para2: JIReader); overload; virtual;  // throws java.sql.SQLException
    procedure setURL_(para1: jint; para2: JNURL); external name 'setURL'; overload; virtual;  // throws java.sql.SQLException
  end;

  JSRSSerialDatalink = class external 'javax.sql.rowset.serial' name 'SerialDatalink' (JLObject, JISerializable, JLCloneable)
  public
    constructor create(para1: JNURL); overload;  // throws javax.sql.rowset.serial.SerialException
    function getDatalink(): JNURL; overload; virtual;  // throws javax.sql.rowset.serial.SerialException
  end;

  JSRSSerialJavaObject = class external 'javax.sql.rowset.serial' name 'SerialJavaObject' (JLObject, JISerializable, JLCloneable)
  public
    constructor create(para1: JLObject); overload;  // throws javax.sql.rowset.serial.SerialException
    function getObject(): JLObject; overload; virtual;  // throws javax.sql.rowset.serial.SerialException
    function getFields(): Arr1JLRField; overload; virtual;  // throws javax.sql.rowset.serial.SerialException
  end;

  JSArrayTable = class external 'javax.swing' name 'ArrayTable' (JLObject, JLCloneable)
  public
    procedure put(para1: JLObject; para2: JLObject); overload; virtual;
    function get(para1: JLObject): JLObject; overload; virtual;
    function size(): jint; overload; virtual;
    function containsKey(para1: JLObject): jboolean; overload; virtual;
    function remove(para1: JLObject): JLObject; overload; virtual;
    procedure clear(); overload; virtual;
    function clone(): JLObject; overload; virtual;
    function getKeys(para1: Arr1JLObject): Arr1JLObject; overload; virtual;
    function getKeys(var para1: array of JLObject): Arr1JLObject; overload; virtual;
  end;

  JSTEditorKit = class abstract external 'javax.swing.text' name 'EditorKit' (JLObject, JLCloneable, JISerializable)
  public
    constructor create(); overload;
    function clone(): JLObject; overload; virtual;
    procedure install(para1: JSJEditorPane); overload; virtual;
    procedure deinstall(para1: JSJEditorPane); overload; virtual;
    function getContentType(): JLString; overload; virtual; abstract;
    function getViewFactory(): JSTViewFactory; overload; virtual; abstract;
    function getActions(): Arr1JSAction; overload; virtual; abstract;
    function createCaret(): JSTCaret; overload; virtual; abstract;
    function createDefaultDocument(): JSTDocument; overload; virtual; abstract;
    procedure read(para1: JIInputStream; para2: JSTDocument; para3: jint); overload; virtual; abstract;  // throws java.io.IOException, javax.swing.text.BadLocationException
    procedure write(para1: JIOutputStream; para2: JSTDocument; para3: jint; para4: jint); overload; virtual; abstract;  // throws java.io.IOException, javax.swing.text.BadLocationException
    procedure read(para1: JIReader; para2: JSTDocument; para3: jint); overload; virtual; abstract;  // throws java.io.IOException, javax.swing.text.BadLocationException
    procedure write(para1: JIWriter; para2: JSTDocument; para3: jint; para4: jint); overload; virtual; abstract;  // throws java.io.IOException, javax.swing.text.BadLocationException
  end;

  JSTElementIterator = class external 'javax.swing.text' name 'ElementIterator' (JLObject, JLCloneable)
  public
    type
      InnerStackItem = class;
      Arr1InnerStackItem = array of InnerStackItem;
      Arr2InnerStackItem = array of Arr1InnerStackItem;
      Arr3InnerStackItem = array of Arr2InnerStackItem;
      InnerStackItem = class external 'javax.swing.text' name 'StackItem' 
      end;

  public
    constructor create(para1: JSTDocument); overload;
    constructor create(para1: JSTElement); overload;
    function clone(): JLObject; overload; virtual;
    function first(): JSTElement; overload; virtual;
    function depth(): jint; overload; virtual;
    function current(): JSTElement; overload; virtual;
    function next(): JSTElement; overload; virtual;
    function previous(): JSTElement; overload; virtual;
  end;

  JXDXMLGregorianCalendar = class abstract external 'javax.xml.datatype' name 'XMLGregorianCalendar' (JLObject, JLCloneable)
  public
    constructor create(); overload;
    procedure clear(); overload; virtual; abstract;
    procedure reset(); overload; virtual; abstract;
    procedure setYear(para1: JMBigInteger); overload; virtual; abstract;
    procedure setYear(para1: jint); overload; virtual; abstract;
    procedure setMonth(para1: jint); overload; virtual; abstract;
    procedure setDay(para1: jint); overload; virtual; abstract;
    procedure setTimezone(para1: jint); overload; virtual; abstract;
    procedure setTime(para1: jint; para2: jint; para3: jint); overload; virtual;
    procedure setHour(para1: jint); overload; virtual; abstract;
    procedure setMinute(para1: jint); overload; virtual; abstract;
    procedure setSecond(para1: jint); overload; virtual; abstract;
    procedure setMillisecond(para1: jint); overload; virtual; abstract;
    procedure setFractionalSecond(para1: JMBigDecimal); overload; virtual; abstract;
    procedure setTime(para1: jint; para2: jint; para3: jint; para4: JMBigDecimal); overload; virtual;
    procedure setTime(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    function getEon(): JMBigInteger; overload; virtual; abstract;
    function getYear(): jint; overload; virtual; abstract;
    function getEonAndYear(): JMBigInteger; overload; virtual; abstract;
    function getMonth(): jint; overload; virtual; abstract;
    function getDay(): jint; overload; virtual; abstract;
    function getTimezone(): jint; overload; virtual; abstract;
    function getHour(): jint; overload; virtual; abstract;
    function getMinute(): jint; overload; virtual; abstract;
    function getSecond(): jint; overload; virtual; abstract;
    function getMillisecond(): jint; overload; virtual;
    function getFractionalSecond(): JMBigDecimal; overload; virtual; abstract;
    function compare(para1: JXDXMLGregorianCalendar): jint; overload; virtual; abstract;
    function normalize(): JXDXMLGregorianCalendar; overload; virtual; abstract;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toXMLFormat(): JLString; overload; virtual; abstract;
    function getXMLSchemaType(): JXNQName; overload; virtual; abstract;
    function toString(): JLString; overload; virtual;
    function isValid(): jboolean; overload; virtual; abstract;
    procedure add(para1: JXDDuration); overload; virtual; abstract;
    function toGregorianCalendar(): JUGregorianCalendar; overload; virtual; abstract;
    function toGregorianCalendar(para1: JUTimeZone; para2: JULocale; para3: JXDXMLGregorianCalendar): JUGregorianCalendar; overload; virtual; abstract;
    function getTimeZone_(para1: jint): JUTimeZone; external name 'getTimeZone'; overload; virtual; abstract;
    function clone(): JLObject; overload; virtual; abstract;
  end;

  OIJGSSCredential = interface external 'org.ietf.jgss' name 'GSSCredential' (JLCloneable)
    const
      INITIATE_AND_ACCEPT = 0;
      INITIATE_ONLY = 1;
      ACCEPT_ONLY = 2;
      DEFAULT_LIFETIME = 0;
      INDEFINITE_LIFETIME = 2147483647;
    procedure dispose(); overload;  // throws org.ietf.jgss.GSSException
    function getName(): OIJGSSName; overload;  // throws org.ietf.jgss.GSSException
    function getName(para1: OIJOid): OIJGSSName; overload;  // throws org.ietf.jgss.GSSException
    function getRemainingLifetime(): jint; overload;  // throws org.ietf.jgss.GSSException
    function getRemainingInitLifetime(para1: OIJOid): jint; overload;  // throws org.ietf.jgss.GSSException
    function getRemainingAcceptLifetime(para1: OIJOid): jint; overload;  // throws org.ietf.jgss.GSSException
    function getUsage(): jint; overload;  // throws org.ietf.jgss.GSSException
    function getUsage(para1: OIJOid): jint; overload;  // throws org.ietf.jgss.GSSException
    function getMechs(): Arr1OIJOid; overload;  // throws org.ietf.jgss.GSSException
    procedure add(para1: OIJGSSName; para2: jint; para3: jint; para4: OIJOid; para5: jint); overload;  // throws org.ietf.jgss.GSSException
    function equals(para1: JLObject): jboolean; overload;
    function hashCode(): jint; overload;
  end;

  JADesktop = class external 'java.awt' name 'Desktop' (JLObject)
  public
    type
      InnerAction = class;
      Arr1InnerAction = array of InnerAction;
      Arr2InnerAction = array of Arr1InnerAction;
      Arr3InnerAction = array of Arr2InnerAction;
      InnerAction = class sealed external 'java.awt' name 'Action' (JLEnum)
      public
        final class var
          fOPEN: JADesktop.InnerAction; external name 'OPEN';
          fEDIT: JADesktop.InnerAction; external name 'EDIT';
          fPRINT: JADesktop.InnerAction; external name 'PRINT';
          fMAIL: JADesktop.InnerAction; external name 'MAIL';
          fBROWSE: JADesktop.InnerAction; external name 'BROWSE';
      public
        class function values(): JADesktop.Arr1InnerAction; static; overload;
        class function valueOf(para1: JLString): JADesktop.InnerAction; static; overload;
      end;

  public
    class function getDesktop(): JADesktop; static; overload;
    class function isDesktopSupported(): jboolean; static; overload;
    function isSupported(para1: JADesktop.InnerAction): jboolean; overload; virtual;
    procedure open(para1: JIFile); overload; virtual;  // throws java.io.IOException
    procedure edit(para1: JIFile); overload; virtual;  // throws java.io.IOException
    procedure print(para1: JIFile); overload; virtual;  // throws java.io.IOException
    procedure browse(para1: JNURI); overload; virtual;  // throws java.io.IOException
    procedure mail(); overload; virtual;  // throws java.io.IOException
    procedure mail(para1: JNURI); overload; virtual;  // throws java.io.IOException
  end;

  JAEventFilter = interface external 'java.awt' name 'EventFilter' 
    type
      InnerFilterAction = class;
      Arr1InnerFilterAction = array of InnerFilterAction;
      Arr2InnerFilterAction = array of Arr1InnerFilterAction;
      Arr3InnerFilterAction = array of Arr2InnerFilterAction;
      InnerFilterAction = class sealed external 'java.awt' name 'FilterAction' (JLEnum)
      public
        final class var
          fACCEPT: JAEventFilter.InnerFilterAction; external name 'ACCEPT';
          fREJECT: JAEventFilter.InnerFilterAction; external name 'REJECT';
          fACCEPT_IMMEDIATELY: JAEventFilter.InnerFilterAction; external name 'ACCEPT_IMMEDIATELY';
      public
        class function values(): JAEventFilter.Arr1InnerFilterAction; static; overload;
        class function valueOf(para1: JLString): JAEventFilter.InnerFilterAction; static; overload;
      end;

    function acceptEvent(para1: JAAWTEvent): JAEventFilter.InnerFilterAction; overload;
  end;

  JATrayIcon = class external 'java.awt' name 'TrayIcon' (JLObject)
  public
    type
      InnerMessageType = class;
      Arr1InnerMessageType = array of InnerMessageType;
      Arr2InnerMessageType = array of Arr1InnerMessageType;
      Arr3InnerMessageType = array of Arr2InnerMessageType;
      InnerMessageType = class sealed external 'java.awt' name 'MessageType' (JLEnum)
      public
        final class var
          fERROR: JATrayIcon.InnerMessageType; external name 'ERROR';
          fWARNING: JATrayIcon.InnerMessageType; external name 'WARNING';
          fINFO: JATrayIcon.InnerMessageType; external name 'INFO';
          fNONE: JATrayIcon.InnerMessageType; external name 'NONE';
      public
        class function values(): JATrayIcon.Arr1InnerMessageType; static; overload;
        class function valueOf(para1: JLString): JATrayIcon.InnerMessageType; static; overload;
      end;

  public
    constructor create(para1: JAImage); overload;
    constructor create(para1: JAImage; para2: JLString); overload;
    constructor create(para1: JAImage; para2: JLString; para3: JAPopupMenu); overload;
    procedure setImage(para1: JAImage); overload; virtual;
    function getImage(): JAImage; overload; virtual;
    procedure setPopupMenu(para1: JAPopupMenu); overload; virtual;
    function getPopupMenu(): JAPopupMenu; overload; virtual;
    procedure setToolTip(para1: JLString); overload; virtual;
    function getToolTip(): JLString; overload; virtual;
    procedure setImageAutoSize(para1: jboolean); overload; virtual;
    function isImageAutoSize(): jboolean; overload; virtual;
    procedure addMouseListener(para1: JAEMouseListener); overload; virtual;
    procedure removeMouseListener(para1: JAEMouseListener); overload; virtual;
    function getMouseListeners(): Arr1JAEMouseListener; overload; virtual;
    procedure addMouseMotionListener(para1: JAEMouseMotionListener); overload; virtual;
    procedure removeMouseMotionListener(para1: JAEMouseMotionListener); overload; virtual;
    function getMouseMotionListeners(): Arr1JAEMouseMotionListener; overload; virtual;
    function getActionCommand(): JLString; overload; virtual;
    procedure setActionCommand(para1: JLString); overload; virtual;
    procedure addActionListener(para1: JAEActionListener); overload; virtual;
    procedure removeActionListener(para1: JAEActionListener); overload; virtual;
    function getActionListeners(): Arr1JAEActionListener; overload; virtual;
    procedure displayMessage(para1: JLString; para2: JLString; para3: JATrayIcon.InnerMessageType); overload; virtual;
    function getSize(): JADimension; overload; virtual;
  end;

  JLAElementType = class sealed external 'java.lang.annotation' name 'ElementType' (JLEnum)
  public
    final class var
      fTYPE: JLAElementType; external name 'TYPE';
      fFIELD: JLAElementType; external name 'FIELD';
      fMETHOD: JLAElementType; external name 'METHOD';
      fPARAMETER: JLAElementType; external name 'PARAMETER';
      fCONSTRUCTOR: JLAElementType; external name 'CONSTRUCTOR';
      fLOCAL_VARIABLE: JLAElementType; external name 'LOCAL_VARIABLE';
      fANNOTATION_TYPE: JLAElementType; external name 'ANNOTATION_TYPE';
      fPACKAGE: JLAElementType; external name 'PACKAGE';
  public
    class function values(): Arr1JLAElementType; static; overload;
    class function valueOf(para1: JLString): JLAElementType; static; overload;
  end;

  JLARetentionPolicy = class sealed external 'java.lang.annotation' name 'RetentionPolicy' (JLEnum)
  public
    final class var
      fSOURCE: JLARetentionPolicy; external name 'SOURCE';
      fCLASS: JLARetentionPolicy; external name 'CLASS';
      fRUNTIME: JLARetentionPolicy; external name 'RUNTIME';
  public
    class function values(): Arr1JLARetentionPolicy; static; overload;
    class function valueOf(para1: JLString): JLARetentionPolicy; static; overload;
  end;

  JLMMemoryType = class sealed external 'java.lang.management' name 'MemoryType' (JLEnum)
  public
    final class var
      fHEAP: JLMMemoryType; external name 'HEAP';
      fNON_HEAP: JLMMemoryType; external name 'NON_HEAP';
  public
    class function values(): Arr1JLMMemoryType; static; overload;
    class function valueOf(para1: JLString): JLMMemoryType; static; overload;
    function toString(): JLString; overload; virtual;
  end;

  JMRoundingMode = class sealed external 'java.math' name 'RoundingMode' (JLEnum)
  public
    final class var
      fUP: JMRoundingMode; external name 'UP';
      fDOWN: JMRoundingMode; external name 'DOWN';
      fCEILING: JMRoundingMode; external name 'CEILING';
      fFLOOR: JMRoundingMode; external name 'FLOOR';
      fHALF_UP: JMRoundingMode; external name 'HALF_UP';
      fHALF_DOWN: JMRoundingMode; external name 'HALF_DOWN';
      fHALF_EVEN: JMRoundingMode; external name 'HALF_EVEN';
      fUNNECESSARY: JMRoundingMode; external name 'UNNECESSARY';
  public
    class function values(): Arr1JMRoundingMode; static; overload;
    class function valueOf(para1: JLString): JMRoundingMode; static; overload;
    class function valueOf(para1: jint): JMRoundingMode; static; overload;
  end;

  JNAuthenticator = class abstract external 'java.net' name 'Authenticator' (JLObject)
  public
    type
      InnerRequestorType = class;
      Arr1InnerRequestorType = array of InnerRequestorType;
      Arr2InnerRequestorType = array of Arr1InnerRequestorType;
      Arr3InnerRequestorType = array of Arr2InnerRequestorType;
      InnerRequestorType = class sealed external 'java.net' name 'RequestorType' (JLEnum)
      public
        final class var
          fPROXY: JNAuthenticator.InnerRequestorType; external name 'PROXY';
          fSERVER: JNAuthenticator.InnerRequestorType; external name 'SERVER';
      public
        class function values(): JNAuthenticator.Arr1InnerRequestorType; static; overload;
        class function valueOf(para1: JLString): JNAuthenticator.InnerRequestorType; static; overload;
      end;

  public
    constructor create(); overload;
    class procedure setDefault(para1: JNAuthenticator); static; overload;
    class function requestPasswordAuthentication(para1: JNInetAddress; para2: jint; para3: JLString; para4: JLString; para5: JLString): JNPasswordAuthentication; static; overload;
    class function requestPasswordAuthentication(para1: JLString; para2: JNInetAddress; para3: jint; para4: JLString; para5: JLString; para6: JLString): JNPasswordAuthentication; static; overload;
    class function requestPasswordAuthentication(para1: JLString; para2: JNInetAddress; para3: jint; para4: JLString; para5: JLString; para6: JLString; para7: JNURL; para8: JNAuthenticator.InnerRequestorType): JNPasswordAuthentication; static; overload;
  strict protected
    function getRequestingHost(): JLString; overload; virtual; final;
    function getRequestingSite(): JNInetAddress; overload; virtual; final;
    function getRequestingPort(): jint; overload; virtual; final;
    function getRequestingProtocol(): JLString; overload; virtual; final;
    function getRequestingPrompt(): JLString; overload; virtual; final;
    function getRequestingScheme(): JLString; overload; virtual; final;
    function getPasswordAuthentication(): JNPasswordAuthentication; overload; virtual;
    function getRequestingURL(): JNURL; overload; virtual;
    function getRequestorType(): JNAuthenticator.InnerRequestorType; overload; virtual;
  end;

  JNProxy = class external 'java.net' name 'Proxy' (JLObject)
  public
    type
      InnerType = class;
      Arr1InnerType = array of InnerType;
      Arr2InnerType = array of Arr1InnerType;
      Arr3InnerType = array of Arr2InnerType;
      InnerType = class sealed external 'java.net' name 'Type' (JLEnum)
      public
        final class var
          fDIRECT: JNProxy.InnerType; external name 'DIRECT';
          fHTTP: JNProxy.InnerType; external name 'HTTP';
          fSOCKS: JNProxy.InnerType; external name 'SOCKS';
      public
        class function values(): JNProxy.Arr1InnerType; static; overload;
        class function valueOf(para1: JLString): JNProxy.InnerType; static; overload;
      end;

  public
    final class var
      fNO_PROXY: JNProxy; external name 'NO_PROXY';
  public
    constructor create(para1: JNProxy.InnerType; para2: JNSocketAddress); overload;
    function &type(): JNProxy.InnerType; overload; virtual;
    function address(): JNSocketAddress; overload; virtual;
    function toString(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual; final;
    function hashCode(): jint; overload; virtual; final;
  end;

  JSKeyRep = class external 'java.security' name 'KeyRep' (JLObject, JISerializable)
  public
    type
      InnerType = class;
      Arr1InnerType = array of InnerType;
      Arr2InnerType = array of Arr1InnerType;
      Arr3InnerType = array of Arr2InnerType;
      InnerType = class sealed external 'java.security' name 'Type' (JLEnum)
      public
        final class var
          fSECRET: JSKeyRep.InnerType; external name 'SECRET';
          fPUBLIC: JSKeyRep.InnerType; external name 'PUBLIC';
          fPRIVATE: JSKeyRep.InnerType; external name 'PRIVATE';
      public
        class function values(): JSKeyRep.Arr1InnerType; static; overload;
        class function valueOf(para1: JLString): JSKeyRep.InnerType; static; overload;
      end;

  public
    constructor create(para1: JSKeyRep.InnerType; para2: JLString; para3: JLString; para4: Arr1jbyte); overload;
    constructor create(para1: JSKeyRep.InnerType; para2: JLString; para3: JLString; const para4: array of jbyte); overload;
  strict protected
    function readResolve(): JLObject; overload; virtual;  // throws java.io.ObjectStreamException
  end;

  JSClientInfoStatus = class sealed external 'java.sql' name 'ClientInfoStatus' (JLEnum)
  public
    final class var
      fREASON_UNKNOWN: JSClientInfoStatus; external name 'REASON_UNKNOWN';
      fREASON_UNKNOWN_PROPERTY: JSClientInfoStatus; external name 'REASON_UNKNOWN_PROPERTY';
      fREASON_VALUE_INVALID: JSClientInfoStatus; external name 'REASON_VALUE_INVALID';
      fREASON_VALUE_TRUNCATED: JSClientInfoStatus; external name 'REASON_VALUE_TRUNCATED';
  public
    class function values(): Arr1JSClientInfoStatus; static; overload;
    class function valueOf(para1: JLString): JSClientInfoStatus; static; overload;
  end;

  JSRowIdLifetime = class sealed external 'java.sql' name 'RowIdLifetime' (JLEnum)
  public
    final class var
      fROWID_UNSUPPORTED: JSRowIdLifetime; external name 'ROWID_UNSUPPORTED';
      fROWID_VALID_OTHER: JSRowIdLifetime; external name 'ROWID_VALID_OTHER';
      fROWID_VALID_SESSION: JSRowIdLifetime; external name 'ROWID_VALID_SESSION';
      fROWID_VALID_TRANSACTION: JSRowIdLifetime; external name 'ROWID_VALID_TRANSACTION';
      fROWID_VALID_FOREVER: JSRowIdLifetime; external name 'ROWID_VALID_FOREVER';
  public
    class function values(): Arr1JSRowIdLifetime; static; overload;
    class function valueOf(para1: JLString): JSRowIdLifetime; static; overload;
  end;

  JTNormalizer = class sealed external 'java.text' name 'Normalizer' (JLObject)
  public
    type
      InnerForm = class;
      Arr1InnerForm = array of InnerForm;
      Arr2InnerForm = array of Arr1InnerForm;
      Arr3InnerForm = array of Arr2InnerForm;
      InnerForm = class sealed external 'java.text' name 'Form' (JLEnum)
      public
        final class var
          fNFD: JTNormalizer.InnerForm; external name 'NFD';
          fNFC: JTNormalizer.InnerForm; external name 'NFC';
          fNFKD: JTNormalizer.InnerForm; external name 'NFKD';
          fNFKC: JTNormalizer.InnerForm; external name 'NFKC';
      public
        class function values(): JTNormalizer.Arr1InnerForm; static; overload;
        class function valueOf(para1: JLString): JTNormalizer.InnerForm; static; overload;
      end;

  public
    class function normalize(para1: JLCharSequence; para2: JTNormalizer.InnerForm): JLString; static; overload;
    class function isNormalized(para1: JLCharSequence; para2: JTNormalizer.InnerForm): jboolean; static; overload;
  end;

  JUCTimeUnit = class abstract external 'java.util.concurrent' name 'TimeUnit' (JLEnum)
  public
    final class var
      fNANOSECONDS: JUCTimeUnit; external name 'NANOSECONDS';
      fMICROSECONDS: JUCTimeUnit; external name 'MICROSECONDS';
      fMILLISECONDS: JUCTimeUnit; external name 'MILLISECONDS';
      fSECONDS: JUCTimeUnit; external name 'SECONDS';
      fMINUTES: JUCTimeUnit; external name 'MINUTES';
      fHOURS: JUCTimeUnit; external name 'HOURS';
      fDAYS: JUCTimeUnit; external name 'DAYS';
  public
    class function values(): Arr1JUCTimeUnit; static; overload;
    class function valueOf(para1: JLString): JUCTimeUnit; static; overload;
    function convert(para1: jlong; para2: JUCTimeUnit): jlong; overload; virtual;
    function toNanos(para1: jlong): jlong; overload; virtual;
    function toMicros(para1: jlong): jlong; overload; virtual;
    function toMillis(para1: jlong): jlong; overload; virtual;
    function toSeconds(para1: jlong): jlong; overload; virtual;
    function toMinutes(para1: jlong): jlong; overload; virtual;
    function toHours(para1: jlong): jlong; overload; virtual;
    function toDays(para1: jlong): jlong; overload; virtual;
    procedure timedWait(para1: JLObject; para2: jlong); overload; virtual;  // throws java.lang.InterruptedException
    procedure timedJoin(para1: JLThread; para2: jlong); overload; virtual;  // throws java.lang.InterruptedException
    procedure sleep(para1: jlong); overload; virtual;  // throws java.lang.InterruptedException
  end;

  JLMSourceVersion = class sealed external 'javax.lang.model' name 'SourceVersion' (JLEnum)
  public
    final class var
      fRELEASE_0: JLMSourceVersion; external name 'RELEASE_0';
      fRELEASE_1: JLMSourceVersion; external name 'RELEASE_1';
      fRELEASE_2: JLMSourceVersion; external name 'RELEASE_2';
      fRELEASE_3: JLMSourceVersion; external name 'RELEASE_3';
      fRELEASE_4: JLMSourceVersion; external name 'RELEASE_4';
      fRELEASE_5: JLMSourceVersion; external name 'RELEASE_5';
      fRELEASE_6: JLMSourceVersion; external name 'RELEASE_6';
  public
    class function values(): Arr1JLMSourceVersion; static; overload;
    class function valueOf(para1: JLString): JLMSourceVersion; static; overload;
    class function latest(): JLMSourceVersion; static; overload;
    class function latestSupported(): JLMSourceVersion; static; overload;
    class function isIdentifier(para1: JLCharSequence): jboolean; static; overload;
    class function isName(para1: JLCharSequence): jboolean; static; overload;
    class function isKeyword(para1: JLCharSequence): jboolean; static; overload;
  end;

  JLMEElementKind = class sealed external 'javax.lang.model.element' name 'ElementKind' (JLEnum)
  public
    final class var
      fPACKAGE: JLMEElementKind; external name 'PACKAGE';
      fENUM: JLMEElementKind; external name 'ENUM';
      fCLASS: JLMEElementKind; external name 'CLASS';
      fANNOTATION_TYPE: JLMEElementKind; external name 'ANNOTATION_TYPE';
      fINTERFACE: JLMEElementKind; external name 'INTERFACE';
      fENUM_CONSTANT: JLMEElementKind; external name 'ENUM_CONSTANT';
      fFIELD: JLMEElementKind; external name 'FIELD';
      fPARAMETER: JLMEElementKind; external name 'PARAMETER';
      fLOCAL_VARIABLE: JLMEElementKind; external name 'LOCAL_VARIABLE';
      fEXCEPTION_PARAMETER: JLMEElementKind; external name 'EXCEPTION_PARAMETER';
      fMETHOD: JLMEElementKind; external name 'METHOD';
      fCONSTRUCTOR: JLMEElementKind; external name 'CONSTRUCTOR';
      fSTATIC_INIT: JLMEElementKind; external name 'STATIC_INIT';
      fINSTANCE_INIT: JLMEElementKind; external name 'INSTANCE_INIT';
      fTYPE_PARAMETER: JLMEElementKind; external name 'TYPE_PARAMETER';
      fOTHER: JLMEElementKind; external name 'OTHER';
  public
    class function values(): Arr1JLMEElementKind; static; overload;
    class function valueOf(para1: JLString): JLMEElementKind; static; overload;
    function isClass(): jboolean; overload; virtual;
    function isInterface(): jboolean; overload; virtual;
    function isField(): jboolean; overload; virtual;
  end;

  JLMEModifier = class sealed external 'javax.lang.model.element' name 'Modifier' (JLEnum)
  public
    final class var
      fPUBLIC: JLMEModifier; external name 'PUBLIC';
      fPROTECTED: JLMEModifier; external name 'PROTECTED';
      fPRIVATE: JLMEModifier; external name 'PRIVATE';
      fABSTRACT: JLMEModifier; external name 'ABSTRACT';
      fSTATIC: JLMEModifier; external name 'STATIC';
      fFINAL: JLMEModifier; external name 'FINAL';
      fTRANSIENT: JLMEModifier; external name 'TRANSIENT';
      fVOLATILE: JLMEModifier; external name 'VOLATILE';
      fSYNCHRONIZED: JLMEModifier; external name 'SYNCHRONIZED';
      fNATIVE: JLMEModifier; external name 'NATIVE';
      fSTRICTFP: JLMEModifier; external name 'STRICTFP';
  public
    class function values(): Arr1JLMEModifier; static; overload;
    class function valueOf(para1: JLString): JLMEModifier; static; overload;
    function toString(): JLString; overload; virtual;
  end;

  JLMENestingKind = class sealed external 'javax.lang.model.element' name 'NestingKind' (JLEnum)
  public
    final class var
      fTOP_LEVEL: JLMENestingKind; external name 'TOP_LEVEL';
      fMEMBER: JLMENestingKind; external name 'MEMBER';
      fLOCAL: JLMENestingKind; external name 'LOCAL';
      fANONYMOUS: JLMENestingKind; external name 'ANONYMOUS';
  public
    class function values(): Arr1JLMENestingKind; static; overload;
    class function valueOf(para1: JLString): JLMENestingKind; static; overload;
    function isNested(): jboolean; overload; virtual;
  end;

  JLMTTypeKind = class sealed external 'javax.lang.model.type' name 'TypeKind' (JLEnum)
  public
    final class var
      fBOOLEAN: JLMTTypeKind; external name 'BOOLEAN';
      fBYTE: JLMTTypeKind; external name 'BYTE';
      fSHORT: JLMTTypeKind; external name 'SHORT';
      fINT: JLMTTypeKind; external name 'INT';
      fLONG: JLMTTypeKind; external name 'LONG';
      fCHAR: JLMTTypeKind; external name 'CHAR';
      fFLOAT: JLMTTypeKind; external name 'FLOAT';
      fDOUBLE: JLMTTypeKind; external name 'DOUBLE';
      fVOID: JLMTTypeKind; external name 'VOID';
      fNONE: JLMTTypeKind; external name 'NONE';
      fNULL: JLMTTypeKind; external name 'NULL';
      fARRAY: JLMTTypeKind; external name 'ARRAY';
      fDECLARED: JLMTTypeKind; external name 'DECLARED';
      fERROR: JLMTTypeKind; external name 'ERROR';
      fTYPEVAR: JLMTTypeKind; external name 'TYPEVAR';
      fWILDCARD: JLMTTypeKind; external name 'WILDCARD';
      fPACKAGE: JLMTTypeKind; external name 'PACKAGE';
      fEXECUTABLE: JLMTTypeKind; external name 'EXECUTABLE';
      fOTHER: JLMTTypeKind; external name 'OTHER';
  public
    class function values(): Arr1JLMTTypeKind; static; overload;
    class function valueOf(para1: JLString): JLMTTypeKind; static; overload;
    function isPrimitive(): jboolean; overload; virtual;
  end;

  JNSSSLEngineResult = class external 'javax.net.ssl' name 'SSLEngineResult' (JLObject)
  public
    type
      InnerHandshakeStatus = class;
      Arr1InnerHandshakeStatus = array of InnerHandshakeStatus;
      Arr2InnerHandshakeStatus = array of Arr1InnerHandshakeStatus;
      Arr3InnerHandshakeStatus = array of Arr2InnerHandshakeStatus;
      InnerStatus = class;
      Arr1InnerStatus = array of InnerStatus;
      Arr2InnerStatus = array of Arr1InnerStatus;
      Arr3InnerStatus = array of Arr2InnerStatus;
      InnerHandshakeStatus = class sealed external 'javax.net.ssl' name 'HandshakeStatus' (JLEnum)
      public
        final class var
          fNOT_HANDSHAKING: JNSSSLEngineResult.InnerHandshakeStatus; external name 'NOT_HANDSHAKING';
          fFINISHED: JNSSSLEngineResult.InnerHandshakeStatus; external name 'FINISHED';
          fNEED_TASK: JNSSSLEngineResult.InnerHandshakeStatus; external name 'NEED_TASK';
          fNEED_WRAP: JNSSSLEngineResult.InnerHandshakeStatus; external name 'NEED_WRAP';
          fNEED_UNWRAP: JNSSSLEngineResult.InnerHandshakeStatus; external name 'NEED_UNWRAP';
      public
        class function values(): JNSSSLEngineResult.Arr1InnerHandshakeStatus; static; overload;
        class function valueOf(para1: JLString): JNSSSLEngineResult.InnerHandshakeStatus; static; overload;
      end;

      InnerStatus = class sealed external 'javax.net.ssl' name 'Status' (JLEnum)
      public
        final class var
          fBUFFER_UNDERFLOW: JNSSSLEngineResult.InnerStatus; external name 'BUFFER_UNDERFLOW';
          fBUFFER_OVERFLOW: JNSSSLEngineResult.InnerStatus; external name 'BUFFER_OVERFLOW';
          fOK: JNSSSLEngineResult.InnerStatus; external name 'OK';
          fCLOSED: JNSSSLEngineResult.InnerStatus; external name 'CLOSED';
      public
        class function values(): JNSSSLEngineResult.Arr1InnerStatus; static; overload;
        class function valueOf(para1: JLString): JNSSSLEngineResult.InnerStatus; static; overload;
      end;

  public
    constructor create(para1: JNSSSLEngineResult.InnerStatus; para2: JNSSSLEngineResult.InnerHandshakeStatus; para3: jint; para4: jint); overload;
    function getStatus(): JNSSSLEngineResult.InnerStatus; overload; virtual; final;
    function getHandshakeStatus(): JNSSSLEngineResult.InnerHandshakeStatus; overload; virtual; final;
    function bytesConsumed(): jint; overload; virtual; final;
    function bytesProduced(): jint; overload; virtual; final;
    function toString(): JLString; overload; virtual;
  end;

  JSCardTerminals = class abstract external 'javax.smartcardio' name 'CardTerminals' (JLObject)
  public
    type
      InnerState = class;
      Arr1InnerState = array of InnerState;
      Arr2InnerState = array of Arr1InnerState;
      Arr3InnerState = array of Arr2InnerState;
      InnerState = class sealed external 'javax.smartcardio' name 'State' (JLEnum)
      public
        final class var
          fALL: JSCardTerminals.InnerState; external name 'ALL';
          fCARD_PRESENT: JSCardTerminals.InnerState; external name 'CARD_PRESENT';
          fCARD_ABSENT: JSCardTerminals.InnerState; external name 'CARD_ABSENT';
          fCARD_INSERTION: JSCardTerminals.InnerState; external name 'CARD_INSERTION';
          fCARD_REMOVAL: JSCardTerminals.InnerState; external name 'CARD_REMOVAL';
      public
        class function values(): JSCardTerminals.Arr1InnerState; static; overload;
        class function valueOf(para1: JLString): JSCardTerminals.InnerState; static; overload;
      end;

  strict protected
    constructor create(); overload;
  public
    function list(): JUList; overload; virtual;  // throws javax.smartcardio.CardException
    function list(para1: JSCardTerminals.InnerState): JUList; overload; virtual; abstract;  // throws javax.smartcardio.CardException
    function getTerminal(para1: JLString): JSCardTerminal; overload; virtual;
    procedure waitForChange(); overload; virtual;  // throws javax.smartcardio.CardException
    function waitForChange(para1: jlong): jboolean; overload; virtual; abstract;  // throws javax.smartcardio.CardException
  end;

  JSDropMode = class sealed external 'javax.swing' name 'DropMode' (JLEnum)
  public
    final class var
      fUSE_SELECTION: JSDropMode; external name 'USE_SELECTION';
      fON: JSDropMode; external name 'ON';
      fINSERT: JSDropMode; external name 'INSERT';
      fINSERT_ROWS: JSDropMode; external name 'INSERT_ROWS';
      fINSERT_COLS: JSDropMode; external name 'INSERT_COLS';
      fON_OR_INSERT: JSDropMode; external name 'ON_OR_INSERT';
      fON_OR_INSERT_ROWS: JSDropMode; external name 'ON_OR_INSERT_ROWS';
      fON_OR_INSERT_COLS: JSDropMode; external name 'ON_OR_INSERT_COLS';
  public
    class function values(): Arr1JSDropMode; static; overload;
    class function valueOf(para1: JLString): JSDropMode; static; overload;
  end;

  JSLayoutStyle = class abstract external 'javax.swing' name 'LayoutStyle' (JLObject)
  public
    type
      InnerComponentPlacement = class;
      Arr1InnerComponentPlacement = array of InnerComponentPlacement;
      Arr2InnerComponentPlacement = array of Arr1InnerComponentPlacement;
      Arr3InnerComponentPlacement = array of Arr2InnerComponentPlacement;
      InnerComponentPlacement = class sealed external 'javax.swing' name 'ComponentPlacement' (JLEnum)
      public
        final class var
          fRELATED: JSLayoutStyle.InnerComponentPlacement; external name 'RELATED';
          fUNRELATED: JSLayoutStyle.InnerComponentPlacement; external name 'UNRELATED';
          fINDENT: JSLayoutStyle.InnerComponentPlacement; external name 'INDENT';
      public
        class function values(): JSLayoutStyle.Arr1InnerComponentPlacement; static; overload;
        class function valueOf(para1: JLString): JSLayoutStyle.InnerComponentPlacement; static; overload;
      end;

  public
    class procedure setInstance(para1: JSLayoutStyle); static; overload;
    class function getInstance(): JSLayoutStyle; static; overload;
    constructor create(); overload;
    function getPreferredGap(para1: JSJComponent; para2: JSJComponent; para3: JSLayoutStyle.InnerComponentPlacement; para4: jint; para5: JAContainer): jint; overload; virtual; abstract;
    function getContainerGap(para1: JSJComponent; para2: jint; para3: JAContainer): jint; overload; virtual; abstract;
  end;

  JSRowFilter = class abstract external 'javax.swing' name 'RowFilter' (JLObject)
  public
    type
      InnerAndFilter = class;
      Arr1InnerAndFilter = array of InnerAndFilter;
      Arr2InnerAndFilter = array of Arr1InnerAndFilter;
      Arr3InnerAndFilter = array of Arr2InnerAndFilter;
      InnerDateFilter = class;
      Arr1InnerDateFilter = array of InnerDateFilter;
      Arr2InnerDateFilter = array of Arr1InnerDateFilter;
      Arr3InnerDateFilter = array of Arr2InnerDateFilter;
      InnerGeneralFilter = class;
      Arr1InnerGeneralFilter = array of InnerGeneralFilter;
      Arr2InnerGeneralFilter = array of Arr1InnerGeneralFilter;
      Arr3InnerGeneralFilter = array of Arr2InnerGeneralFilter;
      InnerNotFilter = class;
      Arr1InnerNotFilter = array of InnerNotFilter;
      Arr2InnerNotFilter = array of Arr1InnerNotFilter;
      Arr3InnerNotFilter = array of Arr2InnerNotFilter;
      InnerNumberFilter = class;
      Arr1InnerNumberFilter = array of InnerNumberFilter;
      Arr2InnerNumberFilter = array of Arr1InnerNumberFilter;
      Arr3InnerNumberFilter = array of Arr2InnerNumberFilter;
      InnerOrFilter = class;
      Arr1InnerOrFilter = array of InnerOrFilter;
      Arr2InnerOrFilter = array of Arr1InnerOrFilter;
      Arr3InnerOrFilter = array of Arr2InnerOrFilter;
      InnerRegexFilter = class;
      Arr1InnerRegexFilter = array of InnerRegexFilter;
      Arr2InnerRegexFilter = array of Arr1InnerRegexFilter;
      Arr3InnerRegexFilter = array of Arr2InnerRegexFilter;
      InnerAndFilter = class external 'javax.swing' name 'AndFilter' 
      end;

      InnerDateFilter = class external 'javax.swing' name 'DateFilter' 
      end;

      InnerGeneralFilter = class abstract external 'javax.swing' name 'GeneralFilter' 
      end;

      InnerNotFilter = class external 'javax.swing' name 'NotFilter' 
      end;

      InnerNumberFilter = class external 'javax.swing' name 'NumberFilter' 
      end;

      InnerOrFilter = class external 'javax.swing' name 'OrFilter' 
      end;

      InnerRegexFilter = class external 'javax.swing' name 'RegexFilter' 
      end;

  public
    type
      InnerComparisonType = class;
      Arr1InnerComparisonType = array of InnerComparisonType;
      Arr2InnerComparisonType = array of Arr1InnerComparisonType;
      Arr3InnerComparisonType = array of Arr2InnerComparisonType;
      InnerEntry = class;
      Arr1InnerEntry = array of InnerEntry;
      Arr2InnerEntry = array of Arr1InnerEntry;
      Arr3InnerEntry = array of Arr2InnerEntry;
      InnerComparisonType = class sealed external 'javax.swing' name 'ComparisonType' (JLEnum)
      public
        final class var
          fBEFORE: JSRowFilter.InnerComparisonType; external name 'BEFORE';
          fAFTER: JSRowFilter.InnerComparisonType; external name 'AFTER';
          fEQUAL: JSRowFilter.InnerComparisonType; external name 'EQUAL';
          fNOT_EQUAL: JSRowFilter.InnerComparisonType; external name 'NOT_EQUAL';
      public
        class function values(): JSRowFilter.Arr1InnerComparisonType; static; overload;
        class function valueOf(para1: JLString): JSRowFilter.InnerComparisonType; static; overload;
      end;

      InnerEntry = class abstract external 'javax.swing' name 'Entry' (JLObject)
      public
        constructor create(); overload;
        function getModel(): JLObject; overload; virtual; abstract;
        function getValueCount(): jint; overload; virtual; abstract;
        function getValue(para1: jint): JLObject; overload; virtual; abstract;
        function getStringValue(para1: jint): JLString; overload; virtual;
        function getIdentifier(): JLObject; overload; virtual; abstract;
      end;

  public
    constructor create(); overload;
    class function regexFilter(para1: JLString; para2: Arr1jint): JSRowFilter; static; overload;
    class function regexFilter(para1: JLString; const para2: array of jint): JSRowFilter; static; overload;
    class function dateFilter(para1: JSRowFilter.InnerComparisonType; para2: JUDate; para3: Arr1jint): JSRowFilter; static; overload;
    class function dateFilter(para1: JSRowFilter.InnerComparisonType; para2: JUDate; const para3: array of jint): JSRowFilter; static; overload;
    class function numberFilter(para1: JSRowFilter.InnerComparisonType; para2: JLNumber; para3: Arr1jint): JSRowFilter; static; overload;
    class function numberFilter(para1: JSRowFilter.InnerComparisonType; para2: JLNumber; const para3: array of jint): JSRowFilter; static; overload;
    class function orFilter(para1: JLIterable): JSRowFilter; static; overload;
    class function andFilter(para1: JLIterable): JSRowFilter; static; overload;
    class function notFilter(para1: JSRowFilter): JSRowFilter; static; overload;
    function include(para1: JSRowFilter.InnerEntry): jboolean; overload; virtual; abstract;
  end;

  JSSortOrder = class sealed external 'javax.swing' name 'SortOrder' (JLEnum)
  public
    final class var
      fASCENDING: JSSortOrder; external name 'ASCENDING';
      fDESCENDING: JSSortOrder; external name 'DESCENDING';
      fUNSORTED: JSSortOrder; external name 'UNSORTED';
  public
    class function values(): Arr1JSSortOrder; static; overload;
    class function valueOf(para1: JLString): JSSortOrder; static; overload;
  end;

  JTDiagnostic = interface external 'javax.tools' name 'Diagnostic' 
    type
      InnerKind = class;
      Arr1InnerKind = array of InnerKind;
      Arr2InnerKind = array of Arr1InnerKind;
      Arr3InnerKind = array of Arr2InnerKind;
      InnerKind = class sealed external 'javax.tools' name 'Kind' (JLEnum)
      public
        final class var
          fERROR: JTDiagnostic.InnerKind; external name 'ERROR';
          fWARNING: JTDiagnostic.InnerKind; external name 'WARNING';
          fMANDATORY_WARNING: JTDiagnostic.InnerKind; external name 'MANDATORY_WARNING';
          fNOTE: JTDiagnostic.InnerKind; external name 'NOTE';
          fOTHER: JTDiagnostic.InnerKind; external name 'OTHER';
      public
        class function values(): JTDiagnostic.Arr1InnerKind; static; overload;
        class function valueOf(para1: JLString): JTDiagnostic.InnerKind; static; overload;
      end;

    const
      NOPOS = jlong(-1);
    function getKind(): JTDiagnostic.InnerKind; overload;
    function getSource(): JLObject; overload;
    function getPosition(): jlong; overload;
    function getStartPosition(): jlong; overload;
    function getEndPosition(): jlong; overload;
    function getLineNumber(): jlong; overload;
    function getColumnNumber(): jlong; overload;
    function getCode(): JLString; overload;
    function getMessage(para1: JULocale): JLString; overload;
  end;

  JXBAXmlAccessOrder = class sealed external 'javax.xml.bind.annotation' name 'XmlAccessOrder' (JLEnum)
  public
    final class var
      fUNDEFINED: JXBAXmlAccessOrder; external name 'UNDEFINED';
      fALPHABETICAL: JXBAXmlAccessOrder; external name 'ALPHABETICAL';
  public
    class function values(): Arr1JXBAXmlAccessOrder; static; overload;
    class function valueOf(para1: JLString): JXBAXmlAccessOrder; static; overload;
  end;

  JXBAXmlAccessType = class sealed external 'javax.xml.bind.annotation' name 'XmlAccessType' (JLEnum)
  public
    final class var
      fPROPERTY: JXBAXmlAccessType; external name 'PROPERTY';
      fFIELD: JXBAXmlAccessType; external name 'FIELD';
      fPUBLIC_MEMBER: JXBAXmlAccessType; external name 'PUBLIC_MEMBER';
      fNONE: JXBAXmlAccessType; external name 'NONE';
  public
    class function values(): Arr1JXBAXmlAccessType; static; overload;
    class function valueOf(para1: JLString): JXBAXmlAccessType; static; overload;
  end;

  JXBAXmlNsForm = class sealed external 'javax.xml.bind.annotation' name 'XmlNsForm' (JLEnum)
  public
    final class var
      fUNQUALIFIED: JXBAXmlNsForm; external name 'UNQUALIFIED';
      fQUALIFIED: JXBAXmlNsForm; external name 'QUALIFIED';
      fUNSET: JXBAXmlNsForm; external name 'UNSET';
  public
    class function values(): Arr1JXBAXmlNsForm; static; overload;
    class function valueOf(para1: JLString): JXBAXmlNsForm; static; overload;
  end;

  JXWService = class external 'javax.xml.ws' name 'Service' (JLObject)
  public
    type
      InnerMode = class;
      Arr1InnerMode = array of InnerMode;
      Arr2InnerMode = array of Arr1InnerMode;
      Arr3InnerMode = array of Arr2InnerMode;
      InnerMode = class sealed external 'javax.xml.ws' name 'Mode' (JLEnum)
      public
        final class var
          fMESSAGE: JXWService.InnerMode; external name 'MESSAGE';
          fPAYLOAD: JXWService.InnerMode; external name 'PAYLOAD';
      public
        class function values(): JXWService.Arr1InnerMode; static; overload;
        class function valueOf(para1: JLString): JXWService.InnerMode; static; overload;
      end;

  strict protected
    constructor create(para1: JNURL; para2: JXNQName); overload;
  public
    function getPort(para1: JXNQName; para2: JLClass): JLObject; overload; virtual;
    function getPort(para1: JXNQName; para2: JLClass; para3: Arr1JXWWebServiceFeature): JLObject; overload; virtual;
    function getPort(para1: JXNQName; para2: JLClass; const para3: array of JXWWebServiceFeature): JLObject; overload; virtual;
    function getPort(para1: JLClass): JLObject; overload; virtual;
    function getPort(para1: JLClass; para2: Arr1JXWWebServiceFeature): JLObject; overload; virtual;
    function getPort(para1: JLClass; const para2: array of JXWWebServiceFeature): JLObject; overload; virtual;
    function getPort(para1: JXWEndpointReference; para2: JLClass; para3: Arr1JXWWebServiceFeature): JLObject; overload; virtual;
    function getPort(para1: JXWEndpointReference; para2: JLClass; const para3: array of JXWWebServiceFeature): JLObject; overload; virtual;
    procedure addPort(para1: JXNQName; para2: JLString; para3: JLString); overload; virtual;
    function createDispatch(para1: JXNQName; para2: JLClass; para3: JXWService.InnerMode): JXWDispatch; overload; virtual;
    function createDispatch(para1: JXNQName; para2: JLClass; para3: JXWService.InnerMode; para4: Arr1JXWWebServiceFeature): JXWDispatch; overload; virtual;
    function createDispatch(para1: JXNQName; para2: JLClass; para3: JXWService.InnerMode; const para4: array of JXWWebServiceFeature): JXWDispatch; overload; virtual;
    function createDispatch(para1: JXWEndpointReference; para2: JLClass; para3: JXWService.InnerMode; para4: Arr1JXWWebServiceFeature): JXWDispatch; overload; virtual;
    function createDispatch(para1: JXWEndpointReference; para2: JLClass; para3: JXWService.InnerMode; const para4: array of JXWWebServiceFeature): JXWDispatch; overload; virtual;
    function createDispatch(para1: JXNQName; para2: JXBJAXBContext; para3: JXWService.InnerMode): JXWDispatch; overload; virtual;
    function createDispatch(para1: JXNQName; para2: JXBJAXBContext; para3: JXWService.InnerMode; para4: Arr1JXWWebServiceFeature): JXWDispatch; overload; virtual;
    function createDispatch(para1: JXNQName; para2: JXBJAXBContext; para3: JXWService.InnerMode; const para4: array of JXWWebServiceFeature): JXWDispatch; overload; virtual;
    function createDispatch(para1: JXWEndpointReference; para2: JXBJAXBContext; para3: JXWService.InnerMode; para4: Arr1JXWWebServiceFeature): JXWDispatch; overload; virtual;
    function createDispatch(para1: JXWEndpointReference; para2: JXBJAXBContext; para3: JXWService.InnerMode; const para4: array of JXWWebServiceFeature): JXWDispatch; overload; virtual;
    function getServiceName(): JXNQName; overload; virtual;
    function getPorts(): JUIterator; overload; virtual;
    function getWSDLDocumentLocation(): JNURL; overload; virtual;
    function getHandlerResolver(): JXWHHandlerResolver; overload; virtual;
    procedure setHandlerResolver(para1: JXWHHandlerResolver); overload; virtual;
    function getExecutor(): JUCExecutor; overload; virtual;
    procedure setExecutor(para1: JUCExecutor); overload; virtual;
    class function create_(para1: JNURL; para2: JXNQName): JXWService; static; external name 'create'; overload;
    class function create_(para1: JXNQName): JXWService; static; external name 'create'; overload;
  end;

  JAFileDialog = class external 'java.awt' name 'FileDialog' (JADialog)
  public
    const
      LOAD = 0;
      SAVE = 1;
  public
    constructor create(para1: JAFrame); overload;
    constructor create(para1: JAFrame; para2: JLString); overload;
    constructor create(para1: JAFrame; para2: JLString; para3: jint); overload;
    constructor create(para1: JADialog); overload;
    constructor create(para1: JADialog; para2: JLString); overload;
    constructor create(para1: JADialog; para2: JLString; para3: jint); overload;
    procedure addNotify(); overload; virtual;
    function getMode(): jint; overload; virtual;
    procedure setMode(para1: jint); overload; virtual;
    function getDirectory(): JLString; overload; virtual;
    procedure setDirectory(para1: JLString); overload; virtual;
    function getFile(): JLString; overload; virtual;
    procedure setFile(para1: JLString); overload; virtual;
    function getFilenameFilter(): JIFilenameFilter; overload; virtual;
    procedure setFilenameFilter(para1: JIFilenameFilter); overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  end;

  JAToolkit = class abstract external 'java.awt' name 'Toolkit' (JLObject)
  public
    type
      InnerDesktopPropertyChangeSupport = class;
      Arr1InnerDesktopPropertyChangeSupport = array of InnerDesktopPropertyChangeSupport;
      Arr2InnerDesktopPropertyChangeSupport = array of Arr1InnerDesktopPropertyChangeSupport;
      Arr3InnerDesktopPropertyChangeSupport = array of Arr2InnerDesktopPropertyChangeSupport;
      InnerSelectiveAWTEventListener = class;
      Arr1InnerSelectiveAWTEventListener = array of InnerSelectiveAWTEventListener;
      Arr2InnerSelectiveAWTEventListener = array of Arr1InnerSelectiveAWTEventListener;
      Arr3InnerSelectiveAWTEventListener = array of Arr2InnerSelectiveAWTEventListener;
      InnerToolkitEventMulticaster = class;
      Arr1InnerToolkitEventMulticaster = array of InnerToolkitEventMulticaster;
      Arr2InnerToolkitEventMulticaster = array of Arr1InnerToolkitEventMulticaster;
      Arr3InnerToolkitEventMulticaster = array of Arr2InnerToolkitEventMulticaster;
      InnerDesktopPropertyChangeSupport = class external 'java.awt' name 'DesktopPropertyChangeSupport' 
      end;

      InnerSelectiveAWTEventListener = class external 'java.awt' name 'SelectiveAWTEventListener' 
      end;

      InnerToolkitEventMulticaster = class external 'java.awt' name 'ToolkitEventMulticaster' 
      end;

  strict protected
    final var
      fdesktopProperties: JUMap; external name 'desktopProperties';
      fdesktopPropsSupport: JBPropertyChangeSupport; external name 'desktopPropsSupport';
  public
    constructor create(); overload;
  strict protected
    function createDesktopPeer(para1: JADesktop): JAPDesktopPeer; overload; virtual; abstract;  // throws java.awt.HeadlessException
    function createButton(para1: JAButton): JAPButtonPeer; overload; virtual; abstract;  // throws java.awt.HeadlessException
    function createTextField(para1: JATextField): JAPTextFieldPeer; overload; virtual; abstract;  // throws java.awt.HeadlessException
    function createLabel(para1: JALabel): JAPLabelPeer; overload; virtual; abstract;  // throws java.awt.HeadlessException
    function createList(para1: JAList): JAPListPeer; overload; virtual; abstract;  // throws java.awt.HeadlessException
    function createCheckbox(para1: JACheckbox): JAPCheckboxPeer; overload; virtual; abstract;  // throws java.awt.HeadlessException
    function createScrollbar(para1: JAScrollbar): JAPScrollbarPeer; overload; virtual; abstract;  // throws java.awt.HeadlessException
    function createScrollPane(para1: JAScrollPane): JAPScrollPanePeer; overload; virtual; abstract;  // throws java.awt.HeadlessException
    function createTextArea(para1: JATextArea): JAPTextAreaPeer; overload; virtual; abstract;  // throws java.awt.HeadlessException
    function createChoice(para1: JAChoice): JAPChoicePeer; overload; virtual; abstract;  // throws java.awt.HeadlessException
    function createFrame(para1: JAFrame): JAPFramePeer; overload; virtual; abstract;  // throws java.awt.HeadlessException
    function createCanvas(para1: JACanvas): JAPCanvasPeer; overload; virtual; abstract;
    function createPanel(para1: JAPanel): JAPPanelPeer; overload; virtual; abstract;
    function createWindow(para1: JAWindow): JAPWindowPeer; overload; virtual; abstract;  // throws java.awt.HeadlessException
    function createDialog(para1: JADialog): JAPDialogPeer; overload; virtual; abstract;  // throws java.awt.HeadlessException
    function createMenuBar(para1: JAMenuBar): JAPMenuBarPeer; overload; virtual; abstract;  // throws java.awt.HeadlessException
    function createMenu(para1: JAMenu): JAPMenuPeer; overload; virtual; abstract;  // throws java.awt.HeadlessException
    function createPopupMenu(para1: JAPopupMenu): JAPPopupMenuPeer; overload; virtual; abstract;  // throws java.awt.HeadlessException
    function createMenuItem(para1: JAMenuItem): JAPMenuItemPeer; overload; virtual; abstract;  // throws java.awt.HeadlessException
    function createFileDialog(para1: JAFileDialog): JAPFileDialogPeer; overload; virtual; abstract;  // throws java.awt.HeadlessException
    function createCheckboxMenuItem(para1: JACheckboxMenuItem): JAPCheckboxMenuItemPeer; overload; virtual; abstract;  // throws java.awt.HeadlessException
    function getMouseInfoPeer(): JAPMouseInfoPeer; overload; virtual;
    function createComponent(para1: JAComponent): JAPLightweightPeer; overload; virtual;
    function getFontPeer(para1: JLString; para2: jint): JAPFontPeer; overload; virtual; abstract;
    procedure loadSystemColors(para1: Arr1jint); overload; virtual;  // throws java.awt.HeadlessException
    procedure loadSystemColors(var para1: array of jint); overload; virtual;  // throws java.awt.HeadlessException
  public
    procedure setDynamicLayout(para1: jboolean); overload; virtual;  // throws java.awt.HeadlessException
  strict protected
    function isDynamicLayoutSet(): jboolean; overload; virtual;  // throws java.awt.HeadlessException
  public
    function isDynamicLayoutActive(): jboolean; overload; virtual;  // throws java.awt.HeadlessException
    function getScreenSize(): JADimension; overload; virtual; abstract;  // throws java.awt.HeadlessException
    function getScreenResolution(): jint; overload; virtual; abstract;  // throws java.awt.HeadlessException
    function getScreenInsets(para1: JAGraphicsConfiguration): JAInsets; overload; virtual;  // throws java.awt.HeadlessException
    function getColorModel(): JAIColorModel; overload; virtual; abstract;  // throws java.awt.HeadlessException
    function getFontList(): Arr1JLString; overload; virtual; abstract;
    function getFontMetrics(para1: JAFont): JAFontMetrics; overload; virtual; abstract;
    procedure sync(); overload; virtual; abstract;
    class function getDefaultToolkit(): JAToolkit; static; overload;
    function getImage(para1: JLString): JAImage; overload; virtual; abstract;
    function getImage(para1: JNURL): JAImage; overload; virtual; abstract;
    function createImage(para1: JLString): JAImage; overload; virtual; abstract;
    function createImage(para1: JNURL): JAImage; overload; virtual; abstract;
    function prepareImage(para1: JAImage; para2: jint; para3: jint; para4: JAIImageObserver): jboolean; overload; virtual; abstract;
    function checkImage(para1: JAImage; para2: jint; para3: jint; para4: JAIImageObserver): jint; overload; virtual; abstract;
    function createImage(para1: JAIImageProducer): JAImage; overload; virtual; abstract;
    function createImage(para1: Arr1jbyte): JAImage; overload; virtual;
    function createImage(var para1: array of jbyte): JAImage; overload; virtual;
    function createImage(para1: Arr1jbyte; para2: jint; para3: jint): JAImage; overload; virtual; abstract;
    function createImage(var para1: array of jbyte; para2: jint; para3: jint): JAImage; overload; virtual; abstract;
    function getPrintJob(para1: JAFrame; para2: JLString; para3: JUProperties): JAPrintJob; overload; virtual; abstract;
    function getPrintJob(para1: JAFrame; para2: JLString; para3: JAJobAttributes; para4: JAPageAttributes): JAPrintJob; overload; virtual;
    procedure beep(); overload; virtual; abstract;
    function getSystemClipboard(): JADClipboard; overload; virtual; abstract;  // throws java.awt.HeadlessException
    function getSystemSelection(): JADClipboard; overload; virtual;  // throws java.awt.HeadlessException
    function getMenuShortcutKeyMask(): jint; overload; virtual;  // throws java.awt.HeadlessException
    function getLockingKeyState(para1: jint): jboolean; overload; virtual;  // throws java.lang.UnsupportedOperationException
    procedure setLockingKeyState(para1: jint; para2: jboolean); overload; virtual;  // throws java.lang.UnsupportedOperationException
  strict protected
    class function getNativeContainer(para1: JAComponent): JAContainer; static; overload;
  public
    function createCustomCursor(para1: JAImage; para2: JAPoint; para3: JLString): JACursor; overload; virtual;  // throws java.lang.IndexOutOfBoundsException, java.awt.HeadlessException
    function getBestCursorSize(para1: jint; para2: jint): JADimension; overload; virtual;  // throws java.awt.HeadlessException
    function getMaximumCursorColors(): jint; overload; virtual;  // throws java.awt.HeadlessException
    function isFrameStateSupported(para1: jint): jboolean; overload; virtual;  // throws java.awt.HeadlessException
    class function getProperty(para1: JLString; para2: JLString): JLString; static; overload;
    function getSystemEventQueue(): JAEventQueue; overload; virtual; final;
  strict protected
    function getSystemEventQueueImpl(): JAEventQueue; overload; virtual; abstract;
  public
    function createDragSourceContextPeer(para1: JADDragGestureEvent): JADPDragSourceContextPeer; overload; virtual; abstract;  // throws java.awt.dnd.InvalidDnDOperationException
    function createDragGestureRecognizer(para1: JLClass; para2: JADDragSource; para3: JAComponent; para4: jint; para5: JADDragGestureListener): JADDragGestureRecognizer; overload; virtual;
    function getDesktopProperty(para1: JLString): JLObject; overload; virtual; final;
  strict protected
    procedure setDesktopProperty(para1: JLString; para2: JLObject); overload; virtual; final;
    function lazilyLoadDesktopProperty(para1: JLString): JLObject; overload; virtual;
    procedure initializeDesktopProperties(); overload; virtual;
  public
    procedure addPropertyChangeListener(para1: JLString; para2: JBPropertyChangeListener); overload; virtual;
    procedure removePropertyChangeListener(para1: JLString; para2: JBPropertyChangeListener); overload; virtual;
    function getPropertyChangeListeners(): Arr1JBPropertyChangeListener; overload; virtual;
    function getPropertyChangeListeners(para1: JLString): Arr1JBPropertyChangeListener; overload; virtual;
    function isAlwaysOnTopSupported(): jboolean; overload; virtual;
    function isModalityTypeSupported(para1: JADialog.InnerModalityType): jboolean; overload; virtual; abstract;
    function isModalExclusionTypeSupported(para1: JADialog.InnerModalExclusionType): jboolean; overload; virtual; abstract;
    procedure addAWTEventListener(para1: JAEAWTEventListener; para2: jlong); overload; virtual;
    procedure removeAWTEventListener(para1: JAEAWTEventListener); overload; virtual;
    function getAWTEventListeners(): Arr1JAEAWTEventListener; overload; virtual;
    function getAWTEventListeners(para1: jlong): Arr1JAEAWTEventListener; overload; virtual;
    function mapInputMethodHighlight(para1: JAIInputMethodHighlight): JUMap; overload; virtual; abstract;  // throws java.awt.HeadlessException
  end;

  JAGraphicsCallback = class abstract external 'java.awt' name 'GraphicsCallback' (SASunGraphicsCallback)
  public
    type
      InnerPaintAllCallback = class;
      Arr1InnerPaintAllCallback = array of InnerPaintAllCallback;
      Arr2InnerPaintAllCallback = array of Arr1InnerPaintAllCallback;
      Arr3InnerPaintAllCallback = array of Arr2InnerPaintAllCallback;
      InnerPaintCallback = class;
      Arr1InnerPaintCallback = array of InnerPaintCallback;
      Arr2InnerPaintCallback = array of Arr1InnerPaintCallback;
      Arr3InnerPaintCallback = array of Arr2InnerPaintCallback;
      InnerPaintHeavyweightComponentsCallback = class;
      Arr1InnerPaintHeavyweightComponentsCallback = array of InnerPaintHeavyweightComponentsCallback;
      Arr2InnerPaintHeavyweightComponentsCallback = array of Arr1InnerPaintHeavyweightComponentsCallback;
      Arr3InnerPaintHeavyweightComponentsCallback = array of Arr2InnerPaintHeavyweightComponentsCallback;
      InnerPeerPaintCallback = class;
      Arr1InnerPeerPaintCallback = array of InnerPeerPaintCallback;
      Arr2InnerPeerPaintCallback = array of Arr1InnerPeerPaintCallback;
      Arr3InnerPeerPaintCallback = array of Arr2InnerPeerPaintCallback;
      InnerPeerPrintCallback = class;
      Arr1InnerPeerPrintCallback = array of InnerPeerPrintCallback;
      Arr2InnerPeerPrintCallback = array of Arr1InnerPeerPrintCallback;
      Arr3InnerPeerPrintCallback = array of Arr2InnerPeerPrintCallback;
      InnerPrintAllCallback = class;
      Arr1InnerPrintAllCallback = array of InnerPrintAllCallback;
      Arr2InnerPrintAllCallback = array of Arr1InnerPrintAllCallback;
      Arr3InnerPrintAllCallback = array of Arr2InnerPrintAllCallback;
      InnerPrintCallback = class;
      Arr1InnerPrintCallback = array of InnerPrintCallback;
      Arr2InnerPrintCallback = array of Arr1InnerPrintCallback;
      Arr3InnerPrintCallback = array of Arr2InnerPrintCallback;
      InnerPrintHeavyweightComponentsCallback = class;
      Arr1InnerPrintHeavyweightComponentsCallback = array of InnerPrintHeavyweightComponentsCallback;
      Arr2InnerPrintHeavyweightComponentsCallback = array of Arr1InnerPrintHeavyweightComponentsCallback;
      Arr3InnerPrintHeavyweightComponentsCallback = array of Arr2InnerPrintHeavyweightComponentsCallback;
      InnerPaintAllCallback = class sealed external 'java.awt' name 'PaintAllCallback' 
      end;

      InnerPaintCallback = class sealed external 'java.awt' name 'PaintCallback' 
      end;

      InnerPaintHeavyweightComponentsCallback = class sealed external 'java.awt' name 'PaintHeavyweightComponentsCallback' 
      end;

      InnerPeerPaintCallback = class sealed external 'java.awt' name 'PeerPaintCallback' 
      end;

      InnerPeerPrintCallback = class sealed external 'java.awt' name 'PeerPrintCallback' 
      end;

      InnerPrintAllCallback = class sealed external 'java.awt' name 'PrintAllCallback' 
      end;

      InnerPrintCallback = class sealed external 'java.awt' name 'PrintCallback' 
      end;

      InnerPrintHeavyweightComponentsCallback = class sealed external 'java.awt' name 'PrintHeavyweightComponentsCallback' 
      end;

  end;

  JAHeadlessException = class external 'java.awt' name 'HeadlessException' (JLUnsupportedOperationException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    function getMessage(): JLString; overload; virtual;
  end;

  JNReadOnlyBufferException = class external 'java.nio' name 'ReadOnlyBufferException' (JLUnsupportedOperationException)
  public
    constructor create(); overload;
  end;

  JAIllegalComponentStateException = class external 'java.awt' name 'IllegalComponentStateException' (JLIllegalStateException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JADInvalidDnDOperationException = class external 'java.awt.dnd' name 'InvalidDnDOperationException' (JLIllegalStateException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JNInvalidMarkException = class external 'java.nio' name 'InvalidMarkException' (JLIllegalStateException)
  public
    constructor create(); overload;
  end;

  JNCAlreadyConnectedException = class external 'java.nio.channels' name 'AlreadyConnectedException' (JLIllegalStateException)
  public
    constructor create(); overload;
  end;

  JNCCancelledKeyException = class external 'java.nio.channels' name 'CancelledKeyException' (JLIllegalStateException)
  public
    constructor create(); overload;
  end;

  JNCClosedSelectorException = class external 'java.nio.channels' name 'ClosedSelectorException' (JLIllegalStateException)
  public
    constructor create(); overload;
  end;

  JNCConnectionPendingException = class external 'java.nio.channels' name 'ConnectionPendingException' (JLIllegalStateException)
  public
    constructor create(); overload;
  end;

  JNCIllegalBlockingModeException = class external 'java.nio.channels' name 'IllegalBlockingModeException' (JLIllegalStateException)
  public
    constructor create(); overload;
  end;

  JNCNoConnectionPendingException = class external 'java.nio.channels' name 'NoConnectionPendingException' (JLIllegalStateException)
  public
    constructor create(); overload;
  end;

  JNCNonReadableChannelException = class external 'java.nio.channels' name 'NonReadableChannelException' (JLIllegalStateException)
  public
    constructor create(); overload;
  end;

  JNCNonWritableChannelException = class external 'java.nio.channels' name 'NonWritableChannelException' (JLIllegalStateException)
  public
    constructor create(); overload;
  end;

  JNCNotYetBoundException = class external 'java.nio.channels' name 'NotYetBoundException' (JLIllegalStateException)
  public
    constructor create(); overload;
  end;

  JNCNotYetConnectedException = class external 'java.nio.channels' name 'NotYetConnectedException' (JLIllegalStateException)
  public
    constructor create(); overload;
  end;

  JNCOverlappingFileLockException = class external 'java.nio.channels' name 'OverlappingFileLockException' (JLIllegalStateException)
  public
    constructor create(); overload;
  end;

  JUFormatterClosedException = class external 'java.util' name 'FormatterClosedException' (JLIllegalStateException)
  public
    constructor create(); overload;
  end;

  JUCCancellationException = class external 'java.util.concurrent' name 'CancellationException' (JLIllegalStateException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JARenderingHints = class external 'java.awt' name 'RenderingHints' (JLObject, JUMap, JLCloneable)
  public
    type
      InnerKey = class;
      Arr1InnerKey = array of InnerKey;
      Arr2InnerKey = array of Arr1InnerKey;
      Arr3InnerKey = array of Arr2InnerKey;
      InnerKey = class abstract external 'java.awt' name 'Key' (JLObject)
      strict protected
        constructor create(para1: jint); overload;
      public
        function isCompatibleValue(para1: JLObject): jboolean; overload; virtual; abstract;
      strict protected
        function intKey(): jint; overload; virtual; final;
      public
        function hashCode(): jint; overload; virtual; final;
        function equals(para1: JLObject): jboolean; overload; virtual; final;
      end;

  public
    final class var
      fKEY_ANTIALIASING: JARenderingHints.InnerKey; external name 'KEY_ANTIALIASING';
      fVALUE_ANTIALIAS_ON: JLObject; external name 'VALUE_ANTIALIAS_ON';
      fVALUE_ANTIALIAS_OFF: JLObject; external name 'VALUE_ANTIALIAS_OFF';
      fVALUE_ANTIALIAS_DEFAULT: JLObject; external name 'VALUE_ANTIALIAS_DEFAULT';
      fKEY_RENDERING: JARenderingHints.InnerKey; external name 'KEY_RENDERING';
      fVALUE_RENDER_SPEED: JLObject; external name 'VALUE_RENDER_SPEED';
      fVALUE_RENDER_QUALITY: JLObject; external name 'VALUE_RENDER_QUALITY';
      fVALUE_RENDER_DEFAULT: JLObject; external name 'VALUE_RENDER_DEFAULT';
      fKEY_DITHERING: JARenderingHints.InnerKey; external name 'KEY_DITHERING';
      fVALUE_DITHER_DISABLE: JLObject; external name 'VALUE_DITHER_DISABLE';
      fVALUE_DITHER_ENABLE: JLObject; external name 'VALUE_DITHER_ENABLE';
      fVALUE_DITHER_DEFAULT: JLObject; external name 'VALUE_DITHER_DEFAULT';
      fKEY_TEXT_ANTIALIASING: JARenderingHints.InnerKey; external name 'KEY_TEXT_ANTIALIASING';
      fVALUE_TEXT_ANTIALIAS_ON: JLObject; external name 'VALUE_TEXT_ANTIALIAS_ON';
      fVALUE_TEXT_ANTIALIAS_OFF: JLObject; external name 'VALUE_TEXT_ANTIALIAS_OFF';
      fVALUE_TEXT_ANTIALIAS_DEFAULT: JLObject; external name 'VALUE_TEXT_ANTIALIAS_DEFAULT';
      fVALUE_TEXT_ANTIALIAS_GASP: JLObject; external name 'VALUE_TEXT_ANTIALIAS_GASP';
      fVALUE_TEXT_ANTIALIAS_LCD_HRGB: JLObject; external name 'VALUE_TEXT_ANTIALIAS_LCD_HRGB';
      fVALUE_TEXT_ANTIALIAS_LCD_HBGR: JLObject; external name 'VALUE_TEXT_ANTIALIAS_LCD_HBGR';
      fVALUE_TEXT_ANTIALIAS_LCD_VRGB: JLObject; external name 'VALUE_TEXT_ANTIALIAS_LCD_VRGB';
      fVALUE_TEXT_ANTIALIAS_LCD_VBGR: JLObject; external name 'VALUE_TEXT_ANTIALIAS_LCD_VBGR';
      fKEY_TEXT_LCD_CONTRAST: JARenderingHints.InnerKey; external name 'KEY_TEXT_LCD_CONTRAST';
      fKEY_FRACTIONALMETRICS: JARenderingHints.InnerKey; external name 'KEY_FRACTIONALMETRICS';
      fVALUE_FRACTIONALMETRICS_OFF: JLObject; external name 'VALUE_FRACTIONALMETRICS_OFF';
      fVALUE_FRACTIONALMETRICS_ON: JLObject; external name 'VALUE_FRACTIONALMETRICS_ON';
      fVALUE_FRACTIONALMETRICS_DEFAULT: JLObject; external name 'VALUE_FRACTIONALMETRICS_DEFAULT';
      fKEY_INTERPOLATION: JARenderingHints.InnerKey; external name 'KEY_INTERPOLATION';
      fVALUE_INTERPOLATION_NEAREST_NEIGHBOR: JLObject; external name 'VALUE_INTERPOLATION_NEAREST_NEIGHBOR';
      fVALUE_INTERPOLATION_BILINEAR: JLObject; external name 'VALUE_INTERPOLATION_BILINEAR';
      fVALUE_INTERPOLATION_BICUBIC: JLObject; external name 'VALUE_INTERPOLATION_BICUBIC';
      fKEY_ALPHA_INTERPOLATION: JARenderingHints.InnerKey; external name 'KEY_ALPHA_INTERPOLATION';
      fVALUE_ALPHA_INTERPOLATION_SPEED: JLObject; external name 'VALUE_ALPHA_INTERPOLATION_SPEED';
      fVALUE_ALPHA_INTERPOLATION_QUALITY: JLObject; external name 'VALUE_ALPHA_INTERPOLATION_QUALITY';
      fVALUE_ALPHA_INTERPOLATION_DEFAULT: JLObject; external name 'VALUE_ALPHA_INTERPOLATION_DEFAULT';
      fKEY_COLOR_RENDERING: JARenderingHints.InnerKey; external name 'KEY_COLOR_RENDERING';
      fVALUE_COLOR_RENDER_SPEED: JLObject; external name 'VALUE_COLOR_RENDER_SPEED';
      fVALUE_COLOR_RENDER_QUALITY: JLObject; external name 'VALUE_COLOR_RENDER_QUALITY';
      fVALUE_COLOR_RENDER_DEFAULT: JLObject; external name 'VALUE_COLOR_RENDER_DEFAULT';
      fKEY_STROKE_CONTROL: JARenderingHints.InnerKey; external name 'KEY_STROKE_CONTROL';
      fVALUE_STROKE_DEFAULT: JLObject; external name 'VALUE_STROKE_DEFAULT';
      fVALUE_STROKE_NORMALIZE: JLObject; external name 'VALUE_STROKE_NORMALIZE';
      fVALUE_STROKE_PURE: JLObject; external name 'VALUE_STROKE_PURE';
  public
    constructor create(para1: JUMap); overload;
    constructor create(para1: JARenderingHints.InnerKey; para2: JLObject); overload;
    function size(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function containsKey(para1: JLObject): jboolean; overload; virtual;
    function containsValue(para1: JLObject): jboolean; overload; virtual;
    function get(para1: JLObject): JLObject; overload; virtual;
    function put(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
    procedure add(para1: JARenderingHints); overload; virtual;
    procedure clear(); overload; virtual;
    function remove(para1: JLObject): JLObject; overload; virtual;
    procedure putAll(para1: JUMap); overload; virtual;
    function keySet(): JUSet; overload; virtual;
    function values(): JUCollection; overload; virtual;
    function entrySet(): JUSet; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function clone(): JLObject; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JTAttributeEntry = class external 'java.text' name 'AttributeEntry' (JLObject, JUMap.InnerEntry)
  public
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getKey(): JLObject; overload; virtual;
    function getValue(): JLObject; overload; virtual;
    function setValue(para1: JLObject): JLObject; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JUSortedMap = interface external 'java.util' name 'SortedMap' (JUMap)
    function comparator(): JUComparator; overload;
    function subMap(para1: JLObject; para2: JLObject): JUSortedMap; overload;
    function headMap(para1: JLObject): JUSortedMap; overload;
    function tailMap(para1: JLObject): JUSortedMap; overload;
    function firstKey(): JLObject; overload;
    function lastKey(): JLObject; overload;
    function keySet(): JUSet; overload;
    function values(): JUCollection; overload;
    function entrySet(): JUSet; overload;
  end;

  JUCConcurrentMap = interface external 'java.util.concurrent' name 'ConcurrentMap' (JUMap)
    function putIfAbsent(para1: JLObject; para2: JLObject): JLObject; overload;
    function remove(para1: JLObject; para2: JLObject): jboolean; overload;
    function replace(para1: JLObject; para2: JLObject; para3: JLObject): jboolean; overload;
    function replace(para1: JLObject; para2: JLObject): JLObject; overload;
  end;

  JUJAttributes = class external 'java.util.jar' name 'Attributes' (JLObject, JUMap, JLCloneable)
  public
    type
      InnerName = class;
      Arr1InnerName = array of InnerName;
      Arr2InnerName = array of Arr1InnerName;
      Arr3InnerName = array of Arr2InnerName;
      InnerName = class external 'java.util.jar' name 'Name' (JLObject)
      public
        final class var
          fMANIFEST_VERSION: JUJAttributes.InnerName; external name 'MANIFEST_VERSION';
          fSIGNATURE_VERSION: JUJAttributes.InnerName; external name 'SIGNATURE_VERSION';
          fCONTENT_TYPE: JUJAttributes.InnerName; external name 'CONTENT_TYPE';
          fCLASS_PATH: JUJAttributes.InnerName; external name 'CLASS_PATH';
          fMAIN_CLASS: JUJAttributes.InnerName; external name 'MAIN_CLASS';
          fSEALED: JUJAttributes.InnerName; external name 'SEALED';
          fEXTENSION_LIST: JUJAttributes.InnerName; external name 'EXTENSION_LIST';
          fEXTENSION_NAME: JUJAttributes.InnerName; external name 'EXTENSION_NAME';
          fEXTENSION_INSTALLATION: JUJAttributes.InnerName; external name 'EXTENSION_INSTALLATION';
          fIMPLEMENTATION_TITLE: JUJAttributes.InnerName; external name 'IMPLEMENTATION_TITLE';
          fIMPLEMENTATION_VERSION: JUJAttributes.InnerName; external name 'IMPLEMENTATION_VERSION';
          fIMPLEMENTATION_VENDOR: JUJAttributes.InnerName; external name 'IMPLEMENTATION_VENDOR';
          fIMPLEMENTATION_VENDOR_ID: JUJAttributes.InnerName; external name 'IMPLEMENTATION_VENDOR_ID';
          fIMPLEMENTATION_URL: JUJAttributes.InnerName; external name 'IMPLEMENTATION_URL';
          fSPECIFICATION_TITLE: JUJAttributes.InnerName; external name 'SPECIFICATION_TITLE';
          fSPECIFICATION_VERSION: JUJAttributes.InnerName; external name 'SPECIFICATION_VERSION';
          fSPECIFICATION_VENDOR: JUJAttributes.InnerName; external name 'SPECIFICATION_VENDOR';
      public
        constructor create(para1: JLString); overload;
        function equals(para1: JLObject): jboolean; overload; virtual;
        function hashCode(): jint; overload; virtual;
        function toString(): JLString; overload; virtual;
      end;

  strict protected
    var
      fmap: JUMap; external name 'map';
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: JUJAttributes); overload;
    function get(para1: JLObject): JLObject; overload; virtual;
    function getValue(para1: JLString): JLString; overload; virtual;
    function getValue(para1: JUJAttributes.InnerName): JLString; overload; virtual;
    function put(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
    function putValue(para1: JLString; para2: JLString): JLString; overload; virtual;
    function remove(para1: JLObject): JLObject; overload; virtual;
    function containsValue(para1: JLObject): jboolean; overload; virtual;
    function containsKey(para1: JLObject): jboolean; overload; virtual;
    procedure putAll(para1: JUMap); overload; virtual;
    procedure clear(); overload; virtual;
    function size(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function keySet(): JUSet; overload; virtual;
    function values(): JUCollection; overload; virtual;
    function entrySet(): JUSet; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function clone(): JLObject; overload; virtual;
  end;

  JSBindings = interface external 'javax.script' name 'Bindings' (JUMap)
    function put(para1: JLString; para2: JLObject): JLObject; overload;
    procedure putAll(para1: JUMap); overload;
    function containsKey(para1: JLObject): jboolean; overload;
    function get(para1: JLObject): JLObject; overload;
    function remove(para1: JLObject): JLObject; overload;
  end;

  JXWHMessageContext = interface external 'javax.xml.ws.handler' name 'MessageContext' (JUMap)
    type
      InnerScope = class;
      Arr1InnerScope = array of InnerScope;
      Arr2InnerScope = array of Arr1InnerScope;
      Arr3InnerScope = array of Arr2InnerScope;
      InnerScope = class sealed external 'javax.xml.ws.handler' name 'Scope' (JLEnum)
      public
        final class var
          fAPPLICATION: JXWHMessageContext.InnerScope; external name 'APPLICATION';
          fHANDLER: JXWHMessageContext.InnerScope; external name 'HANDLER';
      public
        class function values(): JXWHMessageContext.Arr1InnerScope; static; overload;
        class function valueOf(para1: JLString): JXWHMessageContext.InnerScope; static; overload;
      end;

    const
      MESSAGE_OUTBOUND_PROPERTY = 'javax.xml.ws.handler.message.outbound';
      INBOUND_MESSAGE_ATTACHMENTS = 'javax.xml.ws.binding.attachments.inbound';
      OUTBOUND_MESSAGE_ATTACHMENTS = 'javax.xml.ws.binding.attachments.outbound';
      WSDL_DESCRIPTION = 'javax.xml.ws.wsdl.description';
      WSDL_SERVICE = 'javax.xml.ws.wsdl.service';
      WSDL_PORT = 'javax.xml.ws.wsdl.port';
      WSDL_INTERFACE = 'javax.xml.ws.wsdl.interface';
      WSDL_OPERATION = 'javax.xml.ws.wsdl.operation';
      HTTP_RESPONSE_CODE = 'javax.xml.ws.http.response.code';
      HTTP_REQUEST_HEADERS = 'javax.xml.ws.http.request.headers';
      HTTP_RESPONSE_HEADERS = 'javax.xml.ws.http.response.headers';
      HTTP_REQUEST_METHOD = 'javax.xml.ws.http.request.method';
      SERVLET_REQUEST = 'javax.xml.ws.servlet.request';
      SERVLET_RESPONSE = 'javax.xml.ws.servlet.response';
      SERVLET_CONTEXT = 'javax.xml.ws.servlet.context';
      QUERY_STRING = 'javax.xml.ws.http.request.querystring';
      PATH_INFO = 'javax.xml.ws.http.request.pathinfo';
      REFERENCE_PARAMETERS = 'javax.xml.ws.reference.parameters';
    procedure setScope(para1: JLString; para2: JXWHMessageContext.InnerScope); overload;
    function getScope(para1: JLString): JXWHMessageContext.InnerScope; overload;
  end;

  JACCMMException = class external 'java.awt.color' name 'CMMException' (JLRuntimeException)
  public
    constructor create(para1: JLString); overload;
  end;

  JACProfileDataException = class external 'java.awt.color' name 'ProfileDataException' (JLRuntimeException)
  public
    constructor create(para1: JLString); overload;
  end;

  JAGIllegalPathStateException = class external 'java.awt.geom' name 'IllegalPathStateException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JAIImagingOpException = class external 'java.awt.image' name 'ImagingOpException' (JLRuntimeException)
  public
    constructor create(para1: JLString); overload;
  end;

  JAIRasterFormatException = class external 'java.awt.image' name 'RasterFormatException' (JLRuntimeException)
  public
    constructor create(para1: JLString); overload;
  end;

  JLArithmeticException = class external 'java.lang' name 'ArithmeticException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLArrayStoreException = class external 'java.lang' name 'ArrayStoreException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLClassCastException = class external 'java.lang' name 'ClassCastException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLEnumConstantNotPresentException = class external 'java.lang' name 'EnumConstantNotPresentException' (JLRuntimeException)
  public
    constructor create(para1: JLClass; para2: JLString); overload;
    function enumType(): JLClass; overload; virtual;
    function constantName(): JLString; overload; virtual;
  end;

  JLIllegalMonitorStateException = class external 'java.lang' name 'IllegalMonitorStateException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLNegativeArraySizeException = class external 'java.lang' name 'NegativeArraySizeException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLNullPointerException = class external 'java.lang' name 'NullPointerException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLSecurityException = class external 'java.lang' name 'SecurityException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JLTypeNotPresentException = class external 'java.lang' name 'TypeNotPresentException' (JLRuntimeException)
  public
    constructor create(para1: JLString; para2: JLThrowable); overload;
    function typeName(): JLString; overload; virtual;
  end;

  JLAAnnotationTypeMismatchException = class external 'java.lang.annotation' name 'AnnotationTypeMismatchException' (JLRuntimeException)
  public
    constructor create(para1: JLRMethod; para2: JLString); overload;
    function element(): JLRMethod; overload; virtual;
    function foundType(): JLString; overload; virtual;
  end;

  JLAIncompleteAnnotationException = class external 'java.lang.annotation' name 'IncompleteAnnotationException' (JLRuntimeException)
  public
    constructor create(para1: JLClass; para2: JLString); overload;
    function annotationType(): JLClass; overload; virtual;
    function elementName(): JLString; overload; virtual;
  end;

  JLRMalformedParameterizedTypeException = class external 'java.lang.reflect' name 'MalformedParameterizedTypeException' (JLRuntimeException)
  public
    constructor create(); overload;
  end;

  JLRUndeclaredThrowableException = class external 'java.lang.reflect' name 'UndeclaredThrowableException' (JLRuntimeException)
  public
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLThrowable; para2: JLString); overload;
    function getUndeclaredThrowable(): JLThrowable; overload; virtual;
    function getCause(): JLThrowable; overload; virtual;
  end;

  JNBufferOverflowException = class external 'java.nio' name 'BufferOverflowException' (JLRuntimeException)
  public
    constructor create(); overload;
  end;

  JNBufferUnderflowException = class external 'java.nio' name 'BufferUnderflowException' (JLRuntimeException)
  public
    constructor create(); overload;
  end;

  JSProviderException = class external 'java.security' name 'ProviderException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JUConcurrentModificationException = class external 'java.util' name 'ConcurrentModificationException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JUEmptyStackException = class external 'java.util' name 'EmptyStackException' (JLRuntimeException)
  public
    constructor create(); overload;
  end;

  JUMissingResourceException = class external 'java.util' name 'MissingResourceException' (JLRuntimeException)
  public
    constructor create(para1: JLString; para2: JLString; para3: JLString); overload;
    function getClassName(): JLString; overload; virtual;
    function getKey(): JLString; overload; virtual;
  end;

  JUNoSuchElementException = class external 'java.util' name 'NoSuchElementException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JUCRejectedExecutionException = class external 'java.util.concurrent' name 'RejectedExecutionException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JLMEUnknownAnnotationValueException = class external 'javax.lang.model.element' name 'UnknownAnnotationValueException' (JLRuntimeException)
  public
    constructor create(para1: JLMEAnnotationValue; para2: JLObject); overload;
    function getUnknownAnnotationValue(): JLMEAnnotationValue; overload; virtual;
    function getArgument(): JLObject; overload; virtual;
  end;

  JLMEUnknownElementException = class external 'javax.lang.model.element' name 'UnknownElementException' (JLRuntimeException)
  public
    constructor create(para1: JLMEElement; para2: JLObject); overload;
    function getUnknownElement(): JLMEElement; overload; virtual;
    function getArgument(): JLObject; overload; virtual;
  end;

  JLMTMirroredTypeException = class external 'javax.lang.model.type' name 'MirroredTypeException' (JLRuntimeException)
  public
    constructor create(para1: JLMTTypeMirror); overload;
    function getTypeMirror(): JLMTTypeMirror; overload; virtual;
  end;

  JLMTMirroredTypesException = class external 'javax.lang.model.type' name 'MirroredTypesException' (JLRuntimeException)
  public
    constructor create(para1: JUList); overload;
    function getTypeMirrors(): JUList; overload; virtual;
  end;

  JLMTUnknownTypeException = class external 'javax.lang.model.type' name 'UnknownTypeException' (JLRuntimeException)
  public
    constructor create(para1: JLMTTypeMirror; para2: JLObject); overload;
    function getUnknownType(): JLMTTypeMirror; overload; virtual;
    function getArgument(): JLObject; overload; virtual;
  end;

  JMJMRuntimeException = class external 'javax.management' name 'JMRuntimeException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JPAUnmodifiableSetException = class external 'javax.print.attribute' name 'UnmodifiableSetException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JSUCannotRedoException = class external 'javax.swing.undo' name 'CannotRedoException' (JLRuntimeException)
  public
    constructor create(); overload;
  end;

  JSUCannotUndoException = class external 'javax.swing.undo' name 'CannotUndoException' (JLRuntimeException)
  public
    constructor create(); overload;
  end;

  JXBDataBindingException = class external 'javax.xml.bind' name 'DataBindingException' (JLRuntimeException)
  public
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JXBTypeConstraintException = class external 'javax.xml.bind' name 'TypeConstraintException' (JLRuntimeException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
    function getErrorCode(): JLString; overload; virtual;
    function getLinkedException(): JLThrowable; overload; virtual;
    procedure setLinkedException(para1: JLThrowable); overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure printStackTrace(para1: JIPrintStream); overload; virtual;
    procedure printStackTrace(); overload; virtual;
  end;

  JXCNoSuchMechanismException = class external 'javax.xml.crypto' name 'NoSuchMechanismException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
    function getCause(): JLThrowable; overload; virtual;
    procedure printStackTrace(); overload; virtual;
    procedure printStackTrace(para1: JIPrintStream); overload; virtual;
    procedure printStackTrace(para1: JIPrintWriter); overload; virtual;
  end;

  JXWWebServiceException = class external 'javax.xml.ws' name 'WebServiceException' (JLRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  OOCSystemException = class abstract external 'org.omg.CORBA' name 'SystemException' (JLRuntimeException)
  public
    var
      fminor: jint; external name 'minor';
      fcompleted: OOCCompletionStatus; external name 'completed';
  strict protected
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  public
    function toString(): JLString; overload; virtual;
  end;

  OWDDOMException = class external 'org.w3c.dom' name 'DOMException' (JLRuntimeException)
  public
    var
      fcode: jshort; external name 'code';
  public
    const
      INDEX_SIZE_ERR = 1;
      DOMSTRING_SIZE_ERR = 2;
      HIERARCHY_REQUEST_ERR = 3;
      WRONG_DOCUMENT_ERR = 4;
      INVALID_CHARACTER_ERR = 5;
      NO_DATA_ALLOWED_ERR = 6;
      NO_MODIFICATION_ALLOWED_ERR = 7;
      NOT_FOUND_ERR = 8;
      NOT_SUPPORTED_ERR = 9;
      INUSE_ATTRIBUTE_ERR = 10;
      INVALID_STATE_ERR = 11;
      SYNTAX_ERR = 12;
      INVALID_MODIFICATION_ERR = 13;
      NAMESPACE_ERR = 14;
      INVALID_ACCESS_ERR = 15;
      VALIDATION_ERR = 16;
      TYPE_MISMATCH_ERR = 17;
  public
    constructor create(para1: jshort; para2: JLString); overload;
  end;

  OWDEEventException = class external 'org.w3c.dom.events' name 'EventException' (JLRuntimeException)
  public
    var
      fcode: jshort; external name 'code';
  public
    const
      UNSPECIFIED_EVENT_TYPE_ERR = 0;
  public
    constructor create(para1: jshort; para2: JLString); overload;
  end;

  OWDLLSException = class external 'org.w3c.dom.ls' name 'LSException' (JLRuntimeException)
  public
    var
      fcode: jshort; external name 'code';
  public
    const
      PARSE_ERR = 81;
      SERIALIZE_ERR = 82;
  public
    constructor create(para1: jshort; para2: JLString); overload;
  end;

  OWDRRangeException = class external 'org.w3c.dom.ranges' name 'RangeException' (JLRuntimeException)
  public
    var
      fcode: jshort; external name 'code';
  public
    const
      BAD_BOUNDARYPOINTS_ERR = 1;
      INVALID_NODE_TYPE_ERR = 2;
  public
    constructor create(para1: jshort; para2: JLString); overload;
  end;

  OWDXXPathException = class external 'org.w3c.dom.xpath' name 'XPathException' (JLRuntimeException)
  public
    var
      fcode: jshort; external name 'code';
  public
    const
      INVALID_EXPRESSION_ERR = 1;
      TYPE_ERR = 2;
  public
    constructor create(para1: jshort; para2: JLString); overload;
  end;

  JAIInputContext = class external 'java.awt.im' name 'InputContext' (JLObject)
  strict protected
    constructor create(); overload;
  public
    class function getInstance(): JAIInputContext; static; overload;
    function selectInputMethod(para1: JULocale): jboolean; overload; virtual;
    function getLocale(): JULocale; overload; virtual;
    procedure setCharacterSubsets(para1: JLCharacter.Arr1InnerSubset); overload; virtual;
    procedure setCharacterSubsets(var para1: array of JLCharacter.InnerSubset); overload; virtual;
    procedure setCompositionEnabled(para1: jboolean); overload; virtual;
    function isCompositionEnabled(): jboolean; overload; virtual;
    procedure reconvert(); overload; virtual;
    procedure dispatchEvent(para1: JAAWTEvent); overload; virtual;
    procedure removeNotify(para1: JAComponent); overload; virtual;
    procedure endComposition(); overload; virtual;
    procedure dispose(); overload; virtual;
    function getInputMethodControlObject(): JLObject; overload; virtual;
  end;

  JAIInputSubset = class sealed external 'java.awt.im' name 'InputSubset' (JLCharacter.InnerSubset)
  public
    final class var
      fLATIN: JAIInputSubset; external name 'LATIN';
      fLATIN_DIGITS: JAIInputSubset; external name 'LATIN_DIGITS';
      fTRADITIONAL_HANZI: JAIInputSubset; external name 'TRADITIONAL_HANZI';
      fSIMPLIFIED_HANZI: JAIInputSubset; external name 'SIMPLIFIED_HANZI';
      fKANJI: JAIInputSubset; external name 'KANJI';
      fHANJA: JAIInputSubset; external name 'HANJA';
      fHALFWIDTH_KATAKANA: JAIInputSubset; external name 'HALFWIDTH_KATAKANA';
      fFULLWIDTH_LATIN: JAIInputSubset; external name 'FULLWIDTH_LATIN';
      fFULLWIDTH_DIGITS: JAIInputSubset; external name 'FULLWIDTH_DIGITS';
  end;

  JAISInputMethod = interface external 'java.awt.im.spi' name 'InputMethod' 
    procedure setInputMethodContext(para1: JAISInputMethodContext); overload;
    function setLocale(para1: JULocale): jboolean; overload;
    function getLocale(): JULocale; overload;
    procedure setCharacterSubsets(para1: JLCharacter.Arr1InnerSubset); overload;
    procedure setCharacterSubsets(var para1: array of JLCharacter.InnerSubset); overload;
    procedure setCompositionEnabled(para1: jboolean); overload;
    function isCompositionEnabled(): jboolean; overload;
    procedure reconvert(); overload;
    procedure dispatchEvent(para1: JAAWTEvent); overload;
    procedure notifyClientWindowChange(para1: JARectangle); overload;
    procedure activate(); overload;
    procedure deactivate(para1: jboolean); overload;
    procedure hideWindows(); overload;
    procedure removeNotify(); overload;
    procedure endComposition(); overload;
    procedure dispose(); overload;
    function getControlObject(): JLObject; overload;
  end;

  JUList = interface external 'java.util' name 'List' (JUCollection)
    function size(): jint; overload;
    function isEmpty(): jboolean; overload;
    function contains(para1: JLObject): jboolean; overload;
    function iterator(): JUIterator; overload;
    function toArray(): Arr1JLObject; overload;
    function toArray(para1: Arr1JLObject): Arr1JLObject; overload;
    function toArray(var para1: array of JLObject): Arr1JLObject; overload;
    function add(para1: JLObject): jboolean; overload;
    function remove(para1: JLObject): jboolean; overload;
    function containsAll(para1: JUCollection): jboolean; overload;
    function addAll(para1: JUCollection): jboolean; overload;
    function addAll(para1: jint; para2: JUCollection): jboolean; overload;
    function removeAll(para1: JUCollection): jboolean; overload;
    function retainAll(para1: JUCollection): jboolean; overload;
    procedure clear(); overload;
    function equals(para1: JLObject): jboolean; overload;
    function hashCode(): jint; overload;
    function get(para1: jint): JLObject; overload;
    function &set(para1: jint; para2: JLObject): JLObject; overload;
    procedure add(para1: jint; para2: JLObject); overload;
    function remove(para1: jint): JLObject; overload;
    function indexOf(para1: JLObject): jint; overload;
    function lastIndexOf(para1: JLObject): jint; overload;
    function listIterator(): JUListIterator; overload;
    function listIterator(para1: jint): JUListIterator; overload;
    function subList(para1: jint; para2: jint): JUList; overload;
  end;

  JUQueue = interface external 'java.util' name 'Queue' (JUCollection)
    function add(para1: JLObject): jboolean; overload;
    function offer(para1: JLObject): jboolean; overload;
    function remove(): JLObject; overload;
    function poll(): JLObject; overload;
    function element(): JLObject; overload;
    function peek(): JLObject; overload;
  end;

  JUListIterator = interface external 'java.util' name 'ListIterator' (JUIterator)
    function hasNext(): jboolean; overload;
    function next(): JLObject; overload;
    function hasPrevious(): jboolean; overload;
    function previous(): JLObject; overload;
    function nextIndex(): jint; overload;
    function previousIndex(): jint; overload;
    procedure remove(); overload;
    procedure &set(para1: JLObject); overload;
    procedure add(para1: JLObject); overload;
  end;

  JUScanner = class sealed external 'java.util' name 'Scanner' (JLObject, JUIterator)
  public
    constructor create(para1: JLReadable); overload;
    constructor create(para1: JIInputStream); overload;
    constructor create(para1: JIInputStream; para2: JLString); overload;
    constructor create(para1: JIFile); overload;  // throws java.io.FileNotFoundException
    constructor create(para1: JIFile; para2: JLString); overload;  // throws java.io.FileNotFoundException
    constructor create(para1: JLString); overload;
    constructor create(para1: JNCReadableByteChannel); overload;
    constructor create(para1: JNCReadableByteChannel; para2: JLString); overload;
    procedure close(); overload; virtual;
    function ioException(): JIIOException; overload; virtual;
    function delimiter(): JURPattern; overload; virtual;
    function useDelimiter(para1: JURPattern): JUScanner; overload; virtual;
    function useDelimiter(para1: JLString): JUScanner; overload; virtual;
    function locale(): JULocale; overload; virtual;
    function useLocale(para1: JULocale): JUScanner; overload; virtual;
    function radix(): jint; overload; virtual;
    function useRadix(para1: jint): JUScanner; overload; virtual;
    function match(): JURMatchResult; overload; virtual;
    function toString(): JLString; overload; virtual;
    function hasNext(): jboolean; overload; virtual;
    function next(): JLString; overload; virtual;
    procedure remove(); overload; virtual;
    function hasNext(para1: JLString): jboolean; overload; virtual;
    function next(para1: JLString): JLString; overload; virtual;
    function hasNext(para1: JURPattern): jboolean; overload; virtual;
    function next(para1: JURPattern): JLString; overload; virtual;
    function hasNextLine(): jboolean; overload; virtual;
    function nextLine(): JLString; overload; virtual;
    function findInLine(para1: JLString): JLString; overload; virtual;
    function findInLine(para1: JURPattern): JLString; overload; virtual;
    function findWithinHorizon(para1: JLString; para2: jint): JLString; overload; virtual;
    function findWithinHorizon(para1: JURPattern; para2: jint): JLString; overload; virtual;
    function skip(para1: JURPattern): JUScanner; overload; virtual;
    function skip(para1: JLString): JUScanner; overload; virtual;
    function hasNextBoolean(): jboolean; overload; virtual;
    function nextBoolean(): jboolean; overload; virtual;
    function hasNextByte(): jboolean; overload; virtual;
    function hasNextByte(para1: jint): jboolean; overload; virtual;
    function nextByte(): jbyte; overload; virtual;
    function nextByte(para1: jint): jbyte; overload; virtual;
    function hasNextShort(): jboolean; overload; virtual;
    function hasNextShort(para1: jint): jboolean; overload; virtual;
    function nextShort(): jshort; overload; virtual;
    function nextShort(para1: jint): jshort; overload; virtual;
    function hasNextInt(): jboolean; overload; virtual;
    function hasNextInt(para1: jint): jboolean; overload; virtual;
    function nextInt(): jint; overload; virtual;
    function nextInt(para1: jint): jint; overload; virtual;
    function hasNextLong(): jboolean; overload; virtual;
    function hasNextLong(para1: jint): jboolean; overload; virtual;
    function nextLong(): jlong; overload; virtual;
    function nextLong(para1: jint): jlong; overload; virtual;
    function hasNextFloat(): jboolean; overload; virtual;
    function nextFloat(): jfloat; overload; virtual;
    function hasNextDouble(): jboolean; overload; virtual;
    function nextDouble(): jdouble; overload; virtual;
    function hasNextBigInteger(): jboolean; overload; virtual;
    function hasNextBigInteger(para1: jint): jboolean; overload; virtual;
    function nextBigInteger(): JMBigInteger; overload; virtual;
    function nextBigInteger(para1: jint): JMBigInteger; overload; virtual;
    function hasNextBigDecimal(): jboolean; overload; virtual;
    function nextBigDecimal(): JMBigDecimal; overload; virtual;
    function reset(): JUScanner; overload; virtual;
    function next(): JLObject; overload; virtual;
  end;

  JISPartialOrderIterator = class external 'javax.imageio.spi' name 'PartialOrderIterator' (JLObject, JUIterator)
  public
    constructor create(para1: JUIterator); overload;
    function hasNext(): jboolean; overload; virtual;
    function next(): JLObject; overload; virtual;
    procedure remove(); overload; virtual;
  end;

  JXSXMLEventReader = interface external 'javax.xml.stream' name 'XMLEventReader' (JUIterator)
    function nextEvent(): JXSEXMLEvent; overload;  // throws javax.xml.stream.XMLStreamException
    function hasNext(): jboolean; overload;
    function peek(): JXSEXMLEvent; overload;  // throws javax.xml.stream.XMLStreamException
    function getElementText(): JLString; overload;  // throws javax.xml.stream.XMLStreamException
    function nextTag(): JXSEXMLEvent; overload;  // throws javax.xml.stream.XMLStreamException
    function getProperty(para1: JLString): JLObject; overload;  // throws java.lang.IllegalArgumentException
    procedure close(); overload;  // throws javax.xml.stream.XMLStreamException
  end;

  JICharConversionException = class external 'java.io' name 'CharConversionException' (JIIOException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JIEOFException = class external 'java.io' name 'EOFException' (JIIOException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JIFileNotFoundException = class external 'java.io' name 'FileNotFoundException' (JIIOException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JIInterruptedIOException = class external 'java.io' name 'InterruptedIOException' (JIIOException)
  public
    var
      fbytesTransferred: jint; external name 'bytesTransferred';
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JIObjectStreamException = class abstract external 'java.io' name 'ObjectStreamException' (JIIOException)
  strict protected
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JISyncFailedException = class external 'java.io' name 'SyncFailedException' (JIIOException)
  public
    constructor create(para1: JLString); overload;
  end;

  JIUTFDataFormatException = class external 'java.io' name 'UTFDataFormatException' (JIIOException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JIUnsupportedEncodingException = class external 'java.io' name 'UnsupportedEncodingException' (JIIOException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JNHttpRetryException = class external 'java.net' name 'HttpRetryException' (JIIOException)
  public
    constructor create(para1: JLString; para2: jint); overload;
    constructor create(para1: JLString; para2: jint; para3: JLString); overload;
    function responseCode(): jint; overload; virtual;
    function getReason(): JLString; overload; virtual;
    function getLocation(): JLString; overload; virtual;
  end;

  JNMalformedURLException = class external 'java.net' name 'MalformedURLException' (JIIOException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JNProtocolException = class external 'java.net' name 'ProtocolException' (JIIOException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JNSocketException = class external 'java.net' name 'SocketException' (JIIOException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JNUnknownHostException = class external 'java.net' name 'UnknownHostException' (JIIOException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JNUnknownServiceException = class external 'java.net' name 'UnknownServiceException' (JIIOException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JNCClosedChannelException = class external 'java.nio.channels' name 'ClosedChannelException' (JIIOException)
  public
    constructor create(); overload;
  end;

  JNCFileLockInterruptionException = class external 'java.nio.channels' name 'FileLockInterruptionException' (JIIOException)
  public
    constructor create(); overload;
  end;

  JRRemoteException = class external 'java.rmi' name 'RemoteException' (JIIOException)
  public
    var
      fdetail: JLThrowable; external name 'detail';
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    function getMessage(): JLString; overload; virtual;
    function getCause(): JLThrowable; overload; virtual;
  end;

  JUInvalidPropertiesFormatException = class external 'java.util' name 'InvalidPropertiesFormatException' (JIIOException)
  public
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString); overload;
  end;

  JUZZipException = class external 'java.util.zip' name 'ZipException' (JIIOException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JAUnsupportedDataTypeException = class external 'javax.activation' name 'UnsupportedDataTypeException' (JIIOException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JAPFilerException = class external 'javax.annotation.processing' name 'FilerException' (JIIOException)
  public
    constructor create(para1: JLString); overload;
  end;

  JIIIOException = class external 'javax.imageio' name 'IIOException' (JIIOException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
  end;

  JMRJMXProviderException = class external 'javax.management.remote' name 'JMXProviderException' (JIIOException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    function getCause(): JLThrowable; overload; virtual;
  end;

  JMRJMXServerErrorException = class external 'javax.management.remote' name 'JMXServerErrorException' (JIIOException)
  public
    constructor create(para1: JLString; para2: JLError); overload;
    function getCause(): JLThrowable; overload; virtual;
  end;

  JNSSSLException = class external 'javax.net.ssl' name 'SSLException' (JIIOException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JSSSaslException = class external 'javax.security.sasl' name 'SaslException' (JIIOException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    function getCause(): JLThrowable; overload; virtual;
    function initCause(para1: JLThrowable): JLThrowable; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSTChangedCharSetException = class external 'javax.swing.text' name 'ChangedCharSetException' (JIIOException)
  public
    constructor create(para1: JLString; para2: jboolean); overload;
    function getCharSetSpec(): JLString; overload; virtual;
    function keyEqualsCharSet(): jboolean; overload; virtual;
  end;

  JIFile = class external 'java.io' name 'File' (JLObject, JISerializable, JLComparable)
  public
    type
      InnerLazyInitialization = class;
      Arr1InnerLazyInitialization = array of InnerLazyInitialization;
      Arr2InnerLazyInitialization = array of Arr1InnerLazyInitialization;
      Arr3InnerLazyInitialization = array of Arr2InnerLazyInitialization;
      InnerLazyInitialization = class external 'java.io' name 'LazyInitialization' 
      end;

  public
    final class var
      fseparatorChar: jchar; external name 'separatorChar';
      fseparator: JLString; external name 'separator';
      fpathSeparatorChar: jchar; external name 'pathSeparatorChar';
      fpathSeparator: JLString; external name 'pathSeparator';
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JIFile; para2: JLString); overload;
    constructor create(para1: JNURI); overload;
    function getName(): JLString; overload; virtual;
    function getParent(): JLString; overload; virtual;
    function getParentFile(): JIFile; overload; virtual;
    function getPath(): JLString; overload; virtual;
    function isAbsolute(): jboolean; overload; virtual;
    function getAbsolutePath(): JLString; overload; virtual;
    function getAbsoluteFile(): JIFile; overload; virtual;
    function getCanonicalPath(): JLString; overload; virtual;  // throws java.io.IOException
    function getCanonicalFile(): JIFile; overload; virtual;  // throws java.io.IOException
    function toURL(): JNURL; overload; virtual;  // throws java.net.MalformedURLException
    function toURI(): JNURI; overload; virtual;
    function canRead(): jboolean; overload; virtual;
    function canWrite(): jboolean; overload; virtual;
    function exists(): jboolean; overload; virtual;
    function isDirectory(): jboolean; overload; virtual;
    function isFile(): jboolean; overload; virtual;
    function isHidden(): jboolean; overload; virtual;
    function lastModified(): jlong; overload; virtual;
    function length(): jlong; overload; virtual;
    function createNewFile(): jboolean; overload; virtual;  // throws java.io.IOException
    function delete(): jboolean; overload; virtual;
    procedure deleteOnExit(); overload; virtual;
    function list(): Arr1JLString; overload; virtual;
    function list(para1: JIFilenameFilter): Arr1JLString; overload; virtual;
    function listFiles(): Arr1JIFile; overload; virtual;
    function listFiles(para1: JIFilenameFilter): Arr1JIFile; overload; virtual;
    function listFiles(para1: JIFileFilter): Arr1JIFile; overload; virtual;
    function mkdir(): jboolean; overload; virtual;
    function mkdirs(): jboolean; overload; virtual;
    function renameTo(para1: JIFile): jboolean; overload; virtual;
    function setLastModified(para1: jlong): jboolean; overload; virtual;
    function setReadOnly(): jboolean; overload; virtual;
    function setWritable(para1: jboolean; para2: jboolean): jboolean; overload; virtual;
    function setWritable(para1: jboolean): jboolean; overload; virtual;
    function setReadable(para1: jboolean; para2: jboolean): jboolean; overload; virtual;
    function setReadable(para1: jboolean): jboolean; overload; virtual;
    function setExecutable(para1: jboolean; para2: jboolean): jboolean; overload; virtual;
    function setExecutable(para1: jboolean): jboolean; overload; virtual;
    function canExecute(): jboolean; overload; virtual;
    class function listRoots(): Arr1JIFile; static; overload;
    function getTotalSpace(): jlong; overload; virtual;
    function getFreeSpace(): jlong; overload; virtual;
    function getUsableSpace(): jlong; overload; virtual;
    class function createTempFile(para1: JLString; para2: JLString; para3: JIFile): JIFile; static; overload;  // throws java.io.IOException
    class function createTempFile(para1: JLString; para2: JLString): JIFile; static; overload;  // throws java.io.IOException
    function compareTo(para1: JIFile): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function compareTo(para1: JLObject): jint; overload; virtual;
  end;

  JIObjectStreamField = class external 'java.io' name 'ObjectStreamField' (JLObject, JLComparable)
  public
    constructor create(para1: JLString; para2: JLClass); overload;
    constructor create(para1: JLString; para2: JLClass; para3: jboolean); overload;
    function getName(): JLString; overload; virtual;
    function getType(): JLClass; overload; virtual;
    function getTypeCode(): jchar; overload; virtual;
    function getTypeString(): JLString; overload; virtual;
    function getOffset(): jint; overload; virtual;
  strict protected
    procedure setOffset(para1: jint); overload; virtual;
  public
    function isPrimitive(): jboolean; overload; virtual;
    function isUnshared(): jboolean; overload; virtual;
    function compareTo(para1: JLObject): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JNURI = class sealed external 'java.net' name 'URI' (JLObject, JLComparable, JISerializable)
  public
    type
      InnerParser = class;
      Arr1InnerParser = array of InnerParser;
      Arr2InnerParser = array of Arr1InnerParser;
      Arr3InnerParser = array of Arr2InnerParser;
      InnerParser = class external 'java.net' name 'Parser' 
      end;

  public
    constructor create(para1: JLString); overload;  // throws java.net.URISyntaxException
    constructor create(para1: JLString; para2: JLString; para3: JLString; para4: jint; para5: JLString; para6: JLString; para7: JLString); overload;  // throws java.net.URISyntaxException
    constructor create(para1: JLString; para2: JLString; para3: JLString; para4: JLString; para5: JLString); overload;  // throws java.net.URISyntaxException
    constructor create(para1: JLString; para2: JLString; para3: JLString; para4: JLString); overload;  // throws java.net.URISyntaxException
    constructor create(para1: JLString; para2: JLString; para3: JLString); overload;  // throws java.net.URISyntaxException
    class function create_(para1: JLString): JNURI; static; external name 'create'; overload;
    function parseServerAuthority(): JNURI; overload; virtual;  // throws java.net.URISyntaxException
    function normalize(): JNURI; overload; virtual;
    function resolve(para1: JNURI): JNURI; overload; virtual;
    function resolve(para1: JLString): JNURI; overload; virtual;
    function relativize(para1: JNURI): JNURI; overload; virtual;
    function toURL(): JNURL; overload; virtual;  // throws java.net.MalformedURLException
    function getScheme(): JLString; overload; virtual;
    function isAbsolute(): jboolean; overload; virtual;
    function isOpaque(): jboolean; overload; virtual;
    function getRawSchemeSpecificPart(): JLString; overload; virtual;
    function getSchemeSpecificPart(): JLString; overload; virtual;
    function getRawAuthority(): JLString; overload; virtual;
    function getAuthority(): JLString; overload; virtual;
    function getRawUserInfo(): JLString; overload; virtual;
    function getUserInfo(): JLString; overload; virtual;
    function getHost(): JLString; overload; virtual;
    function getPort(): jint; overload; virtual;
    function getRawPath(): JLString; overload; virtual;
    function getPath(): JLString; overload; virtual;
    function getRawQuery(): JLString; overload; virtual;
    function getQuery(): JLString; overload; virtual;
    function getRawFragment(): JLString; overload; virtual;
    function getFragment(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function compareTo(para1: JNURI): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function toASCIIString(): JLString; overload; virtual;
    function compareTo(para1: JLObject): jint; overload; virtual;
  end;

  JTCollationKey = class abstract external 'java.text' name 'CollationKey' (JLObject, JLComparable)
  public
    function compareTo(para1: JTCollationKey): jint; overload; virtual; abstract;
    function getSourceString(): JLString; overload; virtual;
    function toByteArray(): Arr1jbyte; overload; virtual; abstract;
  strict protected
    constructor create(para1: JLString); overload;
  public
    function compareTo(para1: JLObject): jint; overload; virtual;
  end;

  JUDate = class external 'java.util' name 'Date' (JLObject, JISerializable, JLCloneable, JLComparable)
  public
    constructor create(); overload;
    constructor create(para1: jlong); overload;
    constructor create(para1: jint; para2: jint; para3: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
    constructor create(para1: JLString); overload;
    function clone(): JLObject; overload; virtual;
    class function UTC(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint): jlong; static; overload;
    class function parse(para1: JLString): jlong; static; overload;
    function getYear(): jint; overload; virtual;
    procedure setYear(para1: jint); overload; virtual;
    function getMonth(): jint; overload; virtual;
    procedure setMonth(para1: jint); overload; virtual;
    function getDate(): jint; overload; virtual;
    procedure setDate(para1: jint); overload; virtual;
    function getDay(): jint; overload; virtual;
    function getHours(): jint; overload; virtual;
    procedure setHours(para1: jint); overload; virtual;
    function getMinutes(): jint; overload; virtual;
    procedure setMinutes(para1: jint); overload; virtual;
    function getSeconds(): jint; overload; virtual;
    procedure setSeconds(para1: jint); overload; virtual;
    function getTime(): jlong; overload; virtual;
    procedure setTime(para1: jlong); overload; virtual;
    function before(para1: JUDate): jboolean; overload; virtual;
    function after(para1: JUDate): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function compareTo(para1: JUDate): jint; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function toLocaleString(): JLString; overload; virtual;
    function toGMTString(): JLString; overload; virtual;
    function getTimezoneOffset(): jint; overload; virtual;
    function compareTo(para1: JLObject): jint; overload; virtual;
  end;

  JUUUID = class sealed external 'java.util' name 'UUID' (JLObject, JISerializable, JLComparable)
  public
    constructor create(para1: jlong; para2: jlong); overload;
    class function randomUUID(): JUUUID; static; overload;
    class function nameUUIDFromBytes(para1: Arr1jbyte): JUUUID; static; overload;
    class function nameUUIDFromBytes(var para1: array of jbyte): JUUUID; static; overload;
    class function fromString(para1: JLString): JUUUID; static; overload;
    function getLeastSignificantBits(): jlong; overload; virtual;
    function getMostSignificantBits(): jlong; overload; virtual;
    function version(): jint; overload; virtual;
    function variant(): jint; overload; virtual;
    function timestamp(): jlong; overload; virtual;
    function clockSequence(): jint; overload; virtual;
    function node(): jlong; overload; virtual;
    function toString(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function compareTo(para1: JUUUID): jint; overload; virtual;
    function compareTo(para1: JLObject): jint; overload; virtual;
  end;

  JUCDelayed = interface external 'java.util.concurrent' name 'Delayed' (JLComparable)
    function getDelay(para1: JUCTimeUnit): jlong; overload;
  end;

  JNName = interface external 'javax.naming' name 'Name' (JLCloneable, JISerializable, JLComparable)
    const
      serialVersionUID = jlong(-3617482732056931635);
    function clone(): JLObject; overload;
    function compareTo(para1: JLObject): jint; overload;
    function size(): jint; overload;
    function isEmpty(): jboolean; overload;
    function getAll(): JUEnumeration; overload;
    function get(para1: jint): JLString; overload;
    function getPrefix(para1: jint): JNName; overload;
    function getSuffix(para1: jint): JNName; overload;
    function startsWith(para1: JNName): jboolean; overload;
    function endsWith(para1: JNName): jboolean; overload;
    function addAll(para1: JNName): JNName; overload;  // throws javax.naming.InvalidNameException
    function addAll(para1: jint; para2: JNName): JNName; overload;  // throws javax.naming.InvalidNameException
    function add(para1: JLString): JNName; overload;  // throws javax.naming.InvalidNameException
    function add(para1: jint; para2: JLString): JNName; overload;  // throws javax.naming.InvalidNameException
    function remove(para1: jint): JLObject; overload;  // throws javax.naming.InvalidNameException
  end;

  JNLRdn = class external 'javax.naming.ldap' name 'Rdn' (JLObject, JISerializable, JLComparable)
  public
    type
      InnerRdnEntry = class;
      Arr1InnerRdnEntry = array of InnerRdnEntry;
      Arr2InnerRdnEntry = array of Arr1InnerRdnEntry;
      Arr3InnerRdnEntry = array of Arr2InnerRdnEntry;
      InnerRdnEntry = class external 'javax.naming.ldap' name 'RdnEntry' 
      end;

  public
    constructor create(para1: JNDAttributes); overload;  // throws javax.naming.InvalidNameException
    constructor create(para1: JLString); overload;  // throws javax.naming.InvalidNameException
    constructor create(para1: JNLRdn); overload;
    constructor create(para1: JLString; para2: JLObject); overload;  // throws javax.naming.InvalidNameException
    function getValue(): JLObject; overload; virtual;
    function getType(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
    function compareTo(para1: JLObject): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toAttributes(): JNDAttributes; overload; virtual;
    function size(): jint; overload; virtual;
    class function escapeValue(para1: JLObject): JLString; static; overload;
    class function unescapeValue(para1: JLString): JLObject; static; overload;
  end;

  JLArrayIndexOutOfBoundsException = class external 'java.lang' name 'ArrayIndexOutOfBoundsException' (JLIndexOutOfBoundsException)
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: JLString); overload;
  end;

  JLStringIndexOutOfBoundsException = class external 'java.lang' name 'StringIndexOutOfBoundsException' (JLIndexOutOfBoundsException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint); overload;
  end;

  JLClassCircularityError = class external 'java.lang' name 'ClassCircularityError' (JLLinkageError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLClassFormatError = class external 'java.lang' name 'ClassFormatError' (JLLinkageError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLExceptionInInitializerError = class external 'java.lang' name 'ExceptionInInitializerError' (JLLinkageError)
  public
    constructor create(); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString); overload;
    function getException(): JLThrowable; overload; virtual;
    function getCause(): JLThrowable; overload; virtual;
  end;

  JLIncompatibleClassChangeError = class external 'java.lang' name 'IncompatibleClassChangeError' (JLLinkageError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLNoClassDefFoundError = class external 'java.lang' name 'NoClassDefFoundError' (JLLinkageError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLUnsatisfiedLinkError = class external 'java.lang' name 'UnsatisfiedLinkError' (JLLinkageError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLVerifyError = class external 'java.lang' name 'VerifyError' (JLLinkageError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLIllegalThreadStateException = class external 'java.lang' name 'IllegalThreadStateException' (JLIllegalArgumentException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLNumberFormatException = class external 'java.lang' name 'NumberFormatException' (JLIllegalArgumentException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JNCIllegalSelectorException = class external 'java.nio.channels' name 'IllegalSelectorException' (JLIllegalArgumentException)
  public
    constructor create(); overload;
  end;

  JNCUnresolvedAddressException = class external 'java.nio.channels' name 'UnresolvedAddressException' (JLIllegalArgumentException)
  public
    constructor create(); overload;
  end;

  JNCUnsupportedAddressTypeException = class external 'java.nio.channels' name 'UnsupportedAddressTypeException' (JLIllegalArgumentException)
  public
    constructor create(); overload;
  end;

  JSInvalidParameterException = class external 'java.security' name 'InvalidParameterException' (JLIllegalArgumentException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JUIllegalFormatException = class external 'java.util' name 'IllegalFormatException' (JLIllegalArgumentException)
  end;

  JURPatternSyntaxException = class external 'java.util.regex' name 'PatternSyntaxException' (JLIllegalArgumentException)
  public
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    function getIndex(): jint; overload; virtual;
    function getDescription(): JLString; overload; virtual;
    function getPattern(): JLString; overload; virtual;
    function getMessage(): JLString; overload; virtual;
  end;

  JMOInvalidKeyException = class external 'javax.management.openmbean' name 'InvalidKeyException' (JLIllegalArgumentException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JMOInvalidOpenTypeException = class external 'javax.management.openmbean' name 'InvalidOpenTypeException' (JLIllegalArgumentException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JMOKeyAlreadyExistsException = class external 'javax.management.openmbean' name 'KeyAlreadyExistsException' (JLIllegalArgumentException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLInheritableThreadLocal = class external 'java.lang' name 'InheritableThreadLocal' (JLThreadLocal)
  public
    constructor create(); overload;
  strict protected
    function childValue(para1: JLObject): JLObject; overload; virtual;
  end;

  JLPackage = class external 'java.lang' name 'Package' (JLObject, JLRAnnotatedElement)
  public
    function getName(): JLString; overload; virtual;
    function getSpecificationTitle(): JLString; overload; virtual;
    function getSpecificationVersion(): JLString; overload; virtual;
    function getSpecificationVendor(): JLString; overload; virtual;
    function getImplementationTitle(): JLString; overload; virtual;
    function getImplementationVersion(): JLString; overload; virtual;
    function getImplementationVendor(): JLString; overload; virtual;
    function isSealed(): jboolean; overload; virtual;
    function isSealed(para1: JNURL): jboolean; overload; virtual;
    function isCompatibleWith(para1: JLString): jboolean; overload; virtual;  // throws java.lang.NumberFormatException
    class function getPackage(para1: JLString): JLPackage; static; overload;
    class function getPackages(): Arr1JLPackage; static; overload;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function getAnnotation(para1: JLClass): JLAAnnotation; overload; virtual;
    function isAnnotationPresent(para1: JLClass): jboolean; overload; virtual;
    function getAnnotations(): Arr1JLAAnnotation; overload; virtual;
    function getDeclaredAnnotations(): Arr1JLAAnnotation; overload; virtual;
  end;

  JLRConstructor = class sealed external 'java.lang.reflect' name 'Constructor' (JLRAccessibleObject, JLRGenericDeclaration, JLRMember)
  public
    function getDeclaringClass(): JLClass; overload; virtual;
    function getName(): JLString; overload; virtual;
    function getModifiers(): jint; overload; virtual;
    function getTypeParameters(): Arr1JLRTypeVariable; overload; virtual;
    function getParameterTypes(): Arr1JLClass; overload; virtual;
    function getGenericParameterTypes(): Arr1JLRType; overload; virtual;
    function getExceptionTypes(): Arr1JLClass; overload; virtual;
    function getGenericExceptionTypes(): Arr1JLRType; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function toGenericString(): JLString; overload; virtual;
    function newInstance(para1: Arr1JLObject): JLObject; overload; virtual;  // throws java.lang.InstantiationException, java.lang.IllegalAccessException, java.lang.IllegalArgumentException, java.lang.reflect.InvocationTargetException
    function newInstance(const para1: array of JLObject): JLObject; overload; virtual;  // throws java.lang.InstantiationException, java.lang.IllegalAccessException, java.lang.IllegalArgumentException, java.lang.reflect.InvocationTargetException
    function isVarArgs(): jboolean; overload; virtual;
    function isSynthetic(): jboolean; overload; virtual;
    function getAnnotation(para1: JLClass): JLAAnnotation; overload; virtual;
    function getDeclaredAnnotations(): Arr1JLAAnnotation; overload; virtual;
    function getParameterAnnotations(): Arr2JLAAnnotation; overload; virtual;
  end;

  JLRGenericArrayType = interface external 'java.lang.reflect' name 'GenericArrayType' (JLRType)
    function getGenericComponentType(): JLRType; overload;
  end;

  JLRParameterizedType = interface external 'java.lang.reflect' name 'ParameterizedType' (JLRType)
    function getActualTypeArguments(): Arr1JLRType; overload;
    function getRawType(): JLRType; overload;
    function getOwnerType(): JLRType; overload;
  end;

  JLRTypeVariable = interface external 'java.lang.reflect' name 'TypeVariable' (JLRType)
    function getBounds(): Arr1JLRType; overload;
    function getGenericDeclaration(): JLRGenericDeclaration; overload;
    function getName(): JLString; overload;
  end;

  JLRWildcardType = interface external 'java.lang.reflect' name 'WildcardType' (JLRType)
    function getUpperBounds(): Arr1JLRType; overload;
    function getLowerBounds(): Arr1JLRType; overload;
  end;

  JLRReflectAccess = class external 'java.lang.reflect' name 'ReflectAccess' (JLObject, SRLangReflectAccess)
  public
    function newField(para1: JLClass; para2: JLString; para3: JLClass; para4: jint; para5: jint; para6: JLString; para7: Arr1jbyte): JLRField; overload; virtual;
    function newField(para1: JLClass; para2: JLString; para3: JLClass; para4: jint; para5: jint; para6: JLString; var para7: array of jbyte): JLRField; overload; virtual;
    function newMethod(para1: JLClass; para2: JLString; para3: Arr1JLClass; para4: JLClass; para5: Arr1JLClass; para6: jint; para7: jint; para8: JLString; para9: Arr1jbyte; para10: Arr1jbyte; para11: Arr1jbyte): JLRMethod; overload; virtual;
    function newMethod(para1: JLClass; para2: JLString; var para3: array of JLClass; para4: JLClass; var para5: array of JLClass; para6: jint; para7: jint; para8: JLString; var para9: array of jbyte; var para10: array of jbyte; var para11: array of jbyte): JLRMethod; overload; virtual;
    function newConstructor(para1: JLClass; para2: Arr1JLClass; para3: Arr1JLClass; para4: jint; para5: jint; para6: JLString; para7: Arr1jbyte; para8: Arr1jbyte): JLRConstructor; overload; virtual;
    function newConstructor(para1: JLClass; var para2: array of JLClass; var para3: array of JLClass; para4: jint; para5: jint; para6: JLString; var para7: array of jbyte; var para8: array of jbyte): JLRConstructor; overload; virtual;
    function getMethodAccessor(para1: JLRMethod): SRMethodAccessor; overload; virtual;
    procedure setMethodAccessor(para1: JLRMethod; para2: SRMethodAccessor); overload; virtual;
    function getConstructorAccessor(para1: JLRConstructor): SRConstructorAccessor; overload; virtual;
    procedure setConstructorAccessor(para1: JLRConstructor; para2: SRConstructorAccessor); overload; virtual;
    function getConstructorSlot(para1: JLRConstructor): jint; overload; virtual;
    function getConstructorSignature(para1: JLRConstructor): JLString; overload; virtual;
    function getConstructorAnnotations(para1: JLRConstructor): Arr1jbyte; overload; virtual;
    function getConstructorParameterAnnotations(para1: JLRConstructor): Arr1jbyte; overload; virtual;
    function copyMethod(para1: JLRMethod): JLRMethod; overload; virtual;
    function copyField(para1: JLRField): JLRField; overload; virtual;
    function copyConstructor(para1: JLRConstructor): JLRConstructor; overload; virtual;
  end;

  JMBigDecimal = class external 'java.math' name 'BigDecimal' (JLNumber, JLComparable)
  public
    type
      InnerLongOverflow = class;
      Arr1InnerLongOverflow = array of InnerLongOverflow;
      Arr2InnerLongOverflow = array of Arr1InnerLongOverflow;
      Arr3InnerLongOverflow = array of Arr2InnerLongOverflow;
      InnerStringBuilderHelper = class;
      Arr1InnerStringBuilderHelper = array of InnerStringBuilderHelper;
      Arr2InnerStringBuilderHelper = array of Arr1InnerStringBuilderHelper;
      Arr3InnerStringBuilderHelper = array of Arr2InnerStringBuilderHelper;
      InnerLongOverflow = class external 'java.math' name 'LongOverflow' 
      end;

      InnerStringBuilderHelper = class external 'java.math' name 'StringBuilderHelper' 
      end;

  public
    final class var
      fZERO: JMBigDecimal; external name 'ZERO';
      fONE: JMBigDecimal; external name 'ONE';
      fTEN: JMBigDecimal; external name 'TEN';
  public
    const
      ROUND_UP = 0;
      ROUND_DOWN = 1;
      ROUND_CEILING = 2;
      ROUND_FLOOR = 3;
      ROUND_HALF_UP = 4;
      ROUND_HALF_DOWN = 5;
      ROUND_HALF_EVEN = 6;
      ROUND_UNNECESSARY = 7;
  public
    constructor create(para1: Arr1jchar; para2: jint; para3: jint); overload;
    constructor create(const para1: array of jchar; para2: jint; para3: jint); overload;
    constructor create(para1: Arr1jchar; para2: jint; para3: jint; para4: JMMathContext); overload;
    constructor create(const para1: array of jchar; para2: jint; para3: jint; para4: JMMathContext); overload;
    constructor create(para1: Arr1jchar); overload;
    constructor create(const para1: array of jchar); overload;
    constructor create(para1: Arr1jchar; para2: JMMathContext); overload;
    constructor create(const para1: array of jchar; para2: JMMathContext); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JMMathContext); overload;
    constructor create(para1: jdouble); overload;
    constructor create(para1: jdouble; para2: JMMathContext); overload;
    constructor create(para1: JMBigInteger); overload;
    constructor create(para1: JMBigInteger; para2: JMMathContext); overload;
    constructor create(para1: JMBigInteger; para2: jint); overload;
    constructor create(para1: JMBigInteger; para2: jint; para3: JMMathContext); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: JMMathContext); overload;
    constructor create(para1: jlong); overload;
    constructor create(para1: jlong; para2: JMMathContext); overload;
    class function valueOf(para1: jlong; para2: jint): JMBigDecimal; static; overload;
    class function valueOf(para1: jlong): JMBigDecimal; static; overload;
    class function valueOf(para1: jdouble): JMBigDecimal; static; overload;
    function add(para1: JMBigDecimal): JMBigDecimal; overload; virtual;
    function add(para1: JMBigDecimal; para2: JMMathContext): JMBigDecimal; overload; virtual;
    function subtract(para1: JMBigDecimal): JMBigDecimal; overload; virtual;
    function subtract(para1: JMBigDecimal; para2: JMMathContext): JMBigDecimal; overload; virtual;
    function multiply(para1: JMBigDecimal): JMBigDecimal; overload; virtual;
    function multiply(para1: JMBigDecimal; para2: JMMathContext): JMBigDecimal; overload; virtual;
    function divide(para1: JMBigDecimal; para2: jint; para3: jint): JMBigDecimal; overload; virtual;
    function divide(para1: JMBigDecimal; para2: jint; para3: JMRoundingMode): JMBigDecimal; overload; virtual;
    function divide(para1: JMBigDecimal; para2: jint): JMBigDecimal; overload; virtual;
    function divide(para1: JMBigDecimal; para2: JMRoundingMode): JMBigDecimal; overload; virtual;
    function divide(para1: JMBigDecimal): JMBigDecimal; overload; virtual;
    function divide(para1: JMBigDecimal; para2: JMMathContext): JMBigDecimal; overload; virtual;
    function divideToIntegralValue(para1: JMBigDecimal): JMBigDecimal; overload; virtual;
    function divideToIntegralValue(para1: JMBigDecimal; para2: JMMathContext): JMBigDecimal; overload; virtual;
    function remainder(para1: JMBigDecimal): JMBigDecimal; overload; virtual;
    function remainder(para1: JMBigDecimal; para2: JMMathContext): JMBigDecimal; overload; virtual;
    function divideAndRemainder(para1: JMBigDecimal): Arr1JMBigDecimal; overload; virtual;
    function divideAndRemainder(para1: JMBigDecimal; para2: JMMathContext): Arr1JMBigDecimal; overload; virtual;
    function pow(para1: jint): JMBigDecimal; overload; virtual;
    function pow(para1: jint; para2: JMMathContext): JMBigDecimal; overload; virtual;
    function abs(): JMBigDecimal; overload; virtual;
    function abs(para1: JMMathContext): JMBigDecimal; overload; virtual;
    function negate(): JMBigDecimal; overload; virtual;
    function negate(para1: JMMathContext): JMBigDecimal; overload; virtual;
    function plus(): JMBigDecimal; overload; virtual;
    function plus(para1: JMMathContext): JMBigDecimal; overload; virtual;
    function signum(): jint; overload; virtual;
    function scale(): jint; overload; virtual;
    function precision(): jint; overload; virtual;
    function unscaledValue(): JMBigInteger; overload; virtual;
    function round(para1: JMMathContext): JMBigDecimal; overload; virtual;
    function setScale(para1: jint; para2: JMRoundingMode): JMBigDecimal; overload; virtual;
    function setScale(para1: jint; para2: jint): JMBigDecimal; overload; virtual;
    function setScale(para1: jint): JMBigDecimal; overload; virtual;
    function movePointLeft(para1: jint): JMBigDecimal; overload; virtual;
    function movePointRight(para1: jint): JMBigDecimal; overload; virtual;
    function scaleByPowerOfTen(para1: jint): JMBigDecimal; overload; virtual;
    function stripTrailingZeros(): JMBigDecimal; overload; virtual;
    function compareTo(para1: JMBigDecimal): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function min(para1: JMBigDecimal): JMBigDecimal; overload; virtual;
    function max(para1: JMBigDecimal): JMBigDecimal; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function toEngineeringString(): JLString; overload; virtual;
    function toPlainString(): JLString; overload; virtual;
    function toBigInteger(): JMBigInteger; overload; virtual;
    function toBigIntegerExact(): JMBigInteger; overload; virtual;
    function longValue(): jlong; overload; virtual;
    function longValueExact(): jlong; overload; virtual;
    function intValue(): jint; overload; virtual;
    function intValueExact(): jint; overload; virtual;
    function shortValueExact(): jshort; overload; virtual;
    function byteValueExact(): jbyte; overload; virtual;
    function floatValue(): jfloat; overload; virtual;
    function doubleValue(): jdouble; overload; virtual;
    function ulp(): JMBigDecimal; overload; virtual;
    function compareTo(para1: JLObject): jint; overload; virtual;
  end;

  JUCAAtomicInteger = class external 'java.util.concurrent.atomic' name 'AtomicInteger' (JLNumber, JISerializable)
  public
    constructor create(para1: jint); overload;
    constructor create(); overload;
    function get(): jint; overload; virtual; final;
    procedure &set(para1: jint); overload; virtual; final;
    procedure lazySet(para1: jint); overload; virtual; final;
    function getAndSet(para1: jint): jint; overload; virtual; final;
    function compareAndSet(para1: jint; para2: jint): jboolean; overload; virtual; final;
    function weakCompareAndSet(para1: jint; para2: jint): jboolean; overload; virtual; final;
    function getAndIncrement(): jint; overload; virtual; final;
    function getAndDecrement(): jint; overload; virtual; final;
    function getAndAdd(para1: jint): jint; overload; virtual; final;
    function incrementAndGet(): jint; overload; virtual; final;
    function decrementAndGet(): jint; overload; virtual; final;
    function addAndGet(para1: jint): jint; overload; virtual; final;
    function toString(): JLString; overload; virtual;
    function intValue(): jint; overload; virtual;
    function longValue(): jlong; overload; virtual;
    function floatValue(): jfloat; overload; virtual;
    function doubleValue(): jdouble; overload; virtual;
  end;

  JUCAAtomicLong = class external 'java.util.concurrent.atomic' name 'AtomicLong' (JLNumber, JISerializable)
  public
    constructor create(para1: jlong); overload;
    constructor create(); overload;
    function get(): jlong; overload; virtual; final;
    procedure &set(para1: jlong); overload; virtual; final;
    procedure lazySet(para1: jlong); overload; virtual; final;
    function getAndSet(para1: jlong): jlong; overload; virtual; final;
    function compareAndSet(para1: jlong; para2: jlong): jboolean; overload; virtual; final;
    function weakCompareAndSet(para1: jlong; para2: jlong): jboolean; overload; virtual; final;
    function getAndIncrement(): jlong; overload; virtual; final;
    function getAndDecrement(): jlong; overload; virtual; final;
    function getAndAdd(para1: jlong): jlong; overload; virtual; final;
    function incrementAndGet(): jlong; overload; virtual; final;
    function decrementAndGet(): jlong; overload; virtual; final;
    function addAndGet(para1: jlong): jlong; overload; virtual; final;
    function toString(): JLString; overload; virtual;
    function intValue(): jint; overload; virtual;
    function longValue(): jlong; overload; virtual;
    function floatValue(): jfloat; overload; virtual;
    function doubleValue(): jdouble; overload; virtual;
  end;

  JNByteBufferAsCharBufferB = class external 'java.nio' name 'ByteBufferAsCharBufferB' (JNCharBuffer)
  strict protected
    final var
      fbb: JNByteBuffer; external name 'bb';
      foffset: jint; external name 'offset';
  public
    function slice(): JNCharBuffer; overload; virtual;
    function duplicate(): JNCharBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNCharBuffer; overload; virtual;
  strict protected
    function ix(para1: jint): jint; overload; virtual;
  public
    function get(): jchar; overload; virtual;
    function get(para1: jint): jchar; overload; virtual;
    function put(para1: jchar): JNCharBuffer; overload; virtual;
    function put(para1: jint; para2: jchar): JNCharBuffer; overload; virtual;
    function compact(): JNCharBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function toString(para1: jint; para2: jint): JLString; overload; virtual;
    function subSequence(para1: jint; para2: jint): JLCharSequence; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNByteBufferAsCharBufferL = class external 'java.nio' name 'ByteBufferAsCharBufferL' (JNCharBuffer)
  strict protected
    final var
      fbb: JNByteBuffer; external name 'bb';
      foffset: jint; external name 'offset';
  public
    function slice(): JNCharBuffer; overload; virtual;
    function duplicate(): JNCharBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNCharBuffer; overload; virtual;
  strict protected
    function ix(para1: jint): jint; overload; virtual;
  public
    function get(): jchar; overload; virtual;
    function get(para1: jint): jchar; overload; virtual;
    function put(para1: jchar): JNCharBuffer; overload; virtual;
    function put(para1: jint; para2: jchar): JNCharBuffer; overload; virtual;
    function compact(): JNCharBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function toString(para1: jint; para2: jint): JLString; overload; virtual;
    function subSequence(para1: jint; para2: jint): JLCharSequence; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNHeapCharBuffer = class external 'java.nio' name 'HeapCharBuffer' (JNCharBuffer)
  strict protected
    constructor create(para1: Arr1jchar; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
    constructor create(const para1: array of jchar; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
  public
    function slice(): JNCharBuffer; overload; virtual;
    function duplicate(): JNCharBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNCharBuffer; overload; virtual;
  strict protected
    function ix(para1: jint): jint; overload; virtual;
  public
    function get(): jchar; overload; virtual;
    function get(para1: jint): jchar; overload; virtual;
    function get(para1: Arr1jchar; para2: jint; para3: jint): JNCharBuffer; overload; virtual;
    function get(var para1: array of jchar; para2: jint; para3: jint): JNCharBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function put(para1: jchar): JNCharBuffer; overload; virtual;
    function put(para1: jint; para2: jchar): JNCharBuffer; overload; virtual;
    function put(para1: Arr1jchar; para2: jint; para3: jint): JNCharBuffer; overload; virtual;
    function put(var para1: array of jchar; para2: jint; para3: jint): JNCharBuffer; overload; virtual;
    function put(para1: JNCharBuffer): JNCharBuffer; overload; virtual;
    function compact(): JNCharBuffer; overload; virtual;
    function subSequence(para1: jint; para2: jint): JLCharSequence; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNStringCharBuffer = class external 'java.nio' name 'StringCharBuffer' (JNCharBuffer)
  public
    function slice(): JNCharBuffer; overload; virtual;
    function duplicate(): JNCharBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNCharBuffer; overload; virtual;
    function get(): jchar; overload; virtual; final;
    function get(para1: jint): jchar; overload; virtual; final;
    function put(para1: jchar): JNCharBuffer; overload; virtual; final;
    function put(para1: jint; para2: jchar): JNCharBuffer; overload; virtual; final;
    function compact(): JNCharBuffer; overload; virtual; final;
    function isReadOnly(): jboolean; overload; virtual; final;
    function subSequence(para1: jint; para2: jint): JLCharSequence; overload; virtual; final;
    function isDirect(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNDirectCharBufferS = class external 'java.nio' name 'DirectCharBufferS' (JNCharBuffer, SNCDirectBuffer)
  strict protected
    final class var
      funsafe: SMUnsafe; external name 'unsafe';
      funaligned: jboolean; external name 'unaligned';
  public
    function viewedBuffer(): JLObject; overload; virtual;
    function cleaner(): SMCleaner; overload; virtual;
    function slice(): JNCharBuffer; overload; virtual;
    function duplicate(): JNCharBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNCharBuffer; overload; virtual;
    function address(): jlong; overload; virtual;
    function get(): jchar; overload; virtual;
    function get(para1: jint): jchar; overload; virtual;
    function get(para1: Arr1jchar; para2: jint; para3: jint): JNCharBuffer; overload; virtual;
    function get(var para1: array of jchar; para2: jint; para3: jint): JNCharBuffer; overload; virtual;
    function put(para1: jchar): JNCharBuffer; overload; virtual;
    function put(para1: jint; para2: jchar): JNCharBuffer; overload; virtual;
    function put(para1: JNCharBuffer): JNCharBuffer; overload; virtual;
    function put(para1: Arr1jchar; para2: jint; para3: jint): JNCharBuffer; overload; virtual;
    function put(var para1: array of jchar; para2: jint; para3: jint): JNCharBuffer; overload; virtual;
    function compact(): JNCharBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function toString(para1: jint; para2: jint): JLString; overload; virtual;
    function subSequence(para1: jint; para2: jint): JLCharSequence; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNDirectCharBufferU = class external 'java.nio' name 'DirectCharBufferU' (JNCharBuffer, SNCDirectBuffer)
  strict protected
    final class var
      funsafe: SMUnsafe; external name 'unsafe';
      funaligned: jboolean; external name 'unaligned';
  public
    function viewedBuffer(): JLObject; overload; virtual;
    function cleaner(): SMCleaner; overload; virtual;
    function slice(): JNCharBuffer; overload; virtual;
    function duplicate(): JNCharBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNCharBuffer; overload; virtual;
    function address(): jlong; overload; virtual;
    function get(): jchar; overload; virtual;
    function get(para1: jint): jchar; overload; virtual;
    function get(para1: Arr1jchar; para2: jint; para3: jint): JNCharBuffer; overload; virtual;
    function get(var para1: array of jchar; para2: jint; para3: jint): JNCharBuffer; overload; virtual;
    function put(para1: jchar): JNCharBuffer; overload; virtual;
    function put(para1: jint; para2: jchar): JNCharBuffer; overload; virtual;
    function put(para1: JNCharBuffer): JNCharBuffer; overload; virtual;
    function put(para1: Arr1jchar; para2: jint; para3: jint): JNCharBuffer; overload; virtual;
    function put(var para1: array of jchar; para2: jint; para3: jint): JNCharBuffer; overload; virtual;
    function compact(): JNCharBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function toString(para1: jint; para2: jint): JLString; overload; virtual;
    function subSequence(para1: jint; para2: jint): JLCharSequence; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNDoubleBuffer = class abstract external 'java.nio' name 'DoubleBuffer' (JNBuffer, JLComparable)
  public
    class function allocate(para1: jint): JNDoubleBuffer; static; overload;
    class function wrap(para1: Arr1jdouble; para2: jint; para3: jint): JNDoubleBuffer; static; overload;
    class function wrap(var para1: array of jdouble; para2: jint; para3: jint): JNDoubleBuffer; static; overload;
    class function wrap(para1: Arr1jdouble): JNDoubleBuffer; static; overload;
    class function wrap(var para1: array of jdouble): JNDoubleBuffer; static; overload;
    function slice(): JNDoubleBuffer; overload; virtual; abstract;
    function duplicate(): JNDoubleBuffer; overload; virtual; abstract;
    function asReadOnlyBuffer(): JNDoubleBuffer; overload; virtual; abstract;
    function get(): jdouble; overload; virtual; abstract;
    function put(para1: jdouble): JNDoubleBuffer; overload; virtual; abstract;
    function get(para1: jint): jdouble; overload; virtual; abstract;
    function put(para1: jint; para2: jdouble): JNDoubleBuffer; overload; virtual; abstract;
    function get(para1: Arr1jdouble; para2: jint; para3: jint): JNDoubleBuffer; overload; virtual;
    function get(var para1: array of jdouble; para2: jint; para3: jint): JNDoubleBuffer; overload; virtual;
    function get(para1: Arr1jdouble): JNDoubleBuffer; overload; virtual;
    function get(var para1: array of jdouble): JNDoubleBuffer; overload; virtual;
    function put(para1: JNDoubleBuffer): JNDoubleBuffer; overload; virtual;
    function put(para1: Arr1jdouble; para2: jint; para3: jint): JNDoubleBuffer; overload; virtual;
    function put(var para1: array of jdouble; para2: jint; para3: jint): JNDoubleBuffer; overload; virtual;
    function put(para1: Arr1jdouble): JNDoubleBuffer; overload; virtual; final;
    function put(var para1: array of jdouble): JNDoubleBuffer; overload; virtual; final;
    function hasArray(): jboolean; overload; virtual; final;
    function &array(): Arr1jdouble; overload; virtual; final;
    function arrayOffset(): jint; overload; virtual; final;
    function compact(): JNDoubleBuffer; overload; virtual; abstract;
    function isDirect(): jboolean; overload; virtual; abstract;
    function toString(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function compareTo(para1: JNDoubleBuffer): jint; overload; virtual;
    function order(): JNByteOrder; overload; virtual; abstract;
    function &array(): JLObject; overload; virtual;
    function compareTo(para1: JLObject): jint; overload; virtual;
  end;

  JNFloatBuffer = class abstract external 'java.nio' name 'FloatBuffer' (JNBuffer, JLComparable)
  public
    class function allocate(para1: jint): JNFloatBuffer; static; overload;
    class function wrap(para1: Arr1jfloat; para2: jint; para3: jint): JNFloatBuffer; static; overload;
    class function wrap(var para1: array of jfloat; para2: jint; para3: jint): JNFloatBuffer; static; overload;
    class function wrap(para1: Arr1jfloat): JNFloatBuffer; static; overload;
    class function wrap(var para1: array of jfloat): JNFloatBuffer; static; overload;
    function slice(): JNFloatBuffer; overload; virtual; abstract;
    function duplicate(): JNFloatBuffer; overload; virtual; abstract;
    function asReadOnlyBuffer(): JNFloatBuffer; overload; virtual; abstract;
    function get(): jfloat; overload; virtual; abstract;
    function put(para1: jfloat): JNFloatBuffer; overload; virtual; abstract;
    function get(para1: jint): jfloat; overload; virtual; abstract;
    function put(para1: jint; para2: jfloat): JNFloatBuffer; overload; virtual; abstract;
    function get(para1: Arr1jfloat; para2: jint; para3: jint): JNFloatBuffer; overload; virtual;
    function get(var para1: array of jfloat; para2: jint; para3: jint): JNFloatBuffer; overload; virtual;
    function get(para1: Arr1jfloat): JNFloatBuffer; overload; virtual;
    function get(var para1: array of jfloat): JNFloatBuffer; overload; virtual;
    function put(para1: JNFloatBuffer): JNFloatBuffer; overload; virtual;
    function put(para1: Arr1jfloat; para2: jint; para3: jint): JNFloatBuffer; overload; virtual;
    function put(var para1: array of jfloat; para2: jint; para3: jint): JNFloatBuffer; overload; virtual;
    function put(para1: Arr1jfloat): JNFloatBuffer; overload; virtual; final;
    function put(var para1: array of jfloat): JNFloatBuffer; overload; virtual; final;
    function hasArray(): jboolean; overload; virtual; final;
    function &array(): Arr1jfloat; overload; virtual; final;
    function arrayOffset(): jint; overload; virtual; final;
    function compact(): JNFloatBuffer; overload; virtual; abstract;
    function isDirect(): jboolean; overload; virtual; abstract;
    function toString(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function compareTo(para1: JNFloatBuffer): jint; overload; virtual;
    function order(): JNByteOrder; overload; virtual; abstract;
    function &array(): JLObject; overload; virtual;
    function compareTo(para1: JLObject): jint; overload; virtual;
  end;

  JNIntBuffer = class abstract external 'java.nio' name 'IntBuffer' (JNBuffer, JLComparable)
  public
    class function allocate(para1: jint): JNIntBuffer; static; overload;
    class function wrap(para1: Arr1jint; para2: jint; para3: jint): JNIntBuffer; static; overload;
    class function wrap(var para1: array of jint; para2: jint; para3: jint): JNIntBuffer; static; overload;
    class function wrap(para1: Arr1jint): JNIntBuffer; static; overload;
    class function wrap(var para1: array of jint): JNIntBuffer; static; overload;
    function slice(): JNIntBuffer; overload; virtual; abstract;
    function duplicate(): JNIntBuffer; overload; virtual; abstract;
    function asReadOnlyBuffer(): JNIntBuffer; overload; virtual; abstract;
    function get(): jint; overload; virtual; abstract;
    function put(para1: jint): JNIntBuffer; overload; virtual; abstract;
    function get(para1: jint): jint; overload; virtual; abstract;
    function put(para1: jint; para2: jint): JNIntBuffer; overload; virtual; abstract;
    function get(para1: Arr1jint; para2: jint; para3: jint): JNIntBuffer; overload; virtual;
    function get(var para1: array of jint; para2: jint; para3: jint): JNIntBuffer; overload; virtual;
    function get(para1: Arr1jint): JNIntBuffer; overload; virtual;
    function get(var para1: array of jint): JNIntBuffer; overload; virtual;
    function put(para1: JNIntBuffer): JNIntBuffer; overload; virtual;
    function put(para1: Arr1jint; para2: jint; para3: jint): JNIntBuffer; overload; virtual;
    function put(var para1: array of jint; para2: jint; para3: jint): JNIntBuffer; overload; virtual;
    function put(para1: Arr1jint): JNIntBuffer; overload; virtual; final;
    function put(var para1: array of jint): JNIntBuffer; overload; virtual; final;
    function hasArray(): jboolean; overload; virtual; final;
    function &array(): Arr1jint; overload; virtual; final;
    function arrayOffset(): jint; overload; virtual; final;
    function compact(): JNIntBuffer; overload; virtual; abstract;
    function isDirect(): jboolean; overload; virtual; abstract;
    function toString(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function compareTo(para1: JNIntBuffer): jint; overload; virtual;
    function order(): JNByteOrder; overload; virtual; abstract;
    function &array(): JLObject; overload; virtual;
    function compareTo(para1: JLObject): jint; overload; virtual;
  end;

  JNLongBuffer = class abstract external 'java.nio' name 'LongBuffer' (JNBuffer, JLComparable)
  public
    class function allocate(para1: jint): JNLongBuffer; static; overload;
    class function wrap(para1: Arr1jlong; para2: jint; para3: jint): JNLongBuffer; static; overload;
    class function wrap(var para1: array of jlong; para2: jint; para3: jint): JNLongBuffer; static; overload;
    class function wrap(para1: Arr1jlong): JNLongBuffer; static; overload;
    class function wrap(var para1: array of jlong): JNLongBuffer; static; overload;
    function slice(): JNLongBuffer; overload; virtual; abstract;
    function duplicate(): JNLongBuffer; overload; virtual; abstract;
    function asReadOnlyBuffer(): JNLongBuffer; overload; virtual; abstract;
    function get(): jlong; overload; virtual; abstract;
    function put(para1: jlong): JNLongBuffer; overload; virtual; abstract;
    function get(para1: jint): jlong; overload; virtual; abstract;
    function put(para1: jint; para2: jlong): JNLongBuffer; overload; virtual; abstract;
    function get(para1: Arr1jlong; para2: jint; para3: jint): JNLongBuffer; overload; virtual;
    function get(var para1: array of jlong; para2: jint; para3: jint): JNLongBuffer; overload; virtual;
    function get(para1: Arr1jlong): JNLongBuffer; overload; virtual;
    function get(var para1: array of jlong): JNLongBuffer; overload; virtual;
    function put(para1: JNLongBuffer): JNLongBuffer; overload; virtual;
    function put(para1: Arr1jlong; para2: jint; para3: jint): JNLongBuffer; overload; virtual;
    function put(var para1: array of jlong; para2: jint; para3: jint): JNLongBuffer; overload; virtual;
    function put(para1: Arr1jlong): JNLongBuffer; overload; virtual; final;
    function put(var para1: array of jlong): JNLongBuffer; overload; virtual; final;
    function hasArray(): jboolean; overload; virtual; final;
    function &array(): Arr1jlong; overload; virtual; final;
    function arrayOffset(): jint; overload; virtual; final;
    function compact(): JNLongBuffer; overload; virtual; abstract;
    function isDirect(): jboolean; overload; virtual; abstract;
    function toString(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function compareTo(para1: JNLongBuffer): jint; overload; virtual;
    function order(): JNByteOrder; overload; virtual; abstract;
    function &array(): JLObject; overload; virtual;
    function compareTo(para1: JLObject): jint; overload; virtual;
  end;

  JNShortBuffer = class abstract external 'java.nio' name 'ShortBuffer' (JNBuffer, JLComparable)
  public
    class function allocate(para1: jint): JNShortBuffer; static; overload;
    class function wrap(para1: Arr1jshort; para2: jint; para3: jint): JNShortBuffer; static; overload;
    class function wrap(var para1: array of jshort; para2: jint; para3: jint): JNShortBuffer; static; overload;
    class function wrap(para1: Arr1jshort): JNShortBuffer; static; overload;
    class function wrap(var para1: array of jshort): JNShortBuffer; static; overload;
    function slice(): JNShortBuffer; overload; virtual; abstract;
    function duplicate(): JNShortBuffer; overload; virtual; abstract;
    function asReadOnlyBuffer(): JNShortBuffer; overload; virtual; abstract;
    function get(): jshort; overload; virtual; abstract;
    function put(para1: jshort): JNShortBuffer; overload; virtual; abstract;
    function get(para1: jint): jshort; overload; virtual; abstract;
    function put(para1: jint; para2: jshort): JNShortBuffer; overload; virtual; abstract;
    function get(para1: Arr1jshort; para2: jint; para3: jint): JNShortBuffer; overload; virtual;
    function get(var para1: array of jshort; para2: jint; para3: jint): JNShortBuffer; overload; virtual;
    function get(para1: Arr1jshort): JNShortBuffer; overload; virtual;
    function get(var para1: array of jshort): JNShortBuffer; overload; virtual;
    function put(para1: JNShortBuffer): JNShortBuffer; overload; virtual;
    function put(para1: Arr1jshort; para2: jint; para3: jint): JNShortBuffer; overload; virtual;
    function put(var para1: array of jshort; para2: jint; para3: jint): JNShortBuffer; overload; virtual;
    function put(para1: Arr1jshort): JNShortBuffer; overload; virtual; final;
    function put(var para1: array of jshort): JNShortBuffer; overload; virtual; final;
    function hasArray(): jboolean; overload; virtual; final;
    function &array(): Arr1jshort; overload; virtual; final;
    function arrayOffset(): jint; overload; virtual; final;
    function compact(): JNShortBuffer; overload; virtual; abstract;
    function isDirect(): jboolean; overload; virtual; abstract;
    function toString(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function compareTo(para1: JNShortBuffer): jint; overload; virtual;
    function order(): JNByteOrder; overload; virtual; abstract;
    function &array(): JLObject; overload; virtual;
    function compareTo(para1: JLObject): jint; overload; virtual;
  end;

  JNHeapByteBuffer = class external 'java.nio' name 'HeapByteBuffer' (JNByteBuffer)
  strict protected
    constructor create(para1: Arr1jbyte; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
    constructor create(const para1: array of jbyte; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
  public
    function slice(): JNByteBuffer; overload; virtual;
    function duplicate(): JNByteBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNByteBuffer; overload; virtual;
  strict protected
    function ix(para1: jint): jint; overload; virtual;
  public
    function get(): jbyte; overload; virtual;
    function get(para1: jint): jbyte; overload; virtual;
    function get(para1: Arr1jbyte; para2: jint; para3: jint): JNByteBuffer; overload; virtual;
    function get(var para1: array of jbyte; para2: jint; para3: jint): JNByteBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function put(para1: jbyte): JNByteBuffer; overload; virtual;
    function put(para1: jint; para2: jbyte): JNByteBuffer; overload; virtual;
    function put(para1: Arr1jbyte; para2: jint; para3: jint): JNByteBuffer; overload; virtual;
    function put(var para1: array of jbyte; para2: jint; para3: jint): JNByteBuffer; overload; virtual;
    function put(para1: JNByteBuffer): JNByteBuffer; overload; virtual;
    function compact(): JNByteBuffer; overload; virtual;
    function getChar(): jchar; overload; virtual;
    function getChar(para1: jint): jchar; overload; virtual;
    function putChar(para1: jchar): JNByteBuffer; overload; virtual;
    function putChar(para1: jint; para2: jchar): JNByteBuffer; overload; virtual;
    function asCharBuffer(): JNCharBuffer; overload; virtual;
    function getShort(): jshort; overload; virtual;
    function getShort(para1: jint): jshort; overload; virtual;
    function putShort(para1: jshort): JNByteBuffer; overload; virtual;
    function putShort(para1: jint; para2: jshort): JNByteBuffer; overload; virtual;
    function asShortBuffer(): JNShortBuffer; overload; virtual;
    function getInt(): jint; overload; virtual;
    function getInt(para1: jint): jint; overload; virtual;
    function putInt(para1: jint): JNByteBuffer; overload; virtual;
    function putInt(para1: jint; para2: jint): JNByteBuffer; overload; virtual;
    function asIntBuffer(): JNIntBuffer; overload; virtual;
    function getLong(): jlong; overload; virtual;
    function getLong(para1: jint): jlong; overload; virtual;
    function putLong(para1: jlong): JNByteBuffer; overload; virtual;
    function putLong(para1: jint; para2: jlong): JNByteBuffer; overload; virtual;
    function asLongBuffer(): JNLongBuffer; overload; virtual;
    function getFloat(): jfloat; overload; virtual;
    function getFloat(para1: jint): jfloat; overload; virtual;
    function putFloat(para1: jfloat): JNByteBuffer; overload; virtual;
    function putFloat(para1: jint; para2: jfloat): JNByteBuffer; overload; virtual;
    function asFloatBuffer(): JNFloatBuffer; overload; virtual;
    function getDouble(): jdouble; overload; virtual;
    function getDouble(para1: jint): jdouble; overload; virtual;
    function putDouble(para1: jdouble): JNByteBuffer; overload; virtual;
    function putDouble(para1: jint; para2: jdouble): JNByteBuffer; overload; virtual;
    function asDoubleBuffer(): JNDoubleBuffer; overload; virtual;
  end;

  JNMappedByteBuffer = class abstract external 'java.nio' name 'MappedByteBuffer' (JNByteBuffer)
  public
    function isLoaded(): jboolean; overload; virtual; final;
    function load(): JNMappedByteBuffer; overload; virtual; final;
    function force(): JNMappedByteBuffer; overload; virtual; final;
  end;

  JSCCertPathHelperImpl = class external 'java.security.cert' name 'CertPathHelperImpl' (SSPCCertPathHelper)
  strict protected
    procedure implSetSubject(para1: JSCX509CertSelector; para2: JSAXX500Principal); overload; virtual;
    function implGetSubject(para1: JSCX509CertSelector): JSAXX500Principal; overload; virtual;
    procedure implSetIssuer(para1: JSCX509CertSelector; para2: JSAXX500Principal); overload; virtual;
    function implGetIssuer(para1: JSCX509CertSelector): JSAXX500Principal; overload; virtual;
    function implGetCA(para1: JSCTrustAnchor): JSAXX500Principal; overload; virtual;
    procedure implSetPathToNames(para1: JSCX509CertSelector; para2: JUSet); overload; virtual;
    procedure implAddIssuer(para1: JSCX509CRLSelector; para2: JSAXX500Principal); overload; virtual;
    function implGetIssuers(para1: JSCX509CRLSelector): JUCollection; overload; virtual;
    procedure implSetDateAndTime(para1: JSCX509CRLSelector; para2: JUDate; para3: jlong); overload; virtual;
  end;

  JSSQLException = class external 'java.sql' name 'SQLException' (JLException, JLIterable)
  public
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString); overload;
    constructor create(); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLThrowable); overload;
    function getSQLState(): JLString; overload; virtual;
    function getErrorCode(): jint; overload; virtual;
    function getNextException(): JSSQLException; overload; virtual;
    procedure setNextException(para1: JSSQLException); overload; virtual;
    function iterator(): JUIterator; overload; virtual;
  end;

  JUServiceLoader = class sealed external 'java.util' name 'ServiceLoader' (JLObject, JLIterable)
  public
    type
      InnerLazyIterator = class;
      Arr1InnerLazyIterator = array of InnerLazyIterator;
      Arr2InnerLazyIterator = array of Arr1InnerLazyIterator;
      Arr3InnerLazyIterator = array of Arr2InnerLazyIterator;
      InnerLazyIterator = class external 'java.util' name 'LazyIterator' 
      end;

  public
    procedure reload(); overload; virtual;
    function iterator(): JUIterator; overload; virtual;
    class function load(para1: JLClass; para2: JLClassLoader): JUServiceLoader; static; overload;
    class function load(para1: JLClass): JUServiceLoader; static; overload;
    class function loadInstalled(para1: JLClass): JUServiceLoader; static; overload;
    function toString(): JLString; overload; virtual;
  end;

  JTRuleBasedCollator = class external 'java.text' name 'RuleBasedCollator' (JTCollator)
  public
    constructor create(para1: JLString); overload;  // throws java.text.ParseException
    function getRules(): JLString; overload; virtual;
    function getCollationElementIterator(para1: JLString): JTCollationElementIterator; overload; virtual;
    function getCollationElementIterator(para1: JTCharacterIterator): JTCollationElementIterator; overload; virtual;
    function compare(para1: JLString; para2: JLString): jint; overload; virtual;
    function getCollationKey(para1: JLString): JTCollationKey; overload; virtual;
    function clone(): JLObject; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JUEnumMap = class external 'java.util' name 'EnumMap' (JUAbstractMap, JISerializable, JLCloneable)
  public
    type
      InnerKeyIterator = class;
      Arr1InnerKeyIterator = array of InnerKeyIterator;
      Arr2InnerKeyIterator = array of Arr1InnerKeyIterator;
      Arr3InnerKeyIterator = array of Arr2InnerKeyIterator;
      InnerValueIterator = class;
      Arr1InnerValueIterator = array of InnerValueIterator;
      Arr2InnerValueIterator = array of Arr1InnerValueIterator;
      Arr3InnerValueIterator = array of Arr2InnerValueIterator;
      InnerEntryIterator = class;
      Arr1InnerEntryIterator = array of InnerEntryIterator;
      Arr2InnerEntryIterator = array of Arr1InnerEntryIterator;
      Arr3InnerEntryIterator = array of Arr2InnerEntryIterator;
      InnerEntrySet = class;
      Arr1InnerEntrySet = array of InnerEntrySet;
      Arr2InnerEntrySet = array of Arr1InnerEntrySet;
      Arr3InnerEntrySet = array of Arr2InnerEntrySet;
      InnerKeySet = class;
      Arr1InnerKeySet = array of InnerKeySet;
      Arr2InnerKeySet = array of Arr1InnerKeySet;
      Arr3InnerKeySet = array of Arr2InnerKeySet;
      InnerEnumMapIterator = class;
      Arr1InnerEnumMapIterator = array of InnerEnumMapIterator;
      Arr2InnerEnumMapIterator = array of Arr1InnerEnumMapIterator;
      Arr3InnerEnumMapIterator = array of Arr2InnerEnumMapIterator;
      InnerValues = class;
      Arr1InnerValues = array of InnerValues;
      Arr2InnerValues = array of Arr1InnerValues;
      Arr3InnerValues = array of Arr2InnerValues;
      InnerKeyIterator = class external 'java.util' name 'KeyIterator' 
      end;

      InnerValueIterator = class external 'java.util' name 'ValueIterator' 
      end;

      InnerEntryIterator = class external 'java.util' name 'EntryIterator' 
      end;

      InnerEntrySet = class external 'java.util' name 'EntrySet' 
      end;

      InnerKeySet = class external 'java.util' name 'KeySet' 
      end;

      InnerEnumMapIterator = class abstract external 'java.util' name 'EnumMapIterator' 
      end;

      InnerValues = class external 'java.util' name 'Values' 
      end;

  public
    constructor create(para1: JLClass); overload;
    constructor create(para1: JUEnumMap); overload;
    constructor create(para1: JUMap); overload;
    function size(): jint; overload; virtual;
    function containsValue(para1: JLObject): jboolean; overload; virtual;
    function containsKey(para1: JLObject): jboolean; overload; virtual;
    function get(para1: JLObject): JLObject; overload; virtual;
    function put(para1: JLEnum; para2: JLObject): JLObject; overload; virtual;
    function remove(para1: JLObject): JLObject; overload; virtual;
    procedure putAll(para1: JUMap); overload; virtual;
    procedure clear(); overload; virtual;
    function keySet(): JUSet; overload; virtual;
    function values(): JUCollection; overload; virtual;
    function entrySet(): JUSet; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function clone(): JUEnumMap; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
    function put(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
  end;

  JUIdentityHashMap = class external 'java.util' name 'IdentityHashMap' (JUAbstractMap, JUMap, JISerializable, JLCloneable)
  public
    type
      InnerEntryIterator = class;
      Arr1InnerEntryIterator = array of InnerEntryIterator;
      Arr2InnerEntryIterator = array of Arr1InnerEntryIterator;
      Arr3InnerEntryIterator = array of Arr2InnerEntryIterator;
      InnerKeyIterator = class;
      Arr1InnerKeyIterator = array of InnerKeyIterator;
      Arr2InnerKeyIterator = array of Arr1InnerKeyIterator;
      Arr3InnerKeyIterator = array of Arr2InnerKeyIterator;
      InnerValueIterator = class;
      Arr1InnerValueIterator = array of InnerValueIterator;
      Arr2InnerValueIterator = array of Arr1InnerValueIterator;
      Arr3InnerValueIterator = array of Arr2InnerValueIterator;
      InnerEntrySet = class;
      Arr1InnerEntrySet = array of InnerEntrySet;
      Arr2InnerEntrySet = array of Arr1InnerEntrySet;
      Arr3InnerEntrySet = array of Arr2InnerEntrySet;
      InnerKeySet = class;
      Arr1InnerKeySet = array of InnerKeySet;
      Arr2InnerKeySet = array of Arr1InnerKeySet;
      Arr3InnerKeySet = array of Arr2InnerKeySet;
      InnerIdentityHashMapIterator = class;
      Arr1InnerIdentityHashMapIterator = array of InnerIdentityHashMapIterator;
      Arr2InnerIdentityHashMapIterator = array of Arr1InnerIdentityHashMapIterator;
      Arr3InnerIdentityHashMapIterator = array of Arr2InnerIdentityHashMapIterator;
      InnerValues = class;
      Arr1InnerValues = array of InnerValues;
      Arr2InnerValues = array of Arr1InnerValues;
      Arr3InnerValues = array of Arr2InnerValues;
      InnerEntryIterator = class external 'java.util' name 'EntryIterator' 
      end;

      InnerKeyIterator = class external 'java.util' name 'KeyIterator' 
      end;

      InnerValueIterator = class external 'java.util' name 'ValueIterator' 
      end;

      InnerEntrySet = class external 'java.util' name 'EntrySet' 
      end;

      InnerKeySet = class external 'java.util' name 'KeySet' 
      end;

      InnerIdentityHashMapIterator = class abstract external 'java.util' name 'IdentityHashMapIterator' 
      end;

      InnerValues = class external 'java.util' name 'Values' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: JUMap); overload;
    function size(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function get(para1: JLObject): JLObject; overload; virtual;
    function containsKey(para1: JLObject): jboolean; overload; virtual;
    function containsValue(para1: JLObject): jboolean; overload; virtual;
    function put(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
    procedure putAll(para1: JUMap); overload; virtual;
    function remove(para1: JLObject): JLObject; overload; virtual;
    procedure clear(); overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function clone(): JLObject; overload; virtual;
    function keySet(): JUSet; overload; virtual;
    function values(): JUCollection; overload; virtual;
    function entrySet(): JUSet; overload; virtual;
  end;

  JUGregorianCalendar = class external 'java.util' name 'GregorianCalendar' (JUCalendar)
  public
    const
      BC = 0;
      AD = 1;
  public
    constructor create(); overload;
    constructor create(para1: JUTimeZone); overload;
    constructor create(para1: JULocale); overload;
    constructor create(para1: JUTimeZone; para2: JULocale); overload;
    constructor create(para1: jint; para2: jint; para3: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
    procedure setGregorianChange(para1: JUDate); overload; virtual;
    function getGregorianChange(): JUDate; overload; virtual; final;
    function isLeapYear(para1: jint): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    procedure add(para1: jint; para2: jint); overload; virtual;
    procedure roll(para1: jint; para2: jboolean); overload; virtual;
    procedure roll(para1: jint; para2: jint); overload; virtual;
    function getMinimum(para1: jint): jint; overload; virtual;
    function getMaximum(para1: jint): jint; overload; virtual;
    function getGreatestMinimum(para1: jint): jint; overload; virtual;
    function getLeastMaximum(para1: jint): jint; overload; virtual;
    function getActualMinimum(para1: jint): jint; overload; virtual;
    function getActualMaximum(para1: jint): jint; overload; virtual;
    function clone(): JLObject; overload; virtual;
    function getTimeZone(): JUTimeZone; overload; virtual;
    procedure setTimeZone(para1: JUTimeZone); overload; virtual;
  strict protected
    procedure computeFields(); overload; virtual;
    procedure computeTime(); overload; virtual;
  end;

  JUJapaneseImperialCalendar = class external 'java.util' name 'JapaneseImperialCalendar' (JUCalendar)
  public
    const
      BEFORE_MEIJI = 0;
      MEIJI = 1;
      TAISHO = 2;
      SHOWA = 3;
      HEISEI = 4;
  public
    constructor create(para1: JUTimeZone; para2: JULocale); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    procedure add(para1: jint; para2: jint); overload; virtual;
    procedure roll(para1: jint; para2: jboolean); overload; virtual;
    procedure roll(para1: jint; para2: jint); overload; virtual;
    function getDisplayName(para1: jint; para2: jint; para3: JULocale): JLString; overload; virtual;
    function getDisplayNames(para1: jint; para2: jint; para3: JULocale): JUMap; overload; virtual;
    function getMinimum(para1: jint): jint; overload; virtual;
    function getMaximum(para1: jint): jint; overload; virtual;
    function getGreatestMinimum(para1: jint): jint; overload; virtual;
    function getLeastMaximum(para1: jint): jint; overload; virtual;
    function getActualMinimum(para1: jint): jint; overload; virtual;
    function getActualMaximum(para1: jint): jint; overload; virtual;
    function clone(): JLObject; overload; virtual;
    function getTimeZone(): JUTimeZone; overload; virtual;
    procedure setTimeZone(para1: JUTimeZone); overload; virtual;
  strict protected
    procedure computeFields(); overload; virtual;
    procedure computeTime(); overload; virtual;
  end;

  JUCCopyOnWriteArraySet = class external 'java.util.concurrent' name 'CopyOnWriteArraySet' (JUAbstractSet, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: JUCollection); overload;
    function size(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function toArray(): Arr1JLObject; overload; virtual;
    function toArray(para1: Arr1JLObject): Arr1JLObject; overload; virtual;
    function toArray(var para1: array of JLObject): Arr1JLObject; overload; virtual;
    procedure clear(); overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    function add(para1: JLObject): jboolean; overload; virtual;
    function containsAll(para1: JUCollection): jboolean; overload; virtual;
    function addAll(para1: JUCollection): jboolean; overload; virtual;
    function removeAll(para1: JUCollection): jboolean; overload; virtual;
    function retainAll(para1: JUCollection): jboolean; overload; virtual;
    function iterator(): JUIterator; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JISPartiallyOrderedSet = class external 'javax.imageio.spi' name 'PartiallyOrderedSet' (JUAbstractSet)
  public
    constructor create(); overload;
    function size(): jint; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function iterator(): JUIterator; overload; virtual;
    function add(para1: JLObject): jboolean; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    procedure clear(); overload; virtual;
    function setOrdering(para1: JLObject; para2: JLObject): jboolean; overload; virtual;
    function unsetOrdering(para1: JLObject; para2: JLObject): jboolean; overload; virtual;
    function hasOrdering(para1: JLObject; para2: JLObject): jboolean; overload; virtual;
  end;

  JUHashSet = class external 'java.util' name 'HashSet' (JUAbstractSet, JUSet, JLCloneable, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: JUCollection); overload;
    constructor create(para1: jint; para2: jfloat); overload;
    constructor create(para1: jint); overload;
    function iterator(): JUIterator; overload; virtual;
    function size(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function add(para1: JLObject): jboolean; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    procedure clear(); overload; virtual;
    function clone(): JLObject; overload; virtual;
  end;

  JUSortedSet = interface external 'java.util' name 'SortedSet' (JUSet)
    function comparator(): JUComparator; overload;
    function subSet(para1: JLObject; para2: JLObject): JUSortedSet; overload;
    function headSet(para1: JLObject): JUSortedSet; overload;
    function tailSet(para1: JLObject): JUSortedSet; overload;
    function first(): JLObject; overload;
    function last(): JLObject; overload;
  end;

  JUJumboEnumSet = class external 'java.util' name 'JumboEnumSet' (JUEnumSet)
  public
    type
      InnerEnumSetIterator = class;
      Arr1InnerEnumSetIterator = array of InnerEnumSetIterator;
      Arr2InnerEnumSetIterator = array of Arr1InnerEnumSetIterator;
      Arr3InnerEnumSetIterator = array of Arr2InnerEnumSetIterator;
      InnerEnumSetIterator = class external 'java.util' name 'EnumSetIterator' 
      end;

  public
    function iterator(): JUIterator; overload; virtual;
    function size(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function add(para1: JLEnum): jboolean; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    function containsAll(para1: JUCollection): jboolean; overload; virtual;
    function addAll(para1: JUCollection): jboolean; overload; virtual;
    function removeAll(para1: JUCollection): jboolean; overload; virtual;
    function retainAll(para1: JUCollection): jboolean; overload; virtual;
    procedure clear(); overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function clone(): JUEnumSet; overload; virtual;
    function add(para1: JLObject): jboolean; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  JURegularEnumSet = class external 'java.util' name 'RegularEnumSet' (JUEnumSet)
  public
    type
      InnerEnumSetIterator = class;
      Arr1InnerEnumSetIterator = array of InnerEnumSetIterator;
      Arr2InnerEnumSetIterator = array of Arr1InnerEnumSetIterator;
      Arr3InnerEnumSetIterator = array of Arr2InnerEnumSetIterator;
      InnerEnumSetIterator = class external 'java.util' name 'EnumSetIterator' 
      end;

  public
    function iterator(): JUIterator; overload; virtual;
    function size(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function add(para1: JLEnum): jboolean; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    function containsAll(para1: JUCollection): jboolean; overload; virtual;
    function addAll(para1: JUCollection): jboolean; overload; virtual;
    function removeAll(para1: JUCollection): jboolean; overload; virtual;
    function retainAll(para1: JUCollection): jboolean; overload; virtual;
    procedure clear(); overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function add(para1: JLObject): jboolean; overload; virtual;
  end;

  JULinkedHashMap = class external 'java.util' name 'LinkedHashMap' (JUHashMap, JUMap)
  public
    type
      InnerEntry = class;
      Arr1InnerEntry = array of InnerEntry;
      Arr2InnerEntry = array of Arr1InnerEntry;
      Arr3InnerEntry = array of Arr2InnerEntry;
      InnerKeyIterator = class;
      Arr1InnerKeyIterator = array of InnerKeyIterator;
      Arr2InnerKeyIterator = array of Arr1InnerKeyIterator;
      Arr3InnerKeyIterator = array of Arr2InnerKeyIterator;
      InnerValueIterator = class;
      Arr1InnerValueIterator = array of InnerValueIterator;
      Arr2InnerValueIterator = array of Arr1InnerValueIterator;
      Arr3InnerValueIterator = array of Arr2InnerValueIterator;
      InnerEntryIterator = class;
      Arr1InnerEntryIterator = array of InnerEntryIterator;
      Arr2InnerEntryIterator = array of Arr1InnerEntryIterator;
      Arr3InnerEntryIterator = array of Arr2InnerEntryIterator;
      InnerLinkedHashIterator = class;
      Arr1InnerLinkedHashIterator = array of InnerLinkedHashIterator;
      Arr2InnerLinkedHashIterator = array of Arr1InnerLinkedHashIterator;
      Arr3InnerLinkedHashIterator = array of Arr2InnerLinkedHashIterator;
      InnerEntry = class external 'java.util' name 'Entry' 
      end;

      InnerKeyIterator = class external 'java.util' name 'KeyIterator' 
      end;

      InnerValueIterator = class external 'java.util' name 'ValueIterator' 
      end;

      InnerEntryIterator = class external 'java.util' name 'EntryIterator' 
      end;

      InnerLinkedHashIterator = class abstract external 'java.util' name 'LinkedHashIterator' 
      end;

  public
    constructor create(para1: jint; para2: jfloat); overload;
    constructor create(para1: jint); overload;
    constructor create(); overload;
    constructor create(para1: JUMap); overload;
    constructor create(para1: jint; para2: jfloat; para3: jboolean); overload;
    function containsValue(para1: JLObject): jboolean; overload; virtual;
    function get(para1: JLObject): JLObject; overload; virtual;
    procedure clear(); overload; virtual;
  strict protected
    function removeEldestEntry(para1: JUMap.InnerEntry): jboolean; overload; virtual;
  end;

  JUJJavaUtilJarAccessImpl = class external 'java.util.jar' name 'JavaUtilJarAccessImpl' (JLObject, SMJavaUtilJarAccess)
  public
    function jarFileHasClassPathAttribute(para1: JUJJarFile): jboolean; overload; virtual;  // throws java.io.IOException
    function getCodeSources(para1: JUJJarFile; para2: JNURL): Arr1JSCodeSource; overload; virtual;
    function getCodeSource(para1: JUJJarFile; para2: JNURL; para3: JLString): JSCodeSource; overload; virtual;
    function entryNames(para1: JUJJarFile; para2: Arr1JSCodeSource): JUEnumeration; overload; virtual;
    function entryNames(para1: JUJJarFile; var para2: array of JSCodeSource): JUEnumeration; overload; virtual;
    function entries2(para1: JUJJarFile): JUEnumeration; overload; virtual;
    procedure setEagerValidation(para1: JUJJarFile; para2: jboolean); overload; virtual;
    function getManifestDigests(para1: JUJJarFile): JUList; overload; virtual;
  end;

  JLMEName = interface external 'javax.lang.model.element' name 'Name' (JLCharSequence)
    function equals(para1: JLObject): jboolean; overload;
    function hashCode(): jint; overload;
    function contentEquals(para1: JLCharSequence): jboolean; overload;
  end;

  JSCompareTabOrderComparator = class sealed external 'javax.swing' name 'CompareTabOrderComparator' (JLObject, JUComparator)
  public
    function compare(para1: JLObject; para2: JLObject): jint; overload; virtual;
  end;

  JSLayoutComparator = class sealed external 'javax.swing' name 'LayoutComparator' (JLObject, JUComparator, JISerializable)
  public
    function compare(para1: JLObject; para2: JLObject): jint; overload; virtual;
  end;

  JSSwingPaintEventDispatcher = class external 'javax.swing' name 'SwingPaintEventDispatcher' (SAPaintEventDispatcher)
  public
    function createPaintEvent(para1: JAComponent; para2: jint; para3: jint; para4: jint; para5: jint): JAEPaintEvent; overload; virtual;
    function shouldDoNativeBackgroundErase(para1: JAComponent): jboolean; overload; virtual;
    function queueSurfaceDataReplacing(para1: JAComponent; para2: JLRunnable): jboolean; overload; virtual;
  end;

  JSPMMetalFontDesktopProperty = class external 'javax.swing.plaf.metal' name 'MetalFontDesktopProperty' (CSJSPWDesktopProperty)
  strict protected
    function configureValue(para1: JLObject): JLObject; overload; virtual;
    function getDefaultValue(): JLObject; overload; virtual;
  end;

  JSPSParsedSynthStyle = class external 'javax.swing.plaf.synth' name 'ParsedSynthStyle' (SSPSDefaultSynthStyle)
  public
    type
      InnerAggregatePainter = class;
      Arr1InnerAggregatePainter = array of InnerAggregatePainter;
      Arr2InnerAggregatePainter = array of Arr1InnerAggregatePainter;
      Arr3InnerAggregatePainter = array of Arr2InnerAggregatePainter;
      InnerDelegatingPainter = class;
      Arr1InnerDelegatingPainter = array of InnerDelegatingPainter;
      Arr2InnerDelegatingPainter = array of Arr1InnerDelegatingPainter;
      Arr3InnerDelegatingPainter = array of Arr2InnerDelegatingPainter;
      InnerPainterInfo = class;
      Arr1InnerPainterInfo = array of InnerPainterInfo;
      Arr2InnerPainterInfo = array of Arr1InnerPainterInfo;
      Arr3InnerPainterInfo = array of Arr2InnerPainterInfo;
      InnerStateInfo = class;
      Arr1InnerStateInfo = array of InnerStateInfo;
      Arr2InnerStateInfo = array of Arr1InnerStateInfo;
      Arr3InnerStateInfo = array of Arr2InnerStateInfo;
      InnerAggregatePainter = class external 'javax.swing.plaf.synth' name 'AggregatePainter' 
      end;

      InnerDelegatingPainter = class external 'javax.swing.plaf.synth' name 'DelegatingPainter' 
      end;

      InnerPainterInfo = class external 'javax.swing.plaf.synth' name 'PainterInfo' 
      end;

      InnerStateInfo = class external 'javax.swing.plaf.synth' name 'StateInfo' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: SSPSDefaultSynthStyle); overload;
    function getPainter(para1: JSPSSynthContext): JSPSSynthPainter; overload; virtual;
    procedure setPainters(para1: JSPSParsedSynthStyle.Arr1InnerPainterInfo); overload; virtual;
    procedure setPainters(var para1: array of JSPSParsedSynthStyle.InnerPainterInfo); overload; virtual;
    function addTo(para1: SSPSDefaultSynthStyle): SSPSDefaultSynthStyle; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSPSSynthDefaultLookup = class external 'javax.swing.plaf.synth' name 'SynthDefaultLookup' (SSDefaultLookup)
  public
    function getDefault(para1: JSJComponent; para2: JSPComponentUI; para3: JLString): JLObject; overload; virtual;
  end;

  JSPSSynthMenuItemLayoutHelper = class external 'javax.swing.plaf.synth' name 'SynthMenuItemLayoutHelper' (SSMenuItemLayoutHelper)
  public
    final class var
      fMAX_ACC_OR_ARROW_WIDTH: SSStringUIClientPropertyKey; external name 'MAX_ACC_OR_ARROW_WIDTH';
      fLTR_ALIGNMENT_1: SSMenuItemLayoutHelper.InnerColumnAlignment; external name 'LTR_ALIGNMENT_1';
      fLTR_ALIGNMENT_2: SSMenuItemLayoutHelper.InnerColumnAlignment; external name 'LTR_ALIGNMENT_2';
      fRTL_ALIGNMENT_1: SSMenuItemLayoutHelper.InnerColumnAlignment; external name 'RTL_ALIGNMENT_1';
      fRTL_ALIGNMENT_2: SSMenuItemLayoutHelper.InnerColumnAlignment; external name 'RTL_ALIGNMENT_2';
  public
    constructor create(para1: JSPSSynthContext; para2: JSPSSynthContext; para3: JSJMenuItem; para4: JSIcon; para5: JSIcon; para6: JARectangle; para7: jint; para8: JLString; para9: jboolean; para10: jboolean; para11: JLString); overload;
  strict protected
    procedure calcWidthsAndHeights(); overload; virtual;
    procedure calcMaxWidths(); overload; virtual;
  public
    function getContext(): JSPSSynthContext; overload; virtual;
    function getAccContext(): JSPSSynthContext; overload; virtual;
    function getStyle(): JSPSSynthStyle; overload; virtual;
    function getAccStyle(): JSPSSynthStyle; overload; virtual;
    function getGraphicsUtils(): JSPSSynthGraphicsUtils; overload; virtual;
    function getAccGraphicsUtils(): JSPSSynthGraphicsUtils; overload; virtual;
    function alignAcceleratorText(): jboolean; overload; virtual;
    function getMaxAccOrArrowWidth(): jint; overload; virtual;
  strict protected
    procedure prepareForLayout(para1: SSMenuItemLayoutHelper.InnerLayoutResult); overload; virtual;
  public
    function getLTRColumnAlignment(): SSMenuItemLayoutHelper.InnerColumnAlignment; overload; virtual;
    function getRTLColumnAlignment(): SSMenuItemLayoutHelper.InnerColumnAlignment; overload; virtual;
  strict protected
    procedure layoutIconAndTextInLabelRect(para1: SSMenuItemLayoutHelper.InnerLayoutResult); overload; virtual;
  end;

  JBBeansAppletContext = class external 'java.beans' name 'BeansAppletContext' (JLObject, JAAppletContext)
  public
    function getAudioClip(para1: JNURL): JAAudioClip; overload; virtual;
    function getImage(para1: JNURL): JAImage; overload; virtual;
    function getApplet(para1: JLString): JAApplet; overload; virtual;
    function getApplets(): JUEnumeration; overload; virtual;
    procedure showDocument(para1: JNURL); overload; virtual;
    procedure showDocument(para1: JNURL; para2: JLString); overload; virtual;
    procedure showStatus(para1: JLString); overload; virtual;
    procedure setStream(para1: JLString; para2: JIInputStream); overload; virtual;  // throws java.io.IOException
    function getStream(para1: JLString): JIInputStream; overload; virtual;
    function getStreamKeys(): JUIterator; overload; virtual;
  end;

  JBBeansAppletStub = class external 'java.beans' name 'BeansAppletStub' (JLObject, JAAppletStub)
  public
    function isActive(): jboolean; overload; virtual;
    function getDocumentBase(): JNURL; overload; virtual;
    function getCodeBase(): JNURL; overload; virtual;
    function getParameter(para1: JLString): JLString; overload; virtual;
    function getAppletContext(): JAAppletContext; overload; virtual;
    procedure appletResize(para1: jint; para2: jint); overload; virtual;
  end;

  JAScrollPaneAdjustable = class external 'java.awt' name 'ScrollPaneAdjustable' (JLObject, JAAdjustable, JISerializable)
  public
    function getOrientation(): jint; overload; virtual;
    procedure setMinimum(para1: jint); overload; virtual;
    function getMinimum(): jint; overload; virtual;
    procedure setMaximum(para1: jint); overload; virtual;
    function getMaximum(): jint; overload; virtual;
    procedure setUnitIncrement(para1: jint); overload; virtual;
    function getUnitIncrement(): jint; overload; virtual;
    procedure setBlockIncrement(para1: jint); overload; virtual;
    function getBlockIncrement(): jint; overload; virtual;
    procedure setVisibleAmount(para1: jint); overload; virtual;
    function getVisibleAmount(): jint; overload; virtual;
    procedure setValueIsAdjusting(para1: jboolean); overload; virtual;
    function getValueIsAdjusting(): jboolean; overload; virtual;
    procedure setValue(para1: jint); overload; virtual;
    function getValue(): jint; overload; virtual;
    procedure addAdjustmentListener(para1: JAEAdjustmentListener); overload; virtual;
    procedure removeAdjustmentListener(para1: JAEAdjustmentListener); overload; virtual;
    function getAdjustmentListeners(): Arr1JAEAdjustmentListener; overload; virtual;
    function toString(): JLString; overload; virtual;
    function paramString(): JLString; overload; virtual;
  end;

  JABufferCapabilities = class external 'java.awt' name 'BufferCapabilities' (JLObject, JLCloneable)
  public
    type
      InnerFlipContents = class;
      Arr1InnerFlipContents = array of InnerFlipContents;
      Arr2InnerFlipContents = array of Arr1InnerFlipContents;
      Arr3InnerFlipContents = array of Arr2InnerFlipContents;
      InnerFlipContents = class sealed external 'java.awt' name 'FlipContents' (JAAttributeValue)
      public
        final class var
          fUNDEFINED: JABufferCapabilities.InnerFlipContents; external name 'UNDEFINED';
          fBACKGROUND: JABufferCapabilities.InnerFlipContents; external name 'BACKGROUND';
          fPRIOR: JABufferCapabilities.InnerFlipContents; external name 'PRIOR';
          fCOPIED: JABufferCapabilities.InnerFlipContents; external name 'COPIED';
      public
        function toString(): JLString; overload; virtual;
        function hashCode(): jint; overload; virtual;
      end;

  public
    constructor create(para1: JAImageCapabilities; para2: JAImageCapabilities; para3: JABufferCapabilities.InnerFlipContents); overload;
    function getFrontBufferCapabilities(): JAImageCapabilities; overload; virtual;
    function getBackBufferCapabilities(): JAImageCapabilities; overload; virtual;
    function isPageFlipping(): jboolean; overload; virtual;
    function getFlipContents(): JABufferCapabilities.InnerFlipContents; overload; virtual;
    function isFullScreenRequired(): jboolean; overload; virtual;
    function isMultiBufferAvailable(): jboolean; overload; virtual;
    function clone(): JLObject; overload; virtual;
  end;

  JAJobAttributes = class sealed external 'java.awt' name 'JobAttributes' (JLObject, JLCloneable)
  public
    type
      InnerDefaultSelectionType = class;
      Arr1InnerDefaultSelectionType = array of InnerDefaultSelectionType;
      Arr2InnerDefaultSelectionType = array of Arr1InnerDefaultSelectionType;
      Arr3InnerDefaultSelectionType = array of Arr2InnerDefaultSelectionType;
      InnerDestinationType = class;
      Arr1InnerDestinationType = array of InnerDestinationType;
      Arr2InnerDestinationType = array of Arr1InnerDestinationType;
      Arr3InnerDestinationType = array of Arr2InnerDestinationType;
      InnerDialogType = class;
      Arr1InnerDialogType = array of InnerDialogType;
      Arr2InnerDialogType = array of Arr1InnerDialogType;
      Arr3InnerDialogType = array of Arr2InnerDialogType;
      InnerMultipleDocumentHandlingType = class;
      Arr1InnerMultipleDocumentHandlingType = array of InnerMultipleDocumentHandlingType;
      Arr2InnerMultipleDocumentHandlingType = array of Arr1InnerMultipleDocumentHandlingType;
      Arr3InnerMultipleDocumentHandlingType = array of Arr2InnerMultipleDocumentHandlingType;
      InnerSidesType = class;
      Arr1InnerSidesType = array of InnerSidesType;
      Arr2InnerSidesType = array of Arr1InnerSidesType;
      Arr3InnerSidesType = array of Arr2InnerSidesType;
      InnerDefaultSelectionType = class sealed external 'java.awt' name 'DefaultSelectionType' (JAAttributeValue)
      public
        final class var
          fALL: JAJobAttributes.InnerDefaultSelectionType; external name 'ALL';
          fRANGE: JAJobAttributes.InnerDefaultSelectionType; external name 'RANGE';
          fSELECTION: JAJobAttributes.InnerDefaultSelectionType; external name 'SELECTION';
      public
        function toString(): JLString; overload; virtual;
        function hashCode(): jint; overload; virtual;
      end;

      InnerDestinationType = class sealed external 'java.awt' name 'DestinationType' (JAAttributeValue)
      public
        final class var
          fFILE: JAJobAttributes.InnerDestinationType; external name 'FILE';
          fPRINTER: JAJobAttributes.InnerDestinationType; external name 'PRINTER';
      public
        function toString(): JLString; overload; virtual;
        function hashCode(): jint; overload; virtual;
      end;

      InnerDialogType = class sealed external 'java.awt' name 'DialogType' (JAAttributeValue)
      public
        final class var
          fCOMMON: JAJobAttributes.InnerDialogType; external name 'COMMON';
          fNATIVE: JAJobAttributes.InnerDialogType; external name 'NATIVE';
          fNONE: JAJobAttributes.InnerDialogType; external name 'NONE';
      public
        function toString(): JLString; overload; virtual;
        function hashCode(): jint; overload; virtual;
      end;

      InnerMultipleDocumentHandlingType = class sealed external 'java.awt' name 'MultipleDocumentHandlingType' (JAAttributeValue)
      public
        final class var
          fSEPARATE_DOCUMENTS_COLLATED_COPIES: JAJobAttributes.InnerMultipleDocumentHandlingType; external name 'SEPARATE_DOCUMENTS_COLLATED_COPIES';
          fSEPARATE_DOCUMENTS_UNCOLLATED_COPIES: JAJobAttributes.InnerMultipleDocumentHandlingType; external name 'SEPARATE_DOCUMENTS_UNCOLLATED_COPIES';
      public
        function toString(): JLString; overload; virtual;
        function hashCode(): jint; overload; virtual;
      end;

      InnerSidesType = class sealed external 'java.awt' name 'SidesType' (JAAttributeValue)
      public
        final class var
          fONE_SIDED: JAJobAttributes.InnerSidesType; external name 'ONE_SIDED';
          fTWO_SIDED_LONG_EDGE: JAJobAttributes.InnerSidesType; external name 'TWO_SIDED_LONG_EDGE';
          fTWO_SIDED_SHORT_EDGE: JAJobAttributes.InnerSidesType; external name 'TWO_SIDED_SHORT_EDGE';
      public
        function toString(): JLString; overload; virtual;
        function hashCode(): jint; overload; virtual;
      end;

  public
    constructor create(); overload;
    constructor create(para1: JAJobAttributes); overload;
    constructor create(para1: jint; para2: JAJobAttributes.InnerDefaultSelectionType; para3: JAJobAttributes.InnerDestinationType; para4: JAJobAttributes.InnerDialogType; para5: JLString; para6: jint; para7: jint; para8: JAJobAttributes.InnerMultipleDocumentHandlingType; para9: Arr2jint; para10: JLString; para11: JAJobAttributes.InnerSidesType); overload;
    function clone(): JLObject; overload; virtual;
    procedure &set(para1: JAJobAttributes); overload; virtual;
    function getCopies(): jint; overload; virtual;
    procedure setCopies(para1: jint); overload; virtual;
    procedure setCopiesToDefault(); overload; virtual;
    function getDefaultSelection(): JAJobAttributes.InnerDefaultSelectionType; overload; virtual;
    procedure setDefaultSelection(para1: JAJobAttributes.InnerDefaultSelectionType); overload; virtual;
    function getDestination(): JAJobAttributes.InnerDestinationType; overload; virtual;
    procedure setDestination(para1: JAJobAttributes.InnerDestinationType); overload; virtual;
    function getDialog(): JAJobAttributes.InnerDialogType; overload; virtual;
    procedure setDialog(para1: JAJobAttributes.InnerDialogType); overload; virtual;
    function getFileName(): JLString; overload; virtual;
    procedure setFileName(para1: JLString); overload; virtual;
    function getFromPage(): jint; overload; virtual;
    procedure setFromPage(para1: jint); overload; virtual;
    function getMaxPage(): jint; overload; virtual;
    procedure setMaxPage(para1: jint); overload; virtual;
    function getMinPage(): jint; overload; virtual;
    procedure setMinPage(para1: jint); overload; virtual;
    function getMultipleDocumentHandling(): JAJobAttributes.InnerMultipleDocumentHandlingType; overload; virtual;
    procedure setMultipleDocumentHandling(para1: JAJobAttributes.InnerMultipleDocumentHandlingType); overload; virtual;
    procedure setMultipleDocumentHandlingToDefault(); overload; virtual;
    function getPageRanges(): Arr2jint; overload; virtual;
    procedure setPageRanges(para1: Arr2jint); overload; virtual;
    function getPrinter(): JLString; overload; virtual;
    procedure setPrinter(para1: JLString); overload; virtual;
    function getSides(): JAJobAttributes.InnerSidesType; overload; virtual;
    procedure setSides(para1: JAJobAttributes.InnerSidesType); overload; virtual;
    procedure setSidesToDefault(); overload; virtual;
    function getToPage(): jint; overload; virtual;
    procedure setToPage(para1: jint); overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JAPageAttributes = class sealed external 'java.awt' name 'PageAttributes' (JLObject, JLCloneable)
  public
    type
      InnerColorType = class;
      Arr1InnerColorType = array of InnerColorType;
      Arr2InnerColorType = array of Arr1InnerColorType;
      Arr3InnerColorType = array of Arr2InnerColorType;
      InnerMediaType = class;
      Arr1InnerMediaType = array of InnerMediaType;
      Arr2InnerMediaType = array of Arr1InnerMediaType;
      Arr3InnerMediaType = array of Arr2InnerMediaType;
      InnerOrientationRequestedType = class;
      Arr1InnerOrientationRequestedType = array of InnerOrientationRequestedType;
      Arr2InnerOrientationRequestedType = array of Arr1InnerOrientationRequestedType;
      Arr3InnerOrientationRequestedType = array of Arr2InnerOrientationRequestedType;
      InnerOriginType = class;
      Arr1InnerOriginType = array of InnerOriginType;
      Arr2InnerOriginType = array of Arr1InnerOriginType;
      Arr3InnerOriginType = array of Arr2InnerOriginType;
      InnerPrintQualityType = class;
      Arr1InnerPrintQualityType = array of InnerPrintQualityType;
      Arr2InnerPrintQualityType = array of Arr1InnerPrintQualityType;
      Arr3InnerPrintQualityType = array of Arr2InnerPrintQualityType;
      InnerColorType = class sealed external 'java.awt' name 'ColorType' (JAAttributeValue)
      public
        final class var
          fCOLOR: JAPageAttributes.InnerColorType; external name 'COLOR';
          fMONOCHROME: JAPageAttributes.InnerColorType; external name 'MONOCHROME';
      public
        function toString(): JLString; overload; virtual;
        function hashCode(): jint; overload; virtual;
      end;

      InnerMediaType = class sealed external 'java.awt' name 'MediaType' (JAAttributeValue)
      public
        final class var
          fISO_4A0: JAPageAttributes.InnerMediaType; external name 'ISO_4A0';
          fISO_2A0: JAPageAttributes.InnerMediaType; external name 'ISO_2A0';
          fISO_A0: JAPageAttributes.InnerMediaType; external name 'ISO_A0';
          fISO_A1: JAPageAttributes.InnerMediaType; external name 'ISO_A1';
          fISO_A2: JAPageAttributes.InnerMediaType; external name 'ISO_A2';
          fISO_A3: JAPageAttributes.InnerMediaType; external name 'ISO_A3';
          fISO_A4: JAPageAttributes.InnerMediaType; external name 'ISO_A4';
          fISO_A5: JAPageAttributes.InnerMediaType; external name 'ISO_A5';
          fISO_A6: JAPageAttributes.InnerMediaType; external name 'ISO_A6';
          fISO_A7: JAPageAttributes.InnerMediaType; external name 'ISO_A7';
          fISO_A8: JAPageAttributes.InnerMediaType; external name 'ISO_A8';
          fISO_A9: JAPageAttributes.InnerMediaType; external name 'ISO_A9';
          fISO_A10: JAPageAttributes.InnerMediaType; external name 'ISO_A10';
          fISO_B0: JAPageAttributes.InnerMediaType; external name 'ISO_B0';
          fISO_B1: JAPageAttributes.InnerMediaType; external name 'ISO_B1';
          fISO_B2: JAPageAttributes.InnerMediaType; external name 'ISO_B2';
          fISO_B3: JAPageAttributes.InnerMediaType; external name 'ISO_B3';
          fISO_B4: JAPageAttributes.InnerMediaType; external name 'ISO_B4';
          fISO_B5: JAPageAttributes.InnerMediaType; external name 'ISO_B5';
          fISO_B6: JAPageAttributes.InnerMediaType; external name 'ISO_B6';
          fISO_B7: JAPageAttributes.InnerMediaType; external name 'ISO_B7';
          fISO_B8: JAPageAttributes.InnerMediaType; external name 'ISO_B8';
          fISO_B9: JAPageAttributes.InnerMediaType; external name 'ISO_B9';
          fISO_B10: JAPageAttributes.InnerMediaType; external name 'ISO_B10';
          fJIS_B0: JAPageAttributes.InnerMediaType; external name 'JIS_B0';
          fJIS_B1: JAPageAttributes.InnerMediaType; external name 'JIS_B1';
          fJIS_B2: JAPageAttributes.InnerMediaType; external name 'JIS_B2';
          fJIS_B3: JAPageAttributes.InnerMediaType; external name 'JIS_B3';
          fJIS_B4: JAPageAttributes.InnerMediaType; external name 'JIS_B4';
          fJIS_B5: JAPageAttributes.InnerMediaType; external name 'JIS_B5';
          fJIS_B6: JAPageAttributes.InnerMediaType; external name 'JIS_B6';
          fJIS_B7: JAPageAttributes.InnerMediaType; external name 'JIS_B7';
          fJIS_B8: JAPageAttributes.InnerMediaType; external name 'JIS_B8';
          fJIS_B9: JAPageAttributes.InnerMediaType; external name 'JIS_B9';
          fJIS_B10: JAPageAttributes.InnerMediaType; external name 'JIS_B10';
          fISO_C0: JAPageAttributes.InnerMediaType; external name 'ISO_C0';
          fISO_C1: JAPageAttributes.InnerMediaType; external name 'ISO_C1';
          fISO_C2: JAPageAttributes.InnerMediaType; external name 'ISO_C2';
          fISO_C3: JAPageAttributes.InnerMediaType; external name 'ISO_C3';
          fISO_C4: JAPageAttributes.InnerMediaType; external name 'ISO_C4';
          fISO_C5: JAPageAttributes.InnerMediaType; external name 'ISO_C5';
          fISO_C6: JAPageAttributes.InnerMediaType; external name 'ISO_C6';
          fISO_C7: JAPageAttributes.InnerMediaType; external name 'ISO_C7';
          fISO_C8: JAPageAttributes.InnerMediaType; external name 'ISO_C8';
          fISO_C9: JAPageAttributes.InnerMediaType; external name 'ISO_C9';
          fISO_C10: JAPageAttributes.InnerMediaType; external name 'ISO_C10';
          fISO_DESIGNATED_LONG: JAPageAttributes.InnerMediaType; external name 'ISO_DESIGNATED_LONG';
          fEXECUTIVE: JAPageAttributes.InnerMediaType; external name 'EXECUTIVE';
          fFOLIO: JAPageAttributes.InnerMediaType; external name 'FOLIO';
          fINVOICE: JAPageAttributes.InnerMediaType; external name 'INVOICE';
          fLEDGER: JAPageAttributes.InnerMediaType; external name 'LEDGER';
          fNA_LETTER: JAPageAttributes.InnerMediaType; external name 'NA_LETTER';
          fNA_LEGAL: JAPageAttributes.InnerMediaType; external name 'NA_LEGAL';
          fQUARTO: JAPageAttributes.InnerMediaType; external name 'QUARTO';
          fA: JAPageAttributes.InnerMediaType; external name 'A';
          fB: JAPageAttributes.InnerMediaType; external name 'B';
          fC: JAPageAttributes.InnerMediaType; external name 'C';
          fD: JAPageAttributes.InnerMediaType; external name 'D';
          fE: JAPageAttributes.InnerMediaType; external name 'E';
          fNA_10X15_ENVELOPE: JAPageAttributes.InnerMediaType; external name 'NA_10X15_ENVELOPE';
          fNA_10X14_ENVELOPE: JAPageAttributes.InnerMediaType; external name 'NA_10X14_ENVELOPE';
          fNA_10X13_ENVELOPE: JAPageAttributes.InnerMediaType; external name 'NA_10X13_ENVELOPE';
          fNA_9X12_ENVELOPE: JAPageAttributes.InnerMediaType; external name 'NA_9X12_ENVELOPE';
          fNA_9X11_ENVELOPE: JAPageAttributes.InnerMediaType; external name 'NA_9X11_ENVELOPE';
          fNA_7X9_ENVELOPE: JAPageAttributes.InnerMediaType; external name 'NA_7X9_ENVELOPE';
          fNA_6X9_ENVELOPE: JAPageAttributes.InnerMediaType; external name 'NA_6X9_ENVELOPE';
          fNA_NUMBER_9_ENVELOPE: JAPageAttributes.InnerMediaType; external name 'NA_NUMBER_9_ENVELOPE';
          fNA_NUMBER_10_ENVELOPE: JAPageAttributes.InnerMediaType; external name 'NA_NUMBER_10_ENVELOPE';
          fNA_NUMBER_11_ENVELOPE: JAPageAttributes.InnerMediaType; external name 'NA_NUMBER_11_ENVELOPE';
          fNA_NUMBER_12_ENVELOPE: JAPageAttributes.InnerMediaType; external name 'NA_NUMBER_12_ENVELOPE';
          fNA_NUMBER_14_ENVELOPE: JAPageAttributes.InnerMediaType; external name 'NA_NUMBER_14_ENVELOPE';
          fINVITE_ENVELOPE: JAPageAttributes.InnerMediaType; external name 'INVITE_ENVELOPE';
          fITALY_ENVELOPE: JAPageAttributes.InnerMediaType; external name 'ITALY_ENVELOPE';
          fMONARCH_ENVELOPE: JAPageAttributes.InnerMediaType; external name 'MONARCH_ENVELOPE';
          fPERSONAL_ENVELOPE: JAPageAttributes.InnerMediaType; external name 'PERSONAL_ENVELOPE';
          fA0: JAPageAttributes.InnerMediaType; external name 'A0';
          fA1: JAPageAttributes.InnerMediaType; external name 'A1';
          fA2: JAPageAttributes.InnerMediaType; external name 'A2';
          fA3: JAPageAttributes.InnerMediaType; external name 'A3';
          fA4: JAPageAttributes.InnerMediaType; external name 'A4';
          fA5: JAPageAttributes.InnerMediaType; external name 'A5';
          fA6: JAPageAttributes.InnerMediaType; external name 'A6';
          fA7: JAPageAttributes.InnerMediaType; external name 'A7';
          fA8: JAPageAttributes.InnerMediaType; external name 'A8';
          fA9: JAPageAttributes.InnerMediaType; external name 'A9';
          fA10: JAPageAttributes.InnerMediaType; external name 'A10';
          fB0: JAPageAttributes.InnerMediaType; external name 'B0';
          fB1: JAPageAttributes.InnerMediaType; external name 'B1';
          fB2: JAPageAttributes.InnerMediaType; external name 'B2';
          fB3: JAPageAttributes.InnerMediaType; external name 'B3';
          fB4: JAPageAttributes.InnerMediaType; external name 'B4';
          fISO_B4_ENVELOPE: JAPageAttributes.InnerMediaType; external name 'ISO_B4_ENVELOPE';
          fB5: JAPageAttributes.InnerMediaType; external name 'B5';
          fISO_B5_ENVELOPE: JAPageAttributes.InnerMediaType; external name 'ISO_B5_ENVELOPE';
          fB6: JAPageAttributes.InnerMediaType; external name 'B6';
          fB7: JAPageAttributes.InnerMediaType; external name 'B7';
          fB8: JAPageAttributes.InnerMediaType; external name 'B8';
          fB9: JAPageAttributes.InnerMediaType; external name 'B9';
          fB10: JAPageAttributes.InnerMediaType; external name 'B10';
          fC0: JAPageAttributes.InnerMediaType; external name 'C0';
          fISO_C0_ENVELOPE: JAPageAttributes.InnerMediaType; external name 'ISO_C0_ENVELOPE';
          fC1: JAPageAttributes.InnerMediaType; external name 'C1';
          fISO_C1_ENVELOPE: JAPageAttributes.InnerMediaType; external name 'ISO_C1_ENVELOPE';
          fC2: JAPageAttributes.InnerMediaType; external name 'C2';
          fISO_C2_ENVELOPE: JAPageAttributes.InnerMediaType; external name 'ISO_C2_ENVELOPE';
          fC3: JAPageAttributes.InnerMediaType; external name 'C3';
          fISO_C3_ENVELOPE: JAPageAttributes.InnerMediaType; external name 'ISO_C3_ENVELOPE';
          fC4: JAPageAttributes.InnerMediaType; external name 'C4';
          fISO_C4_ENVELOPE: JAPageAttributes.InnerMediaType; external name 'ISO_C4_ENVELOPE';
          fC5: JAPageAttributes.InnerMediaType; external name 'C5';
          fISO_C5_ENVELOPE: JAPageAttributes.InnerMediaType; external name 'ISO_C5_ENVELOPE';
          fC6: JAPageAttributes.InnerMediaType; external name 'C6';
          fISO_C6_ENVELOPE: JAPageAttributes.InnerMediaType; external name 'ISO_C6_ENVELOPE';
          fC7: JAPageAttributes.InnerMediaType; external name 'C7';
          fISO_C7_ENVELOPE: JAPageAttributes.InnerMediaType; external name 'ISO_C7_ENVELOPE';
          fC8: JAPageAttributes.InnerMediaType; external name 'C8';
          fISO_C8_ENVELOPE: JAPageAttributes.InnerMediaType; external name 'ISO_C8_ENVELOPE';
          fC9: JAPageAttributes.InnerMediaType; external name 'C9';
          fISO_C9_ENVELOPE: JAPageAttributes.InnerMediaType; external name 'ISO_C9_ENVELOPE';
          fC10: JAPageAttributes.InnerMediaType; external name 'C10';
          fISO_C10_ENVELOPE: JAPageAttributes.InnerMediaType; external name 'ISO_C10_ENVELOPE';
          fISO_DESIGNATED_LONG_ENVELOPE: JAPageAttributes.InnerMediaType; external name 'ISO_DESIGNATED_LONG_ENVELOPE';
          fSTATEMENT: JAPageAttributes.InnerMediaType; external name 'STATEMENT';
          fTABLOID: JAPageAttributes.InnerMediaType; external name 'TABLOID';
          fLETTER: JAPageAttributes.InnerMediaType; external name 'LETTER';
          fNOTE: JAPageAttributes.InnerMediaType; external name 'NOTE';
          fLEGAL: JAPageAttributes.InnerMediaType; external name 'LEGAL';
          fENV_10X15: JAPageAttributes.InnerMediaType; external name 'ENV_10X15';
          fENV_10X14: JAPageAttributes.InnerMediaType; external name 'ENV_10X14';
          fENV_10X13: JAPageAttributes.InnerMediaType; external name 'ENV_10X13';
          fENV_9X12: JAPageAttributes.InnerMediaType; external name 'ENV_9X12';
          fENV_9X11: JAPageAttributes.InnerMediaType; external name 'ENV_9X11';
          fENV_7X9: JAPageAttributes.InnerMediaType; external name 'ENV_7X9';
          fENV_6X9: JAPageAttributes.InnerMediaType; external name 'ENV_6X9';
          fENV_9: JAPageAttributes.InnerMediaType; external name 'ENV_9';
          fENV_10: JAPageAttributes.InnerMediaType; external name 'ENV_10';
          fENV_11: JAPageAttributes.InnerMediaType; external name 'ENV_11';
          fENV_12: JAPageAttributes.InnerMediaType; external name 'ENV_12';
          fENV_14: JAPageAttributes.InnerMediaType; external name 'ENV_14';
          fENV_INVITE: JAPageAttributes.InnerMediaType; external name 'ENV_INVITE';
          fENV_ITALY: JAPageAttributes.InnerMediaType; external name 'ENV_ITALY';
          fENV_MONARCH: JAPageAttributes.InnerMediaType; external name 'ENV_MONARCH';
          fENV_PERSONAL: JAPageAttributes.InnerMediaType; external name 'ENV_PERSONAL';
          fINVITE: JAPageAttributes.InnerMediaType; external name 'INVITE';
          fITALY: JAPageAttributes.InnerMediaType; external name 'ITALY';
          fMONARCH: JAPageAttributes.InnerMediaType; external name 'MONARCH';
          fPERSONAL: JAPageAttributes.InnerMediaType; external name 'PERSONAL';
      public
        function toString(): JLString; overload; virtual;
        function hashCode(): jint; overload; virtual;
      end;

      InnerOrientationRequestedType = class sealed external 'java.awt' name 'OrientationRequestedType' (JAAttributeValue)
      public
        final class var
          fPORTRAIT: JAPageAttributes.InnerOrientationRequestedType; external name 'PORTRAIT';
          fLANDSCAPE: JAPageAttributes.InnerOrientationRequestedType; external name 'LANDSCAPE';
      public
        function toString(): JLString; overload; virtual;
        function hashCode(): jint; overload; virtual;
      end;

      InnerOriginType = class sealed external 'java.awt' name 'OriginType' (JAAttributeValue)
      public
        final class var
          fPHYSICAL: JAPageAttributes.InnerOriginType; external name 'PHYSICAL';
          fPRINTABLE: JAPageAttributes.InnerOriginType; external name 'PRINTABLE';
      public
        function toString(): JLString; overload; virtual;
        function hashCode(): jint; overload; virtual;
      end;

      InnerPrintQualityType = class sealed external 'java.awt' name 'PrintQualityType' (JAAttributeValue)
      public
        final class var
          fHIGH: JAPageAttributes.InnerPrintQualityType; external name 'HIGH';
          fNORMAL: JAPageAttributes.InnerPrintQualityType; external name 'NORMAL';
          fDRAFT: JAPageAttributes.InnerPrintQualityType; external name 'DRAFT';
      public
        function toString(): JLString; overload; virtual;
        function hashCode(): jint; overload; virtual;
      end;

  public
    constructor create(); overload;
    constructor create(para1: JAPageAttributes); overload;
    constructor create(para1: JAPageAttributes.InnerColorType; para2: JAPageAttributes.InnerMediaType; para3: JAPageAttributes.InnerOrientationRequestedType; para4: JAPageAttributes.InnerOriginType; para5: JAPageAttributes.InnerPrintQualityType; para6: Arr1jint); overload;
    constructor create(para1: JAPageAttributes.InnerColorType; para2: JAPageAttributes.InnerMediaType; para3: JAPageAttributes.InnerOrientationRequestedType; para4: JAPageAttributes.InnerOriginType; para5: JAPageAttributes.InnerPrintQualityType; const para6: array of jint); overload;
    function clone(): JLObject; overload; virtual;
    procedure &set(para1: JAPageAttributes); overload; virtual;
    function getColor(): JAPageAttributes.InnerColorType; overload; virtual;
    procedure setColor(para1: JAPageAttributes.InnerColorType); overload; virtual;
    function getMedia(): JAPageAttributes.InnerMediaType; overload; virtual;
    procedure setMedia(para1: JAPageAttributes.InnerMediaType); overload; virtual;
    procedure setMediaToDefault(); overload; virtual;
    function getOrientationRequested(): JAPageAttributes.InnerOrientationRequestedType; overload; virtual;
    procedure setOrientationRequested(para1: JAPageAttributes.InnerOrientationRequestedType); overload; virtual;
    procedure setOrientationRequested(para1: jint); overload; virtual;
    procedure setOrientationRequestedToDefault(); overload; virtual;
    function getOrigin(): JAPageAttributes.InnerOriginType; overload; virtual;
    procedure setOrigin(para1: JAPageAttributes.InnerOriginType); overload; virtual;
    function getPrintQuality(): JAPageAttributes.InnerPrintQualityType; overload; virtual;
    procedure setPrintQuality(para1: JAPageAttributes.InnerPrintQualityType); overload; virtual;
    procedure setPrintQuality(para1: jint); overload; virtual;
    procedure setPrintQualityToDefault(); overload; virtual;
    function getPrinterResolution(): Arr1jint; overload; virtual;
    procedure setPrinterResolution(para1: Arr1jint); overload; virtual;
    procedure setPrinterResolution(var para1: array of jint); overload; virtual;
    procedure setPrinterResolution(para1: jint); overload; virtual;
    procedure setPrinterResolutionToDefault(); overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JAAlphaComposite = class sealed external 'java.awt' name 'AlphaComposite' (JLObject, JAComposite)
  public
    const
      CLEAR = 1;
      SRC = 2;
      DST = 9;
      SRC_OVER = 3;
      DST_OVER = 4;
      SRC_IN = 5;
      DST_IN = 6;
      SRC_OUT = 7;
      DST_OUT = 8;
      SRC_ATOP = 10;
      DST_ATOP = 11;
      &XOR = 12;
  public
    final class var
      fClear: JAAlphaComposite; external name 'Clear';
      fSrc: JAAlphaComposite; external name 'Src';
      fDst: JAAlphaComposite; external name 'Dst';
      fSrcOver: JAAlphaComposite; external name 'SrcOver';
      fDstOver: JAAlphaComposite; external name 'DstOver';
      fSrcIn: JAAlphaComposite; external name 'SrcIn';
      fDstIn: JAAlphaComposite; external name 'DstIn';
      fSrcOut: JAAlphaComposite; external name 'SrcOut';
      fDstOut: JAAlphaComposite; external name 'DstOut';
      fSrcAtop: JAAlphaComposite; external name 'SrcAtop';
      fDstAtop: JAAlphaComposite; external name 'DstAtop';
      fXor: JAAlphaComposite; external name 'Xor';
  public
    class function getInstance(para1: jint): JAAlphaComposite; static; overload;
    class function getInstance(para1: jint; para2: jfloat): JAAlphaComposite; static; overload;
    function createContext(para1: JAIColorModel; para2: JAIColorModel; para3: JARenderingHints): JACompositeContext; overload; virtual;
    function getAlpha(): jfloat; overload; virtual;
    function getRule(): jint; overload; virtual;
    function derive(para1: jint): JAAlphaComposite; overload; virtual;
    function derive(para1: jfloat): JAAlphaComposite; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JAContainerOrderFocusTraversalPolicy = class external 'java.awt' name 'ContainerOrderFocusTraversalPolicy' (JAFocusTraversalPolicy, JISerializable)
  public
    constructor create(); overload;
    function getComponentAfter(para1: JAContainer; para2: JAComponent): JAComponent; overload; virtual;
    function getComponentBefore(para1: JAContainer; para2: JAComponent): JAComponent; overload; virtual;
    function getFirstComponent(para1: JAContainer): JAComponent; overload; virtual;
    function getLastComponent(para1: JAContainer): JAComponent; overload; virtual;
    function getDefaultComponent(para1: JAContainer): JAComponent; overload; virtual;
    procedure setImplicitDownCycleTraversal(para1: jboolean); overload; virtual;
    function getImplicitDownCycleTraversal(): jboolean; overload; virtual;
  strict protected
    function accept(para1: JAComponent): jboolean; overload; virtual;
  end;

  JSInternalFrameFocusTraversalPolicy = class abstract external 'javax.swing' name 'InternalFrameFocusTraversalPolicy' (JAFocusTraversalPolicy)
  public
    constructor create(); overload;
    function getInitialComponent(para1: JSJInternalFrame): JAComponent; overload; virtual;
  end;

  JSLegacyGlueFocusTraversalPolicy = class sealed external 'javax.swing' name 'LegacyGlueFocusTraversalPolicy' (JAFocusTraversalPolicy, JISerializable)
  public
    function getComponentAfter(para1: JAContainer; para2: JAComponent): JAComponent; overload; virtual;
    function getComponentBefore(para1: JAContainer; para2: JAComponent): JAComponent; overload; virtual;
    function getFirstComponent(para1: JAContainer): JAComponent; overload; virtual;
    function getLastComponent(para1: JAContainer): JAComponent; overload; virtual;
    function getDefaultComponent(para1: JAContainer): JAComponent; overload; virtual;
  end;

  JSDebugGraphics = class external 'javax.swing' name 'DebugGraphics' (JAGraphics)
  public
    const
      LOG_OPTION = 1;
      FLASH_OPTION = 2;
      BUFFERED_OPTION = 4;
      NONE_OPTION = -1;
  public
    constructor create(); overload;
    constructor create(para1: JAGraphics; para2: JSJComponent); overload;
    constructor create(para1: JAGraphics); overload;
    function create_(): JAGraphics; external name 'create'; overload; virtual;
    function create_(para1: jint; para2: jint; para3: jint; para4: jint): JAGraphics; external name 'create'; overload; virtual;
    class procedure setFlashColor(para1: JAColor); static; overload;
    class function flashColor(): JAColor; static; overload;
    class procedure setFlashTime(para1: jint); static; overload;
    class function flashTime(): jint; static; overload;
    class procedure setFlashCount(para1: jint); static; overload;
    class function flashCount(): jint; static; overload;
    class procedure setLogStream(para1: JIPrintStream); static; overload;
    class function logStream(): JIPrintStream; static; overload;
    procedure setFont(para1: JAFont); overload; virtual;
    function getFont(): JAFont; overload; virtual;
    procedure setColor(para1: JAColor); overload; virtual;
    function getColor(): JAColor; overload; virtual;
    function getFontMetrics(): JAFontMetrics; overload; virtual;
    function getFontMetrics(para1: JAFont): JAFontMetrics; overload; virtual;
    procedure translate(para1: jint; para2: jint); overload; virtual;
    procedure setPaintMode(); overload; virtual;
    procedure setXORMode(para1: JAColor); overload; virtual;
    function getClipBounds(): JARectangle; overload; virtual;
    procedure clipRect(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure setClip(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    function getClip(): JAShape; overload; virtual;
    procedure setClip(para1: JAShape); overload; virtual;
    procedure drawRect(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure fillRect(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure clearRect(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure drawRoundRect(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure fillRoundRect(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure drawLine(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure draw3DRect(para1: jint; para2: jint; para3: jint; para4: jint; para5: jboolean); overload; virtual;
    procedure fill3DRect(para1: jint; para2: jint; para3: jint; para4: jint; para5: jboolean); overload; virtual;
    procedure drawOval(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure fillOval(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure drawArc(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure fillArc(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure drawPolyline(para1: Arr1jint; para2: Arr1jint; para3: jint); overload; virtual;
    procedure drawPolyline(var para1: array of jint; var para2: array of jint; para3: jint); overload; virtual;
    procedure drawPolygon(para1: Arr1jint; para2: Arr1jint; para3: jint); overload; virtual;
    procedure drawPolygon(var para1: array of jint; var para2: array of jint; para3: jint); overload; virtual;
    procedure fillPolygon(para1: Arr1jint; para2: Arr1jint; para3: jint); overload; virtual;
    procedure fillPolygon(var para1: array of jint; var para2: array of jint; para3: jint); overload; virtual;
    procedure drawString(para1: JLString; para2: jint; para3: jint); overload; virtual;
    procedure drawString(para1: JTAttributedCharacterIterator; para2: jint; para3: jint); overload; virtual;
    procedure drawBytes(para1: Arr1jbyte; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    procedure drawBytes(var para1: array of jbyte; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    procedure drawChars(para1: Arr1jchar; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    procedure drawChars(var para1: array of jchar; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    function drawImage(para1: JAImage; para2: jint; para3: jint; para4: JAIImageObserver): jboolean; overload; virtual;
    function drawImage(para1: JAImage; para2: jint; para3: jint; para4: jint; para5: jint; para6: JAIImageObserver): jboolean; overload; virtual;
    function drawImage(para1: JAImage; para2: jint; para3: jint; para4: JAColor; para5: JAIImageObserver): jboolean; overload; virtual;
    function drawImage(para1: JAImage; para2: jint; para3: jint; para4: jint; para5: jint; para6: JAColor; para7: JAIImageObserver): jboolean; overload; virtual;
    function drawImage(para1: JAImage; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: jint; para10: JAIImageObserver): jboolean; overload; virtual;
    function drawImage(para1: JAImage; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: jint; para10: JAColor; para11: JAIImageObserver): jboolean; overload; virtual;
    procedure copyArea(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure dispose(); overload; virtual;
    function isDrawingBuffer(): jboolean; overload; virtual;
    procedure setDebugOptions(para1: jint); overload; virtual;
    function getDebugOptions(): jint; overload; virtual;
  end;

  JSButtonModel = interface external 'javax.swing' name 'ButtonModel' (JAItemSelectable)
    function isArmed(): jboolean; overload;
    function isSelected(): jboolean; overload;
    function isEnabled(): jboolean; overload;
    function isPressed(): jboolean; overload;
    function isRollover(): jboolean; overload;
    procedure setArmed(para1: jboolean); overload;
    procedure setSelected(para1: jboolean); overload;
    procedure setEnabled(para1: jboolean); overload;
    procedure setPressed(para1: jboolean); overload;
    procedure setRollover(para1: jboolean); overload;
    procedure setMnemonic(para1: jint); overload;
    function getMnemonic(): jint; overload;
    procedure setActionCommand(para1: JLString); overload;
    function getActionCommand(): JLString; overload;
    procedure setGroup(para1: JSButtonGroup); overload;
    procedure addActionListener(para1: JAEActionListener); overload;
    procedure removeActionListener(para1: JAEActionListener); overload;
    procedure addItemListener(para1: JAEItemListener); overload;
    procedure removeItemListener(para1: JAEItemListener); overload;
    procedure addChangeListener(para1: JSEChangeListener); overload;
    procedure removeChangeListener(para1: JSEChangeListener); overload;
  end;

  JAKeyboardFocusManager = class abstract external 'java.awt' name 'KeyboardFocusManager' (JLObject, JAKeyEventDispatcher, JAKeyEventPostProcessor)
  public
    type
      InnerHeavyweightFocusRequest = class;
      Arr1InnerHeavyweightFocusRequest = array of InnerHeavyweightFocusRequest;
      Arr2InnerHeavyweightFocusRequest = array of Arr1InnerHeavyweightFocusRequest;
      Arr3InnerHeavyweightFocusRequest = array of Arr2InnerHeavyweightFocusRequest;
      InnerLightweightFocusRequest = class;
      Arr1InnerLightweightFocusRequest = array of InnerLightweightFocusRequest;
      Arr2InnerLightweightFocusRequest = array of Arr1InnerLightweightFocusRequest;
      Arr3InnerLightweightFocusRequest = array of Arr2InnerLightweightFocusRequest;
      InnerHeavyweightFocusRequest = class sealed external 'java.awt' name 'HeavyweightFocusRequest' 
      end;

      InnerLightweightFocusRequest = class sealed external 'java.awt' name 'LightweightFocusRequest' 
      end;

  public
    const
      FORWARD_TRAVERSAL_KEYS = 0;
      BACKWARD_TRAVERSAL_KEYS = 1;
      UP_CYCLE_TRAVERSAL_KEYS = 2;
      DOWN_CYCLE_TRAVERSAL_KEYS = 3;
  public
    class function getCurrentKeyboardFocusManager(): JAKeyboardFocusManager; static; overload;
    class procedure setCurrentKeyboardFocusManager(para1: JAKeyboardFocusManager); static; overload;  // throws java.lang.SecurityException
    constructor create(); overload;
    function getFocusOwner(): JAComponent; overload; virtual;
  strict protected
    function getGlobalFocusOwner(): JAComponent; overload; virtual;  // throws java.lang.SecurityException
    procedure setGlobalFocusOwner(para1: JAComponent); overload; virtual;
  public
    procedure clearGlobalFocusOwner(); overload; virtual;
    function getPermanentFocusOwner(): JAComponent; overload; virtual;
  strict protected
    function getGlobalPermanentFocusOwner(): JAComponent; overload; virtual;  // throws java.lang.SecurityException
    procedure setGlobalPermanentFocusOwner(para1: JAComponent); overload; virtual;
  public
    function getFocusedWindow(): JAWindow; overload; virtual;
  strict protected
    function getGlobalFocusedWindow(): JAWindow; overload; virtual;  // throws java.lang.SecurityException
    procedure setGlobalFocusedWindow(para1: JAWindow); overload; virtual;
  public
    function getActiveWindow(): JAWindow; overload; virtual;
  strict protected
    function getGlobalActiveWindow(): JAWindow; overload; virtual;  // throws java.lang.SecurityException
    procedure setGlobalActiveWindow(para1: JAWindow); overload; virtual;
  public
    function getDefaultFocusTraversalPolicy(): JAFocusTraversalPolicy; overload; virtual;
    procedure setDefaultFocusTraversalPolicy(para1: JAFocusTraversalPolicy); overload; virtual;
    procedure setDefaultFocusTraversalKeys(para1: jint; para2: JUSet); overload; virtual;
    function getDefaultFocusTraversalKeys(para1: jint): JUSet; overload; virtual;
    function getCurrentFocusCycleRoot(): JAContainer; overload; virtual;
  strict protected
    function getGlobalCurrentFocusCycleRoot(): JAContainer; overload; virtual;  // throws java.lang.SecurityException
  public
    procedure setGlobalCurrentFocusCycleRoot(para1: JAContainer); overload; virtual;
    procedure addPropertyChangeListener(para1: JBPropertyChangeListener); overload; virtual;
    procedure removePropertyChangeListener(para1: JBPropertyChangeListener); overload; virtual;
    function getPropertyChangeListeners(): Arr1JBPropertyChangeListener; overload; virtual;
    procedure addPropertyChangeListener(para1: JLString; para2: JBPropertyChangeListener); overload; virtual;
    procedure removePropertyChangeListener(para1: JLString; para2: JBPropertyChangeListener); overload; virtual;
    function getPropertyChangeListeners(para1: JLString): Arr1JBPropertyChangeListener; overload; virtual;
  strict protected
    procedure firePropertyChange(para1: JLString; para2: JLObject; para3: JLObject); overload; virtual;
  public
    procedure addVetoableChangeListener(para1: JBVetoableChangeListener); overload; virtual;
    procedure removeVetoableChangeListener(para1: JBVetoableChangeListener); overload; virtual;
    function getVetoableChangeListeners(): Arr1JBVetoableChangeListener; overload; virtual;
    procedure addVetoableChangeListener(para1: JLString; para2: JBVetoableChangeListener); overload; virtual;
    procedure removeVetoableChangeListener(para1: JLString; para2: JBVetoableChangeListener); overload; virtual;
    function getVetoableChangeListeners(para1: JLString): Arr1JBVetoableChangeListener; overload; virtual;
  strict protected
    procedure fireVetoableChange(para1: JLString; para2: JLObject; para3: JLObject); overload; virtual;  // throws java.beans.PropertyVetoException
  public
    procedure addKeyEventDispatcher(para1: JAKeyEventDispatcher); overload; virtual;
    procedure removeKeyEventDispatcher(para1: JAKeyEventDispatcher); overload; virtual;
  strict protected
    function getKeyEventDispatchers(): JUList; overload; virtual;
  public
    procedure addKeyEventPostProcessor(para1: JAKeyEventPostProcessor); overload; virtual;
    procedure removeKeyEventPostProcessor(para1: JAKeyEventPostProcessor); overload; virtual;
  strict protected
    function getKeyEventPostProcessors(): JUList; overload; virtual;
  public
    function dispatchEvent(para1: JAAWTEvent): jboolean; overload; virtual; abstract;
    procedure redispatchEvent(para1: JAComponent; para2: JAAWTEvent); overload; virtual; final;
    function dispatchKeyEvent(para1: JAEKeyEvent): jboolean; overload; virtual; abstract;
    function postProcessKeyEvent(para1: JAEKeyEvent): jboolean; overload; virtual; abstract;
    procedure processKeyEvent(para1: JAComponent; para2: JAEKeyEvent); overload; virtual; abstract;
  strict protected
    procedure enqueueKeyEvents(para1: jlong; para2: JAComponent); overload; virtual; abstract;
    procedure dequeueKeyEvents(para1: jlong; para2: JAComponent); overload; virtual; abstract;
    procedure discardKeyEvents(para1: JAComponent); overload; virtual; abstract;
  public
    procedure focusNextComponent(para1: JAComponent); overload; virtual; abstract;
    procedure focusPreviousComponent(para1: JAComponent); overload; virtual; abstract;
    procedure upFocusCycle(para1: JAComponent); overload; virtual; abstract;
    procedure downFocusCycle(para1: JAContainer); overload; virtual; abstract;
    procedure focusNextComponent(); overload; virtual; final;
    procedure focusPreviousComponent(); overload; virtual; final;
    procedure upFocusCycle(); overload; virtual; final;
    procedure downFocusCycle(); overload; virtual; final;
  end;

  JAFlowLayout = class external 'java.awt' name 'FlowLayout' (JLObject, JALayoutManager, JISerializable)
  public
    const
      LEFT = 0;
      CENTER = 1;
      RIGHT = 2;
      LEADING = 3;
      TRAILING = 4;
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint); overload;
    function getAlignment(): jint; overload; virtual;
    procedure setAlignment(para1: jint); overload; virtual;
    function getHgap(): jint; overload; virtual;
    procedure setHgap(para1: jint); overload; virtual;
    function getVgap(): jint; overload; virtual;
    procedure setVgap(para1: jint); overload; virtual;
    procedure setAlignOnBaseline(para1: jboolean); overload; virtual;
    function getAlignOnBaseline(): jboolean; overload; virtual;
    procedure addLayoutComponent(para1: JLString; para2: JAComponent); overload; virtual;
    procedure removeLayoutComponent(para1: JAComponent); overload; virtual;
    function preferredLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    function minimumLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    procedure layoutContainer(para1: JAContainer); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JAGridLayout = class external 'java.awt' name 'GridLayout' (JLObject, JALayoutManager, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: jint; para2: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint); overload;
    function getRows(): jint; overload; virtual;
    procedure setRows(para1: jint); overload; virtual;
    function getColumns(): jint; overload; virtual;
    procedure setColumns(para1: jint); overload; virtual;
    function getHgap(): jint; overload; virtual;
    procedure setHgap(para1: jint); overload; virtual;
    function getVgap(): jint; overload; virtual;
    procedure setVgap(para1: jint); overload; virtual;
    procedure addLayoutComponent(para1: JLString; para2: JAComponent); overload; virtual;
    procedure removeLayoutComponent(para1: JAComponent); overload; virtual;
    function preferredLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    function minimumLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    procedure layoutContainer(para1: JAContainer); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JALayoutManager2 = interface external 'java.awt' name 'LayoutManager2' (JALayoutManager)
    procedure addLayoutComponent(para1: JAComponent; para2: JLObject); overload;
    function maximumLayoutSize(para1: JAContainer): JADimension; overload;
    function getLayoutAlignmentX(para1: JAContainer): jfloat; overload;
    function getLayoutAlignmentY(para1: JAContainer): jfloat; overload;
    procedure invalidateLayout(para1: JAContainer); overload;
  end;

  JSViewportLayout = class external 'javax.swing' name 'ViewportLayout' (JLObject, JALayoutManager, JISerializable)
  public
    constructor create(); overload;
    procedure addLayoutComponent(para1: JLString; para2: JAComponent); overload; virtual;
    procedure removeLayoutComponent(para1: JAComponent); overload; virtual;
    function preferredLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    function minimumLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    procedure layoutContainer(para1: JAContainer); overload; virtual;
  end;

  JSCCenterLayout = class external 'javax.swing.colorchooser' name 'CenterLayout' (JLObject, JALayoutManager, JISerializable)
  public
    procedure addLayoutComponent(para1: JLString; para2: JAComponent); overload; virtual;
    procedure removeLayoutComponent(para1: JAComponent); overload; virtual;
    function preferredLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    function minimumLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    procedure layoutContainer(para1: JAContainer); overload; virtual;
  end;

  JSCSmartGridLayout = class external 'javax.swing.colorchooser' name 'SmartGridLayout' (JLObject, JALayoutManager, JISerializable)
  public
    constructor create(para1: jint; para2: jint); overload;
    procedure layoutContainer(para1: JAContainer); overload; virtual;
    function minimumLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    function preferredLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    procedure addLayoutComponent(para1: JLString; para2: JAComponent); overload; virtual;
    procedure removeLayoutComponent(para1: JAComponent); overload; virtual;
  end;

  JSPBCenterLayout = class external 'javax.swing.plaf.basic' name 'CenterLayout' (JLObject, JALayoutManager, JISerializable)
  public
    procedure addLayoutComponent(para1: JLString; para2: JAComponent); overload; virtual;
    procedure removeLayoutComponent(para1: JAComponent); overload; virtual;
    function preferredLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    function minimumLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    procedure layoutContainer(para1: JAContainer); overload; virtual;
  end;

  JAColorPaintContext = class external 'java.awt' name 'ColorPaintContext' (JLObject, JAPaintContext)
  strict protected
    constructor create(para1: jint; para2: JAIColorModel); overload;
  public
    procedure dispose(); overload; virtual;
    function getColorModel(): JAIColorModel; overload; virtual;
    function getRaster(para1: jint; para2: jint; para3: jint; para4: jint): JAIRaster; overload; virtual;
  end;

  JAGradientPaintContext = class external 'java.awt' name 'GradientPaintContext' (JLObject, JAPaintContext)
  public
    constructor create(para1: JAIColorModel; para2: JAGPoint2D; para3: JAGPoint2D; para4: JAGAffineTransform; para5: JAColor; para6: JAColor; para7: jboolean); overload;
    procedure dispose(); overload; virtual;
    function getColorModel(): JAIColorModel; overload; virtual;
    function getRaster(para1: jint; para2: jint; para3: jint; para4: jint): JAIRaster; overload; virtual;
  end;

  JATexturePaintContext = class abstract external 'java.awt' name 'TexturePaintContext' (JLObject, JAPaintContext)
  public
    type
      InnerAny = class;
      Arr1InnerAny = array of InnerAny;
      Arr2InnerAny = array of Arr1InnerAny;
      Arr3InnerAny = array of Arr2InnerAny;
      InnerByte = class;
      Arr1InnerByte = array of InnerByte;
      Arr2InnerByte = array of Arr1InnerByte;
      Arr3InnerByte = array of Arr2InnerByte;
      InnerByteFilter = class;
      Arr1InnerByteFilter = array of InnerByteFilter;
      Arr2InnerByteFilter = array of Arr1InnerByteFilter;
      Arr3InnerByteFilter = array of Arr2InnerByteFilter;
      InnerInt = class;
      Arr1InnerInt = array of InnerInt;
      Arr2InnerInt = array of Arr1InnerInt;
      Arr3InnerInt = array of Arr2InnerInt;
      InnerAny = class external 'java.awt' name 'Any' 
      end;

      InnerByte = class external 'java.awt' name 'Byte' 
      end;

      InnerByteFilter = class external 'java.awt' name 'ByteFilter' 
      end;

      InnerInt = class external 'java.awt' name 'Int' 
      end;

  public
    class var
      fxrgbmodel: JAIColorModel; external name 'xrgbmodel';
      fargbmodel: JAIColorModel; external name 'argbmodel';
  public
    class function getContext(para1: JAIBufferedImage; para2: JAGAffineTransform; para3: JARenderingHints; para4: JARectangle): JAPaintContext; static; overload;
    class function isFilterableICM(para1: JAIColorModel): jboolean; static; overload;
    class function isFilterableDCM(para1: JAIColorModel): jboolean; static; overload;
    class function isMaskOK(para1: jint; para2: jboolean): jboolean; static; overload;
    class function getInternedColorModel(para1: JAIColorModel): JAIColorModel; static; overload;
    procedure dispose(); overload; virtual;
    function getColorModel(): JAIColorModel; overload; virtual;
    function getRaster(para1: jint; para2: jint; para3: jint; para4: jint): JAIRaster; overload; virtual;
    function makeRaster(para1: jint; para2: jint): JAIWritableRaster; overload; virtual; abstract;
    procedure setRaster(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: jint; para10: jint; para11: jint; para12: jint; para13: jint; para14: jint; para15: jint; para16: jint); overload; virtual; abstract;
    class function blend(para1: Arr1jint; para2: jint; para3: jint): jint; static; overload;
    class function blend(var para1: array of jint; para2: jint; para3: jint): jint; static; overload;
  end;

  JAPolygon = class external 'java.awt' name 'Polygon' (JLObject, JAShape, JISerializable)
  public
    type
      InnerPolygonPathIterator = class;
      Arr1InnerPolygonPathIterator = array of InnerPolygonPathIterator;
      Arr2InnerPolygonPathIterator = array of Arr1InnerPolygonPathIterator;
      Arr3InnerPolygonPathIterator = array of Arr2InnerPolygonPathIterator;
      InnerPolygonPathIterator = class external 'java.awt' name 'PolygonPathIterator' 
      end;

  public
    var
      fnpoints: jint; external name 'npoints';
      fxpoints: Arr1jint; external name 'xpoints';
      fypoints: Arr1jint; external name 'ypoints';
  strict protected
    var
      fbounds: JARectangle; external name 'bounds';
  public
    constructor create(); overload;
    constructor create(para1: Arr1jint; para2: Arr1jint; para3: jint); overload;
    constructor create(const para1: array of jint; const para2: array of jint; para3: jint); overload;
    procedure reset(); overload; virtual;
    procedure invalidate(); overload; virtual;
    procedure translate(para1: jint; para2: jint); overload; virtual;
    procedure addPoint(para1: jint; para2: jint); overload; virtual;
    function getBounds(): JARectangle; overload; virtual;
    function getBoundingBox(): JARectangle; overload; virtual;
    function contains(para1: JAPoint): jboolean; overload; virtual;
    function contains(para1: jint; para2: jint): jboolean; overload; virtual;
    function inside(para1: jint; para2: jint): jboolean; overload; virtual;
    function getBounds2D(): JAGRectangle2D; overload; virtual;
    function contains(para1: jdouble; para2: jdouble): jboolean; overload; virtual;
    function contains(para1: JAGPoint2D): jboolean; overload; virtual;
    function intersects(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble): jboolean; overload; virtual;
    function intersects(para1: JAGRectangle2D): jboolean; overload; virtual;
    function contains(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble): jboolean; overload; virtual;
    function contains(para1: JAGRectangle2D): jboolean; overload; virtual;
    function getPathIterator(para1: JAGAffineTransform): JAGPathIterator; overload; virtual;
    function getPathIterator(para1: JAGAffineTransform; para2: jdouble): JAGPathIterator; overload; virtual;
  end;

  JAGArea = class external 'java.awt.geom' name 'Area' (JLObject, JAShape, JLCloneable)
  public
    constructor create(); overload;
    constructor create(para1: JAShape); overload;
    procedure add(para1: JAGArea); overload; virtual;
    procedure subtract(para1: JAGArea); overload; virtual;
    procedure intersect(para1: JAGArea); overload; virtual;
    procedure exclusiveOr(para1: JAGArea); overload; virtual;
    procedure reset(); overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function isPolygonal(): jboolean; overload; virtual;
    function isRectangular(): jboolean; overload; virtual;
    function isSingular(): jboolean; overload; virtual;
    function getBounds2D(): JAGRectangle2D; overload; virtual;
    function getBounds(): JARectangle; overload; virtual;
    function clone(): JLObject; overload; virtual;
    function equals(para1: JAGArea): jboolean; overload; virtual;
    procedure transform(para1: JAGAffineTransform); overload; virtual;
    function createTransformedArea(para1: JAGAffineTransform): JAGArea; overload; virtual;
    function contains(para1: jdouble; para2: jdouble): jboolean; overload; virtual;
    function contains(para1: JAGPoint2D): jboolean; overload; virtual;
    function contains(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble): jboolean; overload; virtual;
    function contains(para1: JAGRectangle2D): jboolean; overload; virtual;
    function intersects(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble): jboolean; overload; virtual;
    function intersects(para1: JAGRectangle2D): jboolean; overload; virtual;
    function getPathIterator(para1: JAGAffineTransform): JAGPathIterator; overload; virtual;
    function getPathIterator(para1: JAGAffineTransform; para2: jdouble): JAGPathIterator; overload; virtual;
  end;

  JAGCubicCurve2D = class abstract external 'java.awt.geom' name 'CubicCurve2D' (JLObject, JAShape, JLCloneable)
  public
    type
      InnerDouble = class;
      Arr1InnerDouble = array of InnerDouble;
      Arr2InnerDouble = array of Arr1InnerDouble;
      Arr3InnerDouble = array of Arr2InnerDouble;
      InnerFloat = class;
      Arr1InnerFloat = array of InnerFloat;
      Arr2InnerFloat = array of Arr1InnerFloat;
      Arr3InnerFloat = array of Arr2InnerFloat;
      InnerDouble = class external 'java.awt.geom' name 'Double' (JAGCubicCurve2D, JISerializable)
      public
        var
          fx1: jdouble; external name 'x1';
          fy1: jdouble; external name 'y1';
          fctrlx1: jdouble; external name 'ctrlx1';
          fctrly1: jdouble; external name 'ctrly1';
          fctrlx2: jdouble; external name 'ctrlx2';
          fctrly2: jdouble; external name 'ctrly2';
          fx2: jdouble; external name 'x2';
          fy2: jdouble; external name 'y2';
      public
        constructor create(); overload;
        constructor create(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble; para6: jdouble; para7: jdouble; para8: jdouble); overload;
        function getX1(): jdouble; overload; virtual;
        function getY1(): jdouble; overload; virtual;
        function getP1(): JAGPoint2D; overload; virtual;
        function getCtrlX1(): jdouble; overload; virtual;
        function getCtrlY1(): jdouble; overload; virtual;
        function getCtrlP1(): JAGPoint2D; overload; virtual;
        function getCtrlX2(): jdouble; overload; virtual;
        function getCtrlY2(): jdouble; overload; virtual;
        function getCtrlP2(): JAGPoint2D; overload; virtual;
        function getX2(): jdouble; overload; virtual;
        function getY2(): jdouble; overload; virtual;
        function getP2(): JAGPoint2D; overload; virtual;
        procedure setCurve(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble; para6: jdouble; para7: jdouble; para8: jdouble); overload; virtual;
        function getBounds2D(): JAGRectangle2D; overload; virtual;
      end;

      InnerFloat = class external 'java.awt.geom' name 'Float' (JAGCubicCurve2D, JISerializable)
      public
        var
          fx1: jfloat; external name 'x1';
          fy1: jfloat; external name 'y1';
          fctrlx1: jfloat; external name 'ctrlx1';
          fctrly1: jfloat; external name 'ctrly1';
          fctrlx2: jfloat; external name 'ctrlx2';
          fctrly2: jfloat; external name 'ctrly2';
          fx2: jfloat; external name 'x2';
          fy2: jfloat; external name 'y2';
      public
        constructor create(); overload;
        constructor create(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat; para7: jfloat; para8: jfloat); overload;
        function getX1(): jdouble; overload; virtual;
        function getY1(): jdouble; overload; virtual;
        function getP1(): JAGPoint2D; overload; virtual;
        function getCtrlX1(): jdouble; overload; virtual;
        function getCtrlY1(): jdouble; overload; virtual;
        function getCtrlP1(): JAGPoint2D; overload; virtual;
        function getCtrlX2(): jdouble; overload; virtual;
        function getCtrlY2(): jdouble; overload; virtual;
        function getCtrlP2(): JAGPoint2D; overload; virtual;
        function getX2(): jdouble; overload; virtual;
        function getY2(): jdouble; overload; virtual;
        function getP2(): JAGPoint2D; overload; virtual;
        procedure setCurve(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble; para6: jdouble; para7: jdouble; para8: jdouble); overload; virtual;
        procedure setCurve(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat; para7: jfloat; para8: jfloat); overload; virtual;
        function getBounds2D(): JAGRectangle2D; overload; virtual;
      end;

  strict protected
    constructor create(); overload;
  public
    function getX1(): jdouble; overload; virtual; abstract;
    function getY1(): jdouble; overload; virtual; abstract;
    function getP1(): JAGPoint2D; overload; virtual; abstract;
    function getCtrlX1(): jdouble; overload; virtual; abstract;
    function getCtrlY1(): jdouble; overload; virtual; abstract;
    function getCtrlP1(): JAGPoint2D; overload; virtual; abstract;
    function getCtrlX2(): jdouble; overload; virtual; abstract;
    function getCtrlY2(): jdouble; overload; virtual; abstract;
    function getCtrlP2(): JAGPoint2D; overload; virtual; abstract;
    function getX2(): jdouble; overload; virtual; abstract;
    function getY2(): jdouble; overload; virtual; abstract;
    function getP2(): JAGPoint2D; overload; virtual; abstract;
    procedure setCurve(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble; para6: jdouble; para7: jdouble; para8: jdouble); overload; virtual; abstract;
    procedure setCurve(para1: Arr1jdouble; para2: jint); overload; virtual;
    procedure setCurve(var para1: array of jdouble; para2: jint); overload; virtual;
    procedure setCurve(para1: JAGPoint2D; para2: JAGPoint2D; para3: JAGPoint2D; para4: JAGPoint2D); overload; virtual;
    procedure setCurve(para1: Arr1JAGPoint2D; para2: jint); overload; virtual;
    procedure setCurve(var para1: array of JAGPoint2D; para2: jint); overload; virtual;
    procedure setCurve(para1: JAGCubicCurve2D); overload; virtual;
    class function getFlatnessSq(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble; para6: jdouble; para7: jdouble; para8: jdouble): jdouble; static; overload;
    class function getFlatness(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble; para6: jdouble; para7: jdouble; para8: jdouble): jdouble; static; overload;
    class function getFlatnessSq(para1: Arr1jdouble; para2: jint): jdouble; static; overload;
    class function getFlatnessSq(var para1: array of jdouble; para2: jint): jdouble; static; overload;
    class function getFlatness(para1: Arr1jdouble; para2: jint): jdouble; static; overload;
    class function getFlatness(var para1: array of jdouble; para2: jint): jdouble; static; overload;
    function getFlatnessSq(): jdouble; overload; virtual;
    function getFlatness(): jdouble; overload; virtual;
    procedure subdivide(para1: JAGCubicCurve2D; para2: JAGCubicCurve2D); overload; virtual;
    class procedure subdivide(para1: JAGCubicCurve2D; para2: JAGCubicCurve2D; para3: JAGCubicCurve2D); static; overload;
    class procedure subdivide(para1: Arr1jdouble; para2: jint; para3: Arr1jdouble; para4: jint; para5: Arr1jdouble; para6: jint); static; overload;
    class procedure subdivide(var para1: array of jdouble; para2: jint; var para3: array of jdouble; para4: jint; var para5: array of jdouble; para6: jint); static; overload;
    class function solveCubic(para1: Arr1jdouble): jint; static; overload;
    class function solveCubic(var para1: array of jdouble): jint; static; overload;
    class function solveCubic(para1: Arr1jdouble; para2: Arr1jdouble): jint; static; overload;
    class function solveCubic(var para1: array of jdouble; var para2: array of jdouble): jint; static; overload;
    function contains(para1: jdouble; para2: jdouble): jboolean; overload; virtual;
    function contains(para1: JAGPoint2D): jboolean; overload; virtual;
    function intersects(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble): jboolean; overload; virtual;
    function intersects(para1: JAGRectangle2D): jboolean; overload; virtual;
    function contains(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble): jboolean; overload; virtual;
    function contains(para1: JAGRectangle2D): jboolean; overload; virtual;
    function getBounds(): JARectangle; overload; virtual;
    function getPathIterator(para1: JAGAffineTransform): JAGPathIterator; overload; virtual;
    function getPathIterator(para1: JAGAffineTransform; para2: jdouble): JAGPathIterator; overload; virtual;
    function clone(): JLObject; overload; virtual;
  end;

  JAGLine2D = class abstract external 'java.awt.geom' name 'Line2D' (JLObject, JAShape, JLCloneable)
  public
    type
      InnerDouble = class;
      Arr1InnerDouble = array of InnerDouble;
      Arr2InnerDouble = array of Arr1InnerDouble;
      Arr3InnerDouble = array of Arr2InnerDouble;
      InnerFloat = class;
      Arr1InnerFloat = array of InnerFloat;
      Arr2InnerFloat = array of Arr1InnerFloat;
      Arr3InnerFloat = array of Arr2InnerFloat;
      InnerDouble = class external 'java.awt.geom' name 'Double' (JAGLine2D, JISerializable)
      public
        var
          fx1: jdouble; external name 'x1';
          fy1: jdouble; external name 'y1';
          fx2: jdouble; external name 'x2';
          fy2: jdouble; external name 'y2';
      public
        constructor create(); overload;
        constructor create(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble); overload;
        constructor create(para1: JAGPoint2D; para2: JAGPoint2D); overload;
        function getX1(): jdouble; overload; virtual;
        function getY1(): jdouble; overload; virtual;
        function getP1(): JAGPoint2D; overload; virtual;
        function getX2(): jdouble; overload; virtual;
        function getY2(): jdouble; overload; virtual;
        function getP2(): JAGPoint2D; overload; virtual;
        procedure setLine(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble); overload; virtual;
        function getBounds2D(): JAGRectangle2D; overload; virtual;
      end;

      InnerFloat = class external 'java.awt.geom' name 'Float' (JAGLine2D, JISerializable)
      public
        var
          fx1: jfloat; external name 'x1';
          fy1: jfloat; external name 'y1';
          fx2: jfloat; external name 'x2';
          fy2: jfloat; external name 'y2';
      public
        constructor create(); overload;
        constructor create(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); overload;
        constructor create(para1: JAGPoint2D; para2: JAGPoint2D); overload;
        function getX1(): jdouble; overload; virtual;
        function getY1(): jdouble; overload; virtual;
        function getP1(): JAGPoint2D; overload; virtual;
        function getX2(): jdouble; overload; virtual;
        function getY2(): jdouble; overload; virtual;
        function getP2(): JAGPoint2D; overload; virtual;
        procedure setLine(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble); overload; virtual;
        procedure setLine(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); overload; virtual;
        function getBounds2D(): JAGRectangle2D; overload; virtual;
      end;

  strict protected
    constructor create(); overload;
  public
    function getX1(): jdouble; overload; virtual; abstract;
    function getY1(): jdouble; overload; virtual; abstract;
    function getP1(): JAGPoint2D; overload; virtual; abstract;
    function getX2(): jdouble; overload; virtual; abstract;
    function getY2(): jdouble; overload; virtual; abstract;
    function getP2(): JAGPoint2D; overload; virtual; abstract;
    procedure setLine(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble); overload; virtual; abstract;
    procedure setLine(para1: JAGPoint2D; para2: JAGPoint2D); overload; virtual;
    procedure setLine(para1: JAGLine2D); overload; virtual;
    class function relativeCCW(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble; para6: jdouble): jint; static; overload;
    function relativeCCW(para1: jdouble; para2: jdouble): jint; overload; virtual;
    function relativeCCW(para1: JAGPoint2D): jint; overload; virtual;
    class function linesIntersect(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble; para6: jdouble; para7: jdouble; para8: jdouble): jboolean; static; overload;
    function intersectsLine(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble): jboolean; overload; virtual;
    function intersectsLine(para1: JAGLine2D): jboolean; overload; virtual;
    class function ptSegDistSq(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble; para6: jdouble): jdouble; static; overload;
    class function ptSegDist(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble; para6: jdouble): jdouble; static; overload;
    function ptSegDistSq(para1: jdouble; para2: jdouble): jdouble; overload; virtual;
    function ptSegDistSq(para1: JAGPoint2D): jdouble; overload; virtual;
    function ptSegDist(para1: jdouble; para2: jdouble): jdouble; overload; virtual;
    function ptSegDist(para1: JAGPoint2D): jdouble; overload; virtual;
    class function ptLineDistSq(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble; para6: jdouble): jdouble; static; overload;
    class function ptLineDist(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble; para6: jdouble): jdouble; static; overload;
    function ptLineDistSq(para1: jdouble; para2: jdouble): jdouble; overload; virtual;
    function ptLineDistSq(para1: JAGPoint2D): jdouble; overload; virtual;
    function ptLineDist(para1: jdouble; para2: jdouble): jdouble; overload; virtual;
    function ptLineDist(para1: JAGPoint2D): jdouble; overload; virtual;
    function contains(para1: jdouble; para2: jdouble): jboolean; overload; virtual;
    function contains(para1: JAGPoint2D): jboolean; overload; virtual;
    function intersects(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble): jboolean; overload; virtual;
    function intersects(para1: JAGRectangle2D): jboolean; overload; virtual;
    function contains(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble): jboolean; overload; virtual;
    function contains(para1: JAGRectangle2D): jboolean; overload; virtual;
    function getBounds(): JARectangle; overload; virtual;
    function getPathIterator(para1: JAGAffineTransform): JAGPathIterator; overload; virtual;
    function getPathIterator(para1: JAGAffineTransform; para2: jdouble): JAGPathIterator; overload; virtual;
    function clone(): JLObject; overload; virtual;
  end;

  JAGPath2D = class abstract external 'java.awt.geom' name 'Path2D' (JLObject, JAShape, JLCloneable)
  public
    type
      InnerIterator = class;
      Arr1InnerIterator = array of InnerIterator;
      Arr2InnerIterator = array of Arr1InnerIterator;
      Arr3InnerIterator = array of Arr2InnerIterator;
      InnerIterator = class abstract external 'java.awt.geom' name 'Iterator' 
      end;

  public
    type
      InnerDouble = class;
      Arr1InnerDouble = array of InnerDouble;
      Arr2InnerDouble = array of Arr1InnerDouble;
      Arr3InnerDouble = array of Arr2InnerDouble;
      InnerFloat = class;
      Arr1InnerFloat = array of InnerFloat;
      Arr2InnerFloat = array of Arr1InnerFloat;
      Arr3InnerFloat = array of Arr2InnerFloat;
      InnerDouble = class external 'java.awt.geom' name 'Double' (JAGPath2D, JISerializable)
      public
        type
          InnerCopyIterator = class;
          Arr1InnerCopyIterator = array of InnerCopyIterator;
          Arr2InnerCopyIterator = array of Arr1InnerCopyIterator;
          Arr3InnerCopyIterator = array of Arr2InnerCopyIterator;
          InnerTxIterator = class;
          Arr1InnerTxIterator = array of InnerTxIterator;
          Arr2InnerTxIterator = array of Arr1InnerTxIterator;
          Arr3InnerTxIterator = array of Arr2InnerTxIterator;
          InnerCopyIterator = class external 'java.awt.geom' name 'CopyIterator' 
          end;

          InnerTxIterator = class external 'java.awt.geom' name 'TxIterator' 
          end;

      public
        constructor create(); overload;
        constructor create(para1: jint); overload;
        constructor create(para1: jint; para2: jint); overload;
        constructor create(para1: JAShape); overload;
        constructor create(para1: JAShape; para2: JAGAffineTransform); overload;
        procedure moveTo(para1: jdouble; para2: jdouble); overload; virtual; final;
        procedure lineTo(para1: jdouble; para2: jdouble); overload; virtual; final;
        procedure quadTo(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble); overload; virtual; final;
        procedure curveTo(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble; para6: jdouble); overload; virtual; final;
        procedure append(para1: JAGPathIterator; para2: jboolean); overload; virtual; final;
        procedure transform(para1: JAGAffineTransform); overload; virtual; final;
        function getBounds2D(): JAGRectangle2D; overload; virtual; final;
        function getPathIterator(para1: JAGAffineTransform): JAGPathIterator; overload; virtual;
        function clone(): JLObject; overload; virtual; final;
      end;

      InnerFloat = class external 'java.awt.geom' name 'Float' (JAGPath2D, JISerializable)
      public
        type
          InnerCopyIterator = class;
          Arr1InnerCopyIterator = array of InnerCopyIterator;
          Arr2InnerCopyIterator = array of Arr1InnerCopyIterator;
          Arr3InnerCopyIterator = array of Arr2InnerCopyIterator;
          InnerTxIterator = class;
          Arr1InnerTxIterator = array of InnerTxIterator;
          Arr2InnerTxIterator = array of Arr1InnerTxIterator;
          Arr3InnerTxIterator = array of Arr2InnerTxIterator;
          InnerCopyIterator = class external 'java.awt.geom' name 'CopyIterator' 
          end;

          InnerTxIterator = class external 'java.awt.geom' name 'TxIterator' 
          end;

      public
        constructor create(); overload;
        constructor create(para1: jint); overload;
        constructor create(para1: jint; para2: jint); overload;
        constructor create(para1: JAShape); overload;
        constructor create(para1: JAShape; para2: JAGAffineTransform); overload;
        procedure moveTo(para1: jdouble; para2: jdouble); overload; virtual; final;
        procedure moveTo(para1: jfloat; para2: jfloat); overload; virtual; final;
        procedure lineTo(para1: jdouble; para2: jdouble); overload; virtual; final;
        procedure lineTo(para1: jfloat; para2: jfloat); overload; virtual; final;
        procedure quadTo(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble); overload; virtual; final;
        procedure quadTo(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); overload; virtual; final;
        procedure curveTo(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble; para6: jdouble); overload; virtual; final;
        procedure curveTo(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat); overload; virtual; final;
        procedure append(para1: JAGPathIterator; para2: jboolean); overload; virtual; final;
        procedure transform(para1: JAGAffineTransform); overload; virtual; final;
        function getBounds2D(): JAGRectangle2D; overload; virtual; final;
        function getPathIterator(para1: JAGAffineTransform): JAGPathIterator; overload; virtual;
        function clone(): JLObject; overload; virtual; final;
      end;

  public
    const
      WIND_EVEN_ODD = 0;
      WIND_NON_ZERO = 1;
  public
    procedure moveTo(para1: jdouble; para2: jdouble); overload; virtual; abstract;
    procedure lineTo(para1: jdouble; para2: jdouble); overload; virtual; abstract;
    procedure quadTo(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble); overload; virtual; abstract;
    procedure curveTo(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble; para6: jdouble); overload; virtual; abstract;
    procedure closePath(); overload; virtual; final;
    procedure append(para1: JAShape; para2: jboolean); overload; virtual; final;
    procedure append(para1: JAGPathIterator; para2: jboolean); overload; virtual; abstract;
    function getWindingRule(): jint; overload; virtual; final;
    procedure setWindingRule(para1: jint); overload; virtual; final;
    function getCurrentPoint(): JAGPoint2D; overload; virtual; final;
    procedure reset(); overload; virtual; final;
    procedure transform(para1: JAGAffineTransform); overload; virtual; abstract;
    function createTransformedShape(para1: JAGAffineTransform): JAShape; overload; virtual; final;
    function getBounds(): JARectangle; overload; virtual; final;
    class function contains(para1: JAGPathIterator; para2: jdouble; para3: jdouble): jboolean; static; overload;
    class function contains(para1: JAGPathIterator; para2: JAGPoint2D): jboolean; static; overload;
    function contains(para1: jdouble; para2: jdouble): jboolean; overload; virtual; final;
    function contains(para1: JAGPoint2D): jboolean; overload; virtual; final;
    class function contains(para1: JAGPathIterator; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble): jboolean; static; overload;
    class function contains(para1: JAGPathIterator; para2: JAGRectangle2D): jboolean; static; overload;
    function contains(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble): jboolean; overload; virtual; final;
    function contains(para1: JAGRectangle2D): jboolean; overload; virtual; final;
    class function intersects(para1: JAGPathIterator; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble): jboolean; static; overload;
    class function intersects(para1: JAGPathIterator; para2: JAGRectangle2D): jboolean; static; overload;
    function intersects(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble): jboolean; overload; virtual; final;
    function intersects(para1: JAGRectangle2D): jboolean; overload; virtual; final;
    function getPathIterator(para1: JAGAffineTransform; para2: jdouble): JAGPathIterator; overload; virtual;
    function clone(): JLObject; overload; virtual; abstract;
  end;

  JAGQuadCurve2D = class abstract external 'java.awt.geom' name 'QuadCurve2D' (JLObject, JAShape, JLCloneable)
  public
    type
      InnerDouble = class;
      Arr1InnerDouble = array of InnerDouble;
      Arr2InnerDouble = array of Arr1InnerDouble;
      Arr3InnerDouble = array of Arr2InnerDouble;
      InnerFloat = class;
      Arr1InnerFloat = array of InnerFloat;
      Arr2InnerFloat = array of Arr1InnerFloat;
      Arr3InnerFloat = array of Arr2InnerFloat;
      InnerDouble = class external 'java.awt.geom' name 'Double' (JAGQuadCurve2D, JISerializable)
      public
        var
          fx1: jdouble; external name 'x1';
          fy1: jdouble; external name 'y1';
          fctrlx: jdouble; external name 'ctrlx';
          fctrly: jdouble; external name 'ctrly';
          fx2: jdouble; external name 'x2';
          fy2: jdouble; external name 'y2';
      public
        constructor create(); overload;
        constructor create(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble; para6: jdouble); overload;
        function getX1(): jdouble; overload; virtual;
        function getY1(): jdouble; overload; virtual;
        function getP1(): JAGPoint2D; overload; virtual;
        function getCtrlX(): jdouble; overload; virtual;
        function getCtrlY(): jdouble; overload; virtual;
        function getCtrlPt(): JAGPoint2D; overload; virtual;
        function getX2(): jdouble; overload; virtual;
        function getY2(): jdouble; overload; virtual;
        function getP2(): JAGPoint2D; overload; virtual;
        procedure setCurve(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble; para6: jdouble); overload; virtual;
        function getBounds2D(): JAGRectangle2D; overload; virtual;
      end;

      InnerFloat = class external 'java.awt.geom' name 'Float' (JAGQuadCurve2D, JISerializable)
      public
        var
          fx1: jfloat; external name 'x1';
          fy1: jfloat; external name 'y1';
          fctrlx: jfloat; external name 'ctrlx';
          fctrly: jfloat; external name 'ctrly';
          fx2: jfloat; external name 'x2';
          fy2: jfloat; external name 'y2';
      public
        constructor create(); overload;
        constructor create(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat); overload;
        function getX1(): jdouble; overload; virtual;
        function getY1(): jdouble; overload; virtual;
        function getP1(): JAGPoint2D; overload; virtual;
        function getCtrlX(): jdouble; overload; virtual;
        function getCtrlY(): jdouble; overload; virtual;
        function getCtrlPt(): JAGPoint2D; overload; virtual;
        function getX2(): jdouble; overload; virtual;
        function getY2(): jdouble; overload; virtual;
        function getP2(): JAGPoint2D; overload; virtual;
        procedure setCurve(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble; para6: jdouble); overload; virtual;
        procedure setCurve(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat); overload; virtual;
        function getBounds2D(): JAGRectangle2D; overload; virtual;
      end;

  strict protected
    constructor create(); overload;
  public
    function getX1(): jdouble; overload; virtual; abstract;
    function getY1(): jdouble; overload; virtual; abstract;
    function getP1(): JAGPoint2D; overload; virtual; abstract;
    function getCtrlX(): jdouble; overload; virtual; abstract;
    function getCtrlY(): jdouble; overload; virtual; abstract;
    function getCtrlPt(): JAGPoint2D; overload; virtual; abstract;
    function getX2(): jdouble; overload; virtual; abstract;
    function getY2(): jdouble; overload; virtual; abstract;
    function getP2(): JAGPoint2D; overload; virtual; abstract;
    procedure setCurve(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble; para6: jdouble); overload; virtual; abstract;
    procedure setCurve(para1: Arr1jdouble; para2: jint); overload; virtual;
    procedure setCurve(var para1: array of jdouble; para2: jint); overload; virtual;
    procedure setCurve(para1: JAGPoint2D; para2: JAGPoint2D; para3: JAGPoint2D); overload; virtual;
    procedure setCurve(para1: Arr1JAGPoint2D; para2: jint); overload; virtual;
    procedure setCurve(var para1: array of JAGPoint2D; para2: jint); overload; virtual;
    procedure setCurve(para1: JAGQuadCurve2D); overload; virtual;
    class function getFlatnessSq(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble; para6: jdouble): jdouble; static; overload;
    class function getFlatness(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble; para6: jdouble): jdouble; static; overload;
    class function getFlatnessSq(para1: Arr1jdouble; para2: jint): jdouble; static; overload;
    class function getFlatnessSq(var para1: array of jdouble; para2: jint): jdouble; static; overload;
    class function getFlatness(para1: Arr1jdouble; para2: jint): jdouble; static; overload;
    class function getFlatness(var para1: array of jdouble; para2: jint): jdouble; static; overload;
    function getFlatnessSq(): jdouble; overload; virtual;
    function getFlatness(): jdouble; overload; virtual;
    procedure subdivide(para1: JAGQuadCurve2D; para2: JAGQuadCurve2D); overload; virtual;
    class procedure subdivide(para1: JAGQuadCurve2D; para2: JAGQuadCurve2D; para3: JAGQuadCurve2D); static; overload;
    class procedure subdivide(para1: Arr1jdouble; para2: jint; para3: Arr1jdouble; para4: jint; para5: Arr1jdouble; para6: jint); static; overload;
    class procedure subdivide(var para1: array of jdouble; para2: jint; var para3: array of jdouble; para4: jint; var para5: array of jdouble; para6: jint); static; overload;
    class function solveQuadratic(para1: Arr1jdouble): jint; static; overload;
    class function solveQuadratic(var para1: array of jdouble): jint; static; overload;
    class function solveQuadratic(para1: Arr1jdouble; para2: Arr1jdouble): jint; static; overload;
    class function solveQuadratic(var para1: array of jdouble; var para2: array of jdouble): jint; static; overload;
    function contains(para1: jdouble; para2: jdouble): jboolean; overload; virtual;
    function contains(para1: JAGPoint2D): jboolean; overload; virtual;
    function intersects(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble): jboolean; overload; virtual;
    function intersects(para1: JAGRectangle2D): jboolean; overload; virtual;
    function contains(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble): jboolean; overload; virtual;
    function contains(para1: JAGRectangle2D): jboolean; overload; virtual;
    function getBounds(): JARectangle; overload; virtual;
    function getPathIterator(para1: JAGAffineTransform): JAGPathIterator; overload; virtual;
    function getPathIterator(para1: JAGAffineTransform; para2: jdouble): JAGPathIterator; overload; virtual;
    function clone(): JLObject; overload; virtual;
  end;

  JAGRectangularShape = class abstract external 'java.awt.geom' name 'RectangularShape' (JLObject, JAShape, JLCloneable)
  strict protected
    constructor create(); overload;
  public
    function getX(): jdouble; overload; virtual; abstract;
    function getY(): jdouble; overload; virtual; abstract;
    function getWidth(): jdouble; overload; virtual; abstract;
    function getHeight(): jdouble; overload; virtual; abstract;
    function getMinX(): jdouble; overload; virtual;
    function getMinY(): jdouble; overload; virtual;
    function getMaxX(): jdouble; overload; virtual;
    function getMaxY(): jdouble; overload; virtual;
    function getCenterX(): jdouble; overload; virtual;
    function getCenterY(): jdouble; overload; virtual;
    function getFrame(): JAGRectangle2D; overload; virtual;
    function isEmpty(): jboolean; overload; virtual; abstract;
    procedure setFrame(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble); overload; virtual; abstract;
    procedure setFrame(para1: JAGPoint2D; para2: JAGDimension2D); overload; virtual;
    procedure setFrame(para1: JAGRectangle2D); overload; virtual;
    procedure setFrameFromDiagonal(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble); overload; virtual;
    procedure setFrameFromDiagonal(para1: JAGPoint2D; para2: JAGPoint2D); overload; virtual;
    procedure setFrameFromCenter(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble); overload; virtual;
    procedure setFrameFromCenter(para1: JAGPoint2D; para2: JAGPoint2D); overload; virtual;
    function contains(para1: JAGPoint2D): jboolean; overload; virtual;
    function intersects(para1: JAGRectangle2D): jboolean; overload; virtual;
    function contains(para1: JAGRectangle2D): jboolean; overload; virtual;
    function getBounds(): JARectangle; overload; virtual;
    function getPathIterator(para1: JAGAffineTransform; para2: jdouble): JAGPathIterator; overload; virtual;
    function clone(): JLObject; overload; virtual;
  end;

  JABasicStroke = class external 'java.awt' name 'BasicStroke' (JLObject, JAStroke)
  public
    type
      InnerFillAdapter = class;
      Arr1InnerFillAdapter = array of InnerFillAdapter;
      Arr2InnerFillAdapter = array of Arr1InnerFillAdapter;
      Arr3InnerFillAdapter = array of Arr2InnerFillAdapter;
      InnerFillAdapter = class external 'java.awt' name 'FillAdapter' 
      end;

  public
    const
      JOIN_MITER = 0;
      JOIN_ROUND = 1;
      JOIN_BEVEL = 2;
      CAP_BUTT = 0;
      CAP_ROUND = 1;
      CAP_SQUARE = 2;
  public
    constructor create(para1: jfloat; para2: jint; para3: jint; para4: jfloat; para5: Arr1jfloat; para6: jfloat); overload;
    constructor create(para1: jfloat; para2: jint; para3: jint; para4: jfloat; const para5: array of jfloat; para6: jfloat); overload;
    constructor create(para1: jfloat; para2: jint; para3: jint; para4: jfloat); overload;
    constructor create(para1: jfloat; para2: jint; para3: jint); overload;
    constructor create(para1: jfloat); overload;
    constructor create(); overload;
    function createStrokedShape(para1: JAShape): JAShape; overload; virtual;
    function getLineWidth(): jfloat; overload; virtual;
    function getEndCap(): jint; overload; virtual;
    function getLineJoin(): jint; overload; virtual;
    function getMiterLimit(): jfloat; overload; virtual;
    function getDashArray(): Arr1jfloat; overload; virtual;
    function getDashPhase(): jfloat; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JAPaint = interface external 'java.awt' name 'Paint' (JATransparency)
    function createContext(para1: JAIColorModel; para2: JARectangle; para3: JAGRectangle2D; para4: JAGAffineTransform; para5: JARenderingHints): JAPaintContext; overload;
  end;

  JAIColorModel = class abstract external 'java.awt.image' name 'ColorModel' (JLObject, JATransparency)
  strict protected
    var
      fpixel_bits: jint; external name 'pixel_bits';
      ftransferType: jint; external name 'transferType';
  public
    class function getRGBdefault(): JAIColorModel; static; overload;
    constructor create(para1: jint); overload;
  strict protected
    constructor create(para1: jint; para2: Arr1jint; para3: JACColorSpace; para4: jboolean; para5: jboolean; para6: jint; para7: jint); overload;
    constructor create(para1: jint; const para2: array of jint; para3: JACColorSpace; para4: jboolean; para5: jboolean; para6: jint; para7: jint); overload;
  public
    function hasAlpha(): jboolean; overload; virtual; final;
    function isAlphaPremultiplied(): jboolean; overload; virtual; final;
    function getTransferType(): jint; overload; virtual; final;
    function getPixelSize(): jint; overload; virtual;
    function getComponentSize(para1: jint): jint; overload; virtual;
    function getComponentSize(): Arr1jint; overload; virtual;
    function getTransparency(): jint; overload; virtual;
    function getNumComponents(): jint; overload; virtual;
    function getNumColorComponents(): jint; overload; virtual;
    function getRed(para1: jint): jint; overload; virtual; abstract;
    function getGreen(para1: jint): jint; overload; virtual; abstract;
    function getBlue(para1: jint): jint; overload; virtual; abstract;
    function getAlpha(para1: jint): jint; overload; virtual; abstract;
    function getRGB(para1: jint): jint; overload; virtual;
    function getRed(para1: JLObject): jint; overload; virtual;
    function getGreen(para1: JLObject): jint; overload; virtual;
    function getBlue(para1: JLObject): jint; overload; virtual;
    function getAlpha(para1: JLObject): jint; overload; virtual;
    function getRGB(para1: JLObject): jint; overload; virtual;
    function getDataElements(para1: jint; para2: JLObject): JLObject; overload; virtual;
    function getComponents(para1: jint; para2: Arr1jint; para3: jint): Arr1jint; overload; virtual;
    function getComponents(para1: jint; var para2: array of jint; para3: jint): Arr1jint; overload; virtual;
    function getComponents(para1: JLObject; para2: Arr1jint; para3: jint): Arr1jint; overload; virtual;
    function getComponents(para1: JLObject; var para2: array of jint; para3: jint): Arr1jint; overload; virtual;
    function getUnnormalizedComponents(para1: Arr1jfloat; para2: jint; para3: Arr1jint; para4: jint): Arr1jint; overload; virtual;
    function getUnnormalizedComponents(var para1: array of jfloat; para2: jint; var para3: array of jint; para4: jint): Arr1jint; overload; virtual;
    function getNormalizedComponents(para1: Arr1jint; para2: jint; para3: Arr1jfloat; para4: jint): Arr1jfloat; overload; virtual;
    function getNormalizedComponents(var para1: array of jint; para2: jint; var para3: array of jfloat; para4: jint): Arr1jfloat; overload; virtual;
    function getDataElement(para1: Arr1jint; para2: jint): jint; overload; virtual;
    function getDataElement(var para1: array of jint; para2: jint): jint; overload; virtual;
    function getDataElements(para1: Arr1jint; para2: jint; para3: JLObject): JLObject; overload; virtual;
    function getDataElements(var para1: array of jint; para2: jint; para3: JLObject): JLObject; overload; virtual;
    function getDataElement(para1: Arr1jfloat; para2: jint): jint; overload; virtual;
    function getDataElement(var para1: array of jfloat; para2: jint): jint; overload; virtual;
    function getDataElements(para1: Arr1jfloat; para2: jint; para3: JLObject): JLObject; overload; virtual;
    function getDataElements(var para1: array of jfloat; para2: jint; para3: JLObject): JLObject; overload; virtual;
    function getNormalizedComponents(para1: JLObject; para2: Arr1jfloat; para3: jint): Arr1jfloat; overload; virtual;
    function getNormalizedComponents(para1: JLObject; var para2: array of jfloat; para3: jint): Arr1jfloat; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function getColorSpace(): JACColorSpace; overload; virtual; final;
    function coerceData(para1: JAIWritableRaster; para2: jboolean): JAIColorModel; overload; virtual;
    function isCompatibleRaster(para1: JAIRaster): jboolean; overload; virtual;
    function createCompatibleWritableRaster(para1: jint; para2: jint): JAIWritableRaster; overload; virtual;
    function createCompatibleSampleModel(para1: jint; para2: jint): JAISampleModel; overload; virtual;
    function isCompatibleSampleModel(para1: JAISampleModel): jboolean; overload; virtual;
    procedure finalize(); overload; virtual;
    function getAlphaRaster(para1: JAIWritableRaster): JAIWritableRaster; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JAIVolatileImage = class abstract external 'java.awt.image' name 'VolatileImage' (JAImage, JATransparency)
  public
    const
      IMAGE_OK = 0;
      IMAGE_RESTORED = 1;
      IMAGE_INCOMPATIBLE = 2;
  strict protected
    var
      ftransparency: jint; external name 'transparency';
  public
    constructor create(); overload;
    function getSnapshot(): JAIBufferedImage; overload; virtual; abstract;
    function getWidth(): jint; overload; virtual; abstract;
    function getHeight(): jint; overload; virtual; abstract;
    function getSource(): JAIImageProducer; overload; virtual;
    function getGraphics(): JAGraphics; overload; virtual;
    function createGraphics(): JAGraphics2D; overload; virtual; abstract;
    function validate(para1: JAGraphicsConfiguration): jint; overload; virtual; abstract;
    function contentsLost(): jboolean; overload; virtual; abstract;
    function getCapabilities(): JAImageCapabilities; overload; virtual; abstract;
    function getTransparency(): jint; overload; virtual;
  end;

  JADFlavorTable = interface external 'java.awt.datatransfer' name 'FlavorTable' (JADFlavorMap)
    function getNativesForFlavor(para1: JADDataFlavor): JUList; overload;
    function getFlavorsForNative(para1: JLString): JUList; overload;
  end;

  JADStringSelection = class external 'java.awt.datatransfer' name 'StringSelection' (JLObject, JADTransferable, JADClipboardOwner)
  public
    constructor create(para1: JLString); overload;
    function getTransferDataFlavors(): Arr1JADDataFlavor; overload; virtual;
    function isDataFlavorSupported(para1: JADDataFlavor): jboolean; overload; virtual;
    function getTransferData(para1: JADDataFlavor): JLObject; overload; virtual;  // throws java.awt.datatransfer.UnsupportedFlavorException, java.io.IOException
    procedure lostOwnership(para1: JADClipboard; para2: JADTransferable); overload; virtual;
  end;

  JADataHandler = class external 'javax.activation' name 'DataHandler' (JLObject, JADTransferable)
  public
    constructor create(para1: JADataSource); overload;
    constructor create(para1: JLObject; para2: JLString); overload;
    constructor create(para1: JNURL); overload;
    function getDataSource(): JADataSource; overload; virtual;
    function getName(): JLString; overload; virtual;
    function getContentType(): JLString; overload; virtual;
    function getInputStream(): JIInputStream; overload; virtual;  // throws java.io.IOException
    procedure writeTo(para1: JIOutputStream); overload; virtual;  // throws java.io.IOException
    function getOutputStream(): JIOutputStream; overload; virtual;  // throws java.io.IOException
    function getTransferDataFlavors(): Arr1JADDataFlavor; overload; virtual;
    function isDataFlavorSupported(para1: JADDataFlavor): jboolean; overload; virtual;
    function getTransferData(para1: JADDataFlavor): JLObject; overload; virtual;  // throws java.awt.datatransfer.UnsupportedFlavorException, java.io.IOException
    procedure setCommandMap(para1: JACommandMap); overload; virtual;
    function getPreferredCommands(): Arr1JACommandInfo; overload; virtual;
    function getAllCommands(): Arr1JACommandInfo; overload; virtual;
    function getCommand(para1: JLString): JACommandInfo; overload; virtual;
    function getContent(): JLObject; overload; virtual;  // throws java.io.IOException
    function getBean(para1: JACommandInfo): JLObject; overload; virtual;
    class procedure setDataContentHandlerFactory(para1: JADataContentHandlerFactory); static; overload;
  end;

  JAFImageGraphicAttribute = class sealed external 'java.awt.font' name 'ImageGraphicAttribute' (JAFGraphicAttribute)
  public
    constructor create(para1: JAImage; para2: jint); overload;
    constructor create(para1: JAImage; para2: jint; para3: jfloat; para4: jfloat); overload;
    function getAscent(): jfloat; overload; virtual;
    function getDescent(): jfloat; overload; virtual;
    function getAdvance(): jfloat; overload; virtual;
    function getBounds(): JAGRectangle2D; overload; virtual;
    procedure draw(para1: JAGraphics2D; para2: jfloat; para3: jfloat); overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function equals(para1: JAFImageGraphicAttribute): jboolean; overload; virtual;
  end;

  JAFShapeGraphicAttribute = class sealed external 'java.awt.font' name 'ShapeGraphicAttribute' (JAFGraphicAttribute)
  public
    const
      STROKE = 1;
      FILL = 0;
  public
    constructor create(para1: JAShape; para2: jint; para3: jboolean); overload;
    function getAscent(): jfloat; overload; virtual;
    function getDescent(): jfloat; overload; virtual;
    function getAdvance(): jfloat; overload; virtual;
    procedure draw(para1: JAGraphics2D; para2: jfloat; para3: jfloat); overload; virtual;
    function getBounds(): JAGRectangle2D; overload; virtual;
    function getOutline(para1: JAGAffineTransform): JAShape; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function equals(para1: JAFShapeGraphicAttribute): jboolean; overload; virtual;
  end;

  JAGArcIterator = class external 'java.awt.geom' name 'ArcIterator' (JLObject, JAGPathIterator)
  public
    function getWindingRule(): jint; overload; virtual;
    function isDone(): jboolean; overload; virtual;
    procedure next(); overload; virtual;
    function currentSegment(para1: Arr1jfloat): jint; overload; virtual;
    function currentSegment(var para1: array of jfloat): jint; overload; virtual;
    function currentSegment(para1: Arr1jdouble): jint; overload; virtual;
    function currentSegment(var para1: array of jdouble): jint; overload; virtual;
  end;

  JAGAreaIterator = class external 'java.awt.geom' name 'AreaIterator' (JLObject, JAGPathIterator)
  public
    constructor create(para1: JUVector; para2: JAGAffineTransform); overload;
    function getWindingRule(): jint; overload; virtual;
    function isDone(): jboolean; overload; virtual;
    procedure next(); overload; virtual;
    function currentSegment(para1: Arr1jfloat): jint; overload; virtual;
    function currentSegment(var para1: array of jfloat): jint; overload; virtual;
    function currentSegment(para1: Arr1jdouble): jint; overload; virtual;
    function currentSegment(var para1: array of jdouble): jint; overload; virtual;
  end;

  JAGCubicIterator = class external 'java.awt.geom' name 'CubicIterator' (JLObject, JAGPathIterator)
  public
    function getWindingRule(): jint; overload; virtual;
    function isDone(): jboolean; overload; virtual;
    procedure next(); overload; virtual;
    function currentSegment(para1: Arr1jfloat): jint; overload; virtual;
    function currentSegment(var para1: array of jfloat): jint; overload; virtual;
    function currentSegment(para1: Arr1jdouble): jint; overload; virtual;
    function currentSegment(var para1: array of jdouble): jint; overload; virtual;
  end;

  JAGEllipseIterator = class external 'java.awt.geom' name 'EllipseIterator' (JLObject, JAGPathIterator)
  public
    const
      CtrlVal = jdouble(0.5522847498307933);
  public
    function getWindingRule(): jint; overload; virtual;
    function isDone(): jboolean; overload; virtual;
    procedure next(); overload; virtual;
    function currentSegment(para1: Arr1jfloat): jint; overload; virtual;
    function currentSegment(var para1: array of jfloat): jint; overload; virtual;
    function currentSegment(para1: Arr1jdouble): jint; overload; virtual;
    function currentSegment(var para1: array of jdouble): jint; overload; virtual;
  end;

  JAGFlatteningPathIterator = class external 'java.awt.geom' name 'FlatteningPathIterator' (JLObject, JAGPathIterator)
  public
    constructor create(para1: JAGPathIterator; para2: jdouble); overload;
    constructor create(para1: JAGPathIterator; para2: jdouble; para3: jint); overload;
    function getFlatness(): jdouble; overload; virtual;
    function getRecursionLimit(): jint; overload; virtual;
    function getWindingRule(): jint; overload; virtual;
    function isDone(): jboolean; overload; virtual;
    procedure next(); overload; virtual;
    function currentSegment(para1: Arr1jfloat): jint; overload; virtual;
    function currentSegment(var para1: array of jfloat): jint; overload; virtual;
    function currentSegment(para1: Arr1jdouble): jint; overload; virtual;
    function currentSegment(var para1: array of jdouble): jint; overload; virtual;
  end;

  JAGLineIterator = class external 'java.awt.geom' name 'LineIterator' (JLObject, JAGPathIterator)
  public
    function getWindingRule(): jint; overload; virtual;
    function isDone(): jboolean; overload; virtual;
    procedure next(); overload; virtual;
    function currentSegment(para1: Arr1jfloat): jint; overload; virtual;
    function currentSegment(var para1: array of jfloat): jint; overload; virtual;
    function currentSegment(para1: Arr1jdouble): jint; overload; virtual;
    function currentSegment(var para1: array of jdouble): jint; overload; virtual;
  end;

  JAGQuadIterator = class external 'java.awt.geom' name 'QuadIterator' (JLObject, JAGPathIterator)
  public
    function getWindingRule(): jint; overload; virtual;
    function isDone(): jboolean; overload; virtual;
    procedure next(); overload; virtual;
    function currentSegment(para1: Arr1jfloat): jint; overload; virtual;
    function currentSegment(var para1: array of jfloat): jint; overload; virtual;
    function currentSegment(para1: Arr1jdouble): jint; overload; virtual;
    function currentSegment(var para1: array of jdouble): jint; overload; virtual;
  end;

  JAGRectIterator = class external 'java.awt.geom' name 'RectIterator' (JLObject, JAGPathIterator)
  public
    function getWindingRule(): jint; overload; virtual;
    function isDone(): jboolean; overload; virtual;
    procedure next(); overload; virtual;
    function currentSegment(para1: Arr1jfloat): jint; overload; virtual;
    function currentSegment(var para1: array of jfloat): jint; overload; virtual;
    function currentSegment(para1: Arr1jdouble): jint; overload; virtual;
    function currentSegment(var para1: array of jdouble): jint; overload; virtual;
  end;

  JAGRoundRectIterator = class external 'java.awt.geom' name 'RoundRectIterator' (JLObject, JAGPathIterator)
  public
    function getWindingRule(): jint; overload; virtual;
    function isDone(): jboolean; overload; virtual;
    procedure next(); overload; virtual;
    function currentSegment(para1: Arr1jfloat): jint; overload; virtual;
    function currentSegment(var para1: array of jfloat): jint; overload; virtual;
    function currentSegment(para1: Arr1jdouble): jint; overload; virtual;
    function currentSegment(var para1: array of jdouble): jint; overload; virtual;
  end;

  JAIDataBufferByte = class sealed external 'java.awt.image' name 'DataBufferByte' (JAIDataBuffer)
  public
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jint); overload;
    constructor create(para1: Arr1jbyte; para2: jint); overload;
    constructor create(const para1: array of jbyte; para2: jint); overload;
    constructor create(para1: Arr1jbyte; para2: jint; para3: jint); overload;
    constructor create(const para1: array of jbyte; para2: jint; para3: jint); overload;
    constructor create(para1: Arr2jbyte; para2: jint); overload;
    constructor create(para1: Arr2jbyte; para2: jint; para3: Arr1jint); overload;
    constructor create(para1: Arr2jbyte; para2: jint; const para3: array of jint); overload;
    function getData(): Arr1jbyte; overload; virtual;
    function getData(para1: jint): Arr1jbyte; overload; virtual;
    function getBankData(): Arr2jbyte; overload; virtual;
    function getElem(para1: jint): jint; overload; virtual;
    function getElem(para1: jint; para2: jint): jint; overload; virtual;
    procedure setElem(para1: jint; para2: jint); overload; virtual;
    procedure setElem(para1: jint; para2: jint; para3: jint); overload; virtual;
  end;

  JAIDataBufferDouble = class sealed external 'java.awt.image' name 'DataBufferDouble' (JAIDataBuffer)
  public
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jint); overload;
    constructor create(para1: Arr1jdouble; para2: jint); overload;
    constructor create(const para1: array of jdouble; para2: jint); overload;
    constructor create(para1: Arr1jdouble; para2: jint; para3: jint); overload;
    constructor create(const para1: array of jdouble; para2: jint; para3: jint); overload;
    constructor create(para1: Arr2jdouble; para2: jint); overload;
    constructor create(para1: Arr2jdouble; para2: jint; para3: Arr1jint); overload;
    constructor create(para1: Arr2jdouble; para2: jint; const para3: array of jint); overload;
    function getData(): Arr1jdouble; overload; virtual;
    function getData(para1: jint): Arr1jdouble; overload; virtual;
    function getBankData(): Arr2jdouble; overload; virtual;
    function getElem(para1: jint): jint; overload; virtual;
    function getElem(para1: jint; para2: jint): jint; overload; virtual;
    procedure setElem(para1: jint; para2: jint); overload; virtual;
    procedure setElem(para1: jint; para2: jint; para3: jint); overload; virtual;
    function getElemFloat(para1: jint): jfloat; overload; virtual;
    function getElemFloat(para1: jint; para2: jint): jfloat; overload; virtual;
    procedure setElemFloat(para1: jint; para2: jfloat); overload; virtual;
    procedure setElemFloat(para1: jint; para2: jint; para3: jfloat); overload; virtual;
    function getElemDouble(para1: jint): jdouble; overload; virtual;
    function getElemDouble(para1: jint; para2: jint): jdouble; overload; virtual;
    procedure setElemDouble(para1: jint; para2: jdouble); overload; virtual;
    procedure setElemDouble(para1: jint; para2: jint; para3: jdouble); overload; virtual;
  end;

  JAIDataBufferFloat = class sealed external 'java.awt.image' name 'DataBufferFloat' (JAIDataBuffer)
  public
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jint); overload;
    constructor create(para1: Arr1jfloat; para2: jint); overload;
    constructor create(const para1: array of jfloat; para2: jint); overload;
    constructor create(para1: Arr1jfloat; para2: jint; para3: jint); overload;
    constructor create(const para1: array of jfloat; para2: jint; para3: jint); overload;
    constructor create(para1: Arr2jfloat; para2: jint); overload;
    constructor create(para1: Arr2jfloat; para2: jint; para3: Arr1jint); overload;
    constructor create(para1: Arr2jfloat; para2: jint; const para3: array of jint); overload;
    function getData(): Arr1jfloat; overload; virtual;
    function getData(para1: jint): Arr1jfloat; overload; virtual;
    function getBankData(): Arr2jfloat; overload; virtual;
    function getElem(para1: jint): jint; overload; virtual;
    function getElem(para1: jint; para2: jint): jint; overload; virtual;
    procedure setElem(para1: jint; para2: jint); overload; virtual;
    procedure setElem(para1: jint; para2: jint; para3: jint); overload; virtual;
    function getElemFloat(para1: jint): jfloat; overload; virtual;
    function getElemFloat(para1: jint; para2: jint): jfloat; overload; virtual;
    procedure setElemFloat(para1: jint; para2: jfloat); overload; virtual;
    procedure setElemFloat(para1: jint; para2: jint; para3: jfloat); overload; virtual;
    function getElemDouble(para1: jint): jdouble; overload; virtual;
    function getElemDouble(para1: jint; para2: jint): jdouble; overload; virtual;
    procedure setElemDouble(para1: jint; para2: jdouble); overload; virtual;
    procedure setElemDouble(para1: jint; para2: jint; para3: jdouble); overload; virtual;
  end;

  JAIDataBufferInt = class sealed external 'java.awt.image' name 'DataBufferInt' (JAIDataBuffer)
  public
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jint); overload;
    constructor create(para1: Arr1jint; para2: jint); overload;
    constructor create(const para1: array of jint; para2: jint); overload;
    constructor create(para1: Arr1jint; para2: jint; para3: jint); overload;
    constructor create(const para1: array of jint; para2: jint; para3: jint); overload;
    constructor create(para1: Arr2jint; para2: jint); overload;
    constructor create(para1: Arr2jint; para2: jint; para3: Arr1jint); overload;
    constructor create(para1: Arr2jint; para2: jint; const para3: array of jint); overload;
    function getData(): Arr1jint; overload; virtual;
    function getData(para1: jint): Arr1jint; overload; virtual;
    function getBankData(): Arr2jint; overload; virtual;
    function getElem(para1: jint): jint; overload; virtual;
    function getElem(para1: jint; para2: jint): jint; overload; virtual;
    procedure setElem(para1: jint; para2: jint); overload; virtual;
    procedure setElem(para1: jint; para2: jint; para3: jint); overload; virtual;
  end;

  JAIDataBufferShort = class sealed external 'java.awt.image' name 'DataBufferShort' (JAIDataBuffer)
  public
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jint); overload;
    constructor create(para1: Arr1jshort; para2: jint); overload;
    constructor create(const para1: array of jshort; para2: jint); overload;
    constructor create(para1: Arr1jshort; para2: jint; para3: jint); overload;
    constructor create(const para1: array of jshort; para2: jint; para3: jint); overload;
    constructor create(para1: Arr2jshort; para2: jint); overload;
    constructor create(para1: Arr2jshort; para2: jint; para3: Arr1jint); overload;
    constructor create(para1: Arr2jshort; para2: jint; const para3: array of jint); overload;
    function getData(): Arr1jshort; overload; virtual;
    function getData(para1: jint): Arr1jshort; overload; virtual;
    function getBankData(): Arr2jshort; overload; virtual;
    function getElem(para1: jint): jint; overload; virtual;
    function getElem(para1: jint; para2: jint): jint; overload; virtual;
    procedure setElem(para1: jint; para2: jint); overload; virtual;
    procedure setElem(para1: jint; para2: jint; para3: jint); overload; virtual;
  end;

  JAIDataBufferUShort = class sealed external 'java.awt.image' name 'DataBufferUShort' (JAIDataBuffer)
  public
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jint); overload;
    constructor create(para1: Arr1jshort; para2: jint); overload;
    constructor create(const para1: array of jshort; para2: jint); overload;
    constructor create(para1: Arr1jshort; para2: jint; para3: jint); overload;
    constructor create(const para1: array of jshort; para2: jint; para3: jint); overload;
    constructor create(para1: Arr2jshort; para2: jint); overload;
    constructor create(para1: Arr2jshort; para2: jint; para3: Arr1jint); overload;
    constructor create(para1: Arr2jshort; para2: jint; const para3: array of jint); overload;
    function getData(): Arr1jshort; overload; virtual;
    function getData(para1: jint): Arr1jshort; overload; virtual;
    function getBankData(): Arr2jshort; overload; virtual;
    function getElem(para1: jint): jint; overload; virtual;
    function getElem(para1: jint; para2: jint): jint; overload; virtual;
    procedure setElem(para1: jint; para2: jint); overload; virtual;
    procedure setElem(para1: jint; para2: jint; para3: jint); overload; virtual;
  end;

  JAIImageFilter = class external 'java.awt.image' name 'ImageFilter' (JLObject, JAIImageConsumer, JLCloneable)
  strict protected
    var
      fconsumer: JAIImageConsumer; external name 'consumer';
  public
    constructor create(); overload;
    function getFilterInstance(para1: JAIImageConsumer): JAIImageFilter; overload; virtual;
    procedure setDimensions(para1: jint; para2: jint); overload; virtual;
    procedure setProperties(para1: JUHashtable); overload; virtual;
    procedure setColorModel(para1: JAIColorModel); overload; virtual;
    procedure setHints(para1: jint); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIColorModel; para6: Arr1jbyte; para7: jint; para8: jint); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIColorModel; var para6: array of jbyte; para7: jint; para8: jint); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIColorModel; para6: Arr1jint; para7: jint; para8: jint); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIColorModel; var para6: array of jint; para7: jint; para8: jint); overload; virtual;
    procedure imageComplete(para1: jint); overload; virtual;
    procedure resendTopDownLeftRight(para1: JAIImageProducer); overload; virtual;
    function clone(): JLObject; overload; virtual;
  end;

  JAIPixelGrabber = class external 'java.awt.image' name 'PixelGrabber' (JLObject, JAIImageConsumer)
  public
    constructor create(para1: JAImage; para2: jint; para3: jint; para4: jint; para5: jint; para6: Arr1jint; para7: jint; para8: jint); overload;
    constructor create(para1: JAImage; para2: jint; para3: jint; para4: jint; para5: jint; const para6: array of jint; para7: jint; para8: jint); overload;
    constructor create(para1: JAIImageProducer; para2: jint; para3: jint; para4: jint; para5: jint; para6: Arr1jint; para7: jint; para8: jint); overload;
    constructor create(para1: JAIImageProducer; para2: jint; para3: jint; para4: jint; para5: jint; const para6: array of jint; para7: jint; para8: jint); overload;
    constructor create(para1: JAImage; para2: jint; para3: jint; para4: jint; para5: jint; para6: jboolean); overload;
    procedure startGrabbing(); overload; virtual;
    procedure abortGrabbing(); overload; virtual;
    function grabPixels(): jboolean; overload; virtual;  // throws java.lang.InterruptedException
    function grabPixels(para1: jlong): jboolean; overload; virtual;  // throws java.lang.InterruptedException
    function getStatus(): jint; overload; virtual;
    function getWidth(): jint; overload; virtual;
    function getHeight(): jint; overload; virtual;
    function getPixels(): JLObject; overload; virtual;
    function getColorModel(): JAIColorModel; overload; virtual;
    procedure setDimensions(para1: jint; para2: jint); overload; virtual;
    procedure setHints(para1: jint); overload; virtual;
    procedure setProperties(para1: JUHashtable); overload; virtual;
    procedure setColorModel(para1: JAIColorModel); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIColorModel; para6: Arr1jbyte; para7: jint; para8: jint); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIColorModel; var para6: array of jbyte; para7: jint; para8: jint); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIColorModel; para6: Arr1jint; para7: jint; para8: jint); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIColorModel; var para6: array of jint; para7: jint; para8: jint); overload; virtual;
    procedure imageComplete(para1: jint); overload; virtual;
    function status(): jint; overload; virtual;
  end;

  JAComponent = class abstract external 'java.awt' name 'Component' (JLObject, JAIImageObserver, JAMenuContainer, JISerializable)
  public
    type
      InnerAWTTreeLock = class;
      Arr1InnerAWTTreeLock = array of InnerAWTTreeLock;
      Arr2InnerAWTTreeLock = array of Arr1InnerAWTTreeLock;
      Arr3InnerAWTTreeLock = array of Arr2InnerAWTTreeLock;
      InnerSingleBufferStrategy = class;
      Arr1InnerSingleBufferStrategy = array of InnerSingleBufferStrategy;
      Arr2InnerSingleBufferStrategy = array of Arr1InnerSingleBufferStrategy;
      Arr3InnerSingleBufferStrategy = array of Arr2InnerSingleBufferStrategy;
      InnerBltSubRegionBufferStrategy = class;
      Arr1InnerBltSubRegionBufferStrategy = array of InnerBltSubRegionBufferStrategy;
      Arr2InnerBltSubRegionBufferStrategy = array of Arr1InnerBltSubRegionBufferStrategy;
      Arr3InnerBltSubRegionBufferStrategy = array of Arr2InnerBltSubRegionBufferStrategy;
      InnerFlipSubRegionBufferStrategy = class;
      Arr1InnerFlipSubRegionBufferStrategy = array of InnerFlipSubRegionBufferStrategy;
      Arr2InnerFlipSubRegionBufferStrategy = array of Arr1InnerFlipSubRegionBufferStrategy;
      Arr3InnerFlipSubRegionBufferStrategy = array of Arr2InnerFlipSubRegionBufferStrategy;
      InnerDummyRequestFocusController = class;
      Arr1InnerDummyRequestFocusController = array of InnerDummyRequestFocusController;
      Arr2InnerDummyRequestFocusController = array of Arr1InnerDummyRequestFocusController;
      Arr3InnerDummyRequestFocusController = array of Arr2InnerDummyRequestFocusController;
      InnerNativeInLightFixer = class;
      Arr1InnerNativeInLightFixer = array of InnerNativeInLightFixer;
      Arr2InnerNativeInLightFixer = array of Arr1InnerNativeInLightFixer;
      Arr3InnerNativeInLightFixer = array of Arr2InnerNativeInLightFixer;
      InnerProxyCapabilities = class;
      Arr1InnerProxyCapabilities = array of InnerProxyCapabilities;
      Arr2InnerProxyCapabilities = array of Arr1InnerProxyCapabilities;
      Arr3InnerProxyCapabilities = array of Arr2InnerProxyCapabilities;
      InnerAWTTreeLock = class external 'java.awt' name 'AWTTreeLock' 
      end;

      InnerSingleBufferStrategy = class external 'java.awt' name 'SingleBufferStrategy' 
      end;

      InnerBltSubRegionBufferStrategy = class external 'java.awt' name 'BltSubRegionBufferStrategy' 
      end;

      InnerFlipSubRegionBufferStrategy = class external 'java.awt' name 'FlipSubRegionBufferStrategy' 
      end;

      InnerDummyRequestFocusController = class external 'java.awt' name 'DummyRequestFocusController' 
      end;

      InnerNativeInLightFixer = class sealed external 'java.awt' name 'NativeInLightFixer' 
      end;

      InnerProxyCapabilities = class external 'java.awt' name 'ProxyCapabilities' 
      end;

  public
    type
      InnerAccessibleAWTComponent = class;
      Arr1InnerAccessibleAWTComponent = array of InnerAccessibleAWTComponent;
      Arr2InnerAccessibleAWTComponent = array of Arr1InnerAccessibleAWTComponent;
      Arr3InnerAccessibleAWTComponent = array of Arr2InnerAccessibleAWTComponent;
      InnerBaselineResizeBehavior = class;
      Arr1InnerBaselineResizeBehavior = array of InnerBaselineResizeBehavior;
      Arr2InnerBaselineResizeBehavior = array of Arr1InnerBaselineResizeBehavior;
      Arr3InnerBaselineResizeBehavior = array of Arr2InnerBaselineResizeBehavior;
      InnerBltBufferStrategy = class;
      Arr1InnerBltBufferStrategy = array of InnerBltBufferStrategy;
      Arr2InnerBltBufferStrategy = array of Arr1InnerBltBufferStrategy;
      Arr3InnerBltBufferStrategy = array of Arr2InnerBltBufferStrategy;
      InnerFlipBufferStrategy = class;
      Arr1InnerFlipBufferStrategy = array of InnerFlipBufferStrategy;
      Arr2InnerFlipBufferStrategy = array of Arr1InnerFlipBufferStrategy;
      Arr3InnerFlipBufferStrategy = array of Arr2InnerFlipBufferStrategy;
      InnerAccessibleAWTComponent = class abstract external 'java.awt' name 'AccessibleAWTComponent' 
      public
        type
          InnerAccessibleAWTComponentHandler = class;
          Arr1InnerAccessibleAWTComponentHandler = array of InnerAccessibleAWTComponentHandler;
          Arr2InnerAccessibleAWTComponentHandler = array of Arr1InnerAccessibleAWTComponentHandler;
          Arr3InnerAccessibleAWTComponentHandler = array of Arr2InnerAccessibleAWTComponentHandler;
          InnerAccessibleAWTFocusHandler = class;
          Arr1InnerAccessibleAWTFocusHandler = array of InnerAccessibleAWTFocusHandler;
          Arr2InnerAccessibleAWTFocusHandler = array of Arr1InnerAccessibleAWTFocusHandler;
          Arr3InnerAccessibleAWTFocusHandler = array of Arr2InnerAccessibleAWTFocusHandler;
          InnerAccessibleAWTComponentHandler = class external 'java.awt' name 'AccessibleAWTComponentHandler' 
          end;

          InnerAccessibleAWTFocusHandler = class external 'java.awt' name 'AccessibleAWTFocusHandler' 
          end;

      end;

      InnerBaselineResizeBehavior = class sealed external 'java.awt' name 'BaselineResizeBehavior' (JLEnum)
      public
        final class var
          fCONSTANT_ASCENT: JAComponent.InnerBaselineResizeBehavior; external name 'CONSTANT_ASCENT';
          fCONSTANT_DESCENT: JAComponent.InnerBaselineResizeBehavior; external name 'CONSTANT_DESCENT';
          fCENTER_OFFSET: JAComponent.InnerBaselineResizeBehavior; external name 'CENTER_OFFSET';
          fOTHER: JAComponent.InnerBaselineResizeBehavior; external name 'OTHER';
      public
        class function values(): JAComponent.Arr1InnerBaselineResizeBehavior; static; overload;
        class function valueOf(para1: JLString): JAComponent.InnerBaselineResizeBehavior; static; overload;
      end;

      InnerBltBufferStrategy = class external 'java.awt' name 'BltBufferStrategy' 
      end;

      InnerFlipBufferStrategy = class external 'java.awt' name 'FlipBufferStrategy' 
      end;

  public
    const
      TOP_ALIGNMENT = jfloat(0.0);
      CENTER_ALIGNMENT = jfloat(0.5);
      BOTTOM_ALIGNMENT = jfloat(1.0);
      LEFT_ALIGNMENT = jfloat(0.0);
      RIGHT_ALIGNMENT = jfloat(1.0);
  strict protected
    constructor create(); overload;
  public
    function getName(): JLString; overload; virtual;
    procedure setName(para1: JLString); overload; virtual;
    function getParent(): JAContainer; overload; virtual;
    function getPeer(): JAPComponentPeer; overload; virtual;
    procedure setDropTarget(para1: JADDropTarget); overload; virtual;
    function getDropTarget(): JADDropTarget; overload; virtual;
    function getGraphicsConfiguration(): JAGraphicsConfiguration; overload; virtual;
    function getTreeLock(): JLObject; overload; virtual; final;
    function getToolkit(): JAToolkit; overload; virtual;
    function isValid(): jboolean; overload; virtual;
    function isDisplayable(): jboolean; overload; virtual;
    function isVisible(): jboolean; overload; virtual;
    function getMousePosition(): JAPoint; overload; virtual;  // throws java.awt.HeadlessException
    function isShowing(): jboolean; overload; virtual;
    function isEnabled(): jboolean; overload; virtual;
    procedure setEnabled(para1: jboolean); overload; virtual;
    procedure enable(); overload; virtual;
    procedure enable(para1: jboolean); overload; virtual;
    procedure disable(); overload; virtual;
    function isDoubleBuffered(): jboolean; overload; virtual;
    procedure enableInputMethods(para1: jboolean); overload; virtual;
    procedure setVisible(para1: jboolean); overload; virtual;
    procedure show(); overload; virtual;
    procedure show(para1: jboolean); overload; virtual;
    procedure hide(); overload; virtual;
    function getForeground(): JAColor; overload; virtual;
    procedure setForeground(para1: JAColor); overload; virtual;
    function isForegroundSet(): jboolean; overload; virtual;
    function getBackground(): JAColor; overload; virtual;
    procedure setBackground(para1: JAColor); overload; virtual;
    function isBackgroundSet(): jboolean; overload; virtual;
    function getFont(): JAFont; overload; virtual;
    procedure setFont(para1: JAFont); overload; virtual;
    function isFontSet(): jboolean; overload; virtual;
    function getLocale(): JULocale; overload; virtual;
    procedure setLocale(para1: JULocale); overload; virtual;
    function getColorModel(): JAIColorModel; overload; virtual;
    function getLocation(): JAPoint; overload; virtual;
    function getLocationOnScreen(): JAPoint; overload; virtual;
    function location(): JAPoint; overload; virtual;
    procedure setLocation(para1: jint; para2: jint); overload; virtual;
    procedure move(para1: jint; para2: jint); overload; virtual;
    procedure setLocation(para1: JAPoint); overload; virtual;
    function getSize(): JADimension; overload; virtual;
    function size(): JADimension; overload; virtual;
    procedure setSize(para1: jint; para2: jint); overload; virtual;
    procedure resize(para1: jint; para2: jint); overload; virtual;
    procedure setSize(para1: JADimension); overload; virtual;
    procedure resize(para1: JADimension); overload; virtual;
    function getBounds(): JARectangle; overload; virtual;
    function bounds(): JARectangle; overload; virtual;
    procedure setBounds(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure reshape(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure setBounds(para1: JARectangle); overload; virtual;
    function getX(): jint; overload; virtual;
    function getY(): jint; overload; virtual;
    function getWidth(): jint; overload; virtual;
    function getHeight(): jint; overload; virtual;
    function getBounds(para1: JARectangle): JARectangle; overload; virtual;
    function getSize(para1: JADimension): JADimension; overload; virtual;
    function getLocation(para1: JAPoint): JAPoint; overload; virtual;
    function isOpaque(): jboolean; overload; virtual;
    function isLightweight(): jboolean; overload; virtual;
    procedure setPreferredSize(para1: JADimension); overload; virtual;
    function isPreferredSizeSet(): jboolean; overload; virtual;
    function getPreferredSize(): JADimension; overload; virtual;
    function preferredSize(): JADimension; overload; virtual;
    procedure setMinimumSize(para1: JADimension); overload; virtual;
    function isMinimumSizeSet(): jboolean; overload; virtual;
    function getMinimumSize(): JADimension; overload; virtual;
    function minimumSize(): JADimension; overload; virtual;
    procedure setMaximumSize(para1: JADimension); overload; virtual;
    function isMaximumSizeSet(): jboolean; overload; virtual;
    function getMaximumSize(): JADimension; overload; virtual;
    function getAlignmentX(): jfloat; overload; virtual;
    function getAlignmentY(): jfloat; overload; virtual;
    function getBaseline(para1: jint; para2: jint): jint; overload; virtual;
    function getBaselineResizeBehavior(): JAComponent.InnerBaselineResizeBehavior; overload; virtual;
    procedure doLayout(); overload; virtual;
    procedure layout(); overload; virtual;
    procedure validate(); overload; virtual;
    procedure invalidate(); overload; virtual;
    function getGraphics(): JAGraphics; overload; virtual;
    function getFontMetrics(para1: JAFont): JAFontMetrics; overload; virtual;
    procedure setCursor(para1: JACursor); overload; virtual;
    function getCursor(): JACursor; overload; virtual;
    function isCursorSet(): jboolean; overload; virtual;
    procedure paint(para1: JAGraphics); overload; virtual;
    procedure update(para1: JAGraphics); overload; virtual;
    procedure paintAll(para1: JAGraphics); overload; virtual;
    procedure repaint(); overload; virtual;
    procedure repaint(para1: jlong); overload; virtual;
    procedure repaint(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure repaint(para1: jlong; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    procedure print(para1: JAGraphics); overload; virtual;
    procedure printAll(para1: JAGraphics); overload; virtual;
    function imageUpdate(para1: JAImage; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint): jboolean; overload; virtual;
    function createImage(para1: JAIImageProducer): JAImage; overload; virtual;
    function createImage(para1: jint; para2: jint): JAImage; overload; virtual;
    function createVolatileImage(para1: jint; para2: jint): JAIVolatileImage; overload; virtual;
    function createVolatileImage(para1: jint; para2: jint; para3: JAImageCapabilities): JAIVolatileImage; overload; virtual;  // throws java.awt.AWTException
    function prepareImage(para1: JAImage; para2: JAIImageObserver): jboolean; overload; virtual;
    function prepareImage(para1: JAImage; para2: jint; para3: jint; para4: JAIImageObserver): jboolean; overload; virtual;
    function checkImage(para1: JAImage; para2: JAIImageObserver): jint; overload; virtual;
    function checkImage(para1: JAImage; para2: jint; para3: jint; para4: JAIImageObserver): jint; overload; virtual;
    procedure setIgnoreRepaint(para1: jboolean); overload; virtual;
    function getIgnoreRepaint(): jboolean; overload; virtual;
    function contains(para1: jint; para2: jint): jboolean; overload; virtual;
    function inside(para1: jint; para2: jint): jboolean; overload; virtual;
    function contains(para1: JAPoint): jboolean; overload; virtual;
    function getComponentAt(para1: jint; para2: jint): JAComponent; overload; virtual;
    function locate(para1: jint; para2: jint): JAComponent; overload; virtual;
    function getComponentAt(para1: JAPoint): JAComponent; overload; virtual;
    procedure deliverEvent(para1: JAEvent); overload; virtual;
    procedure dispatchEvent(para1: JAAWTEvent); overload; virtual; final;
    function postEvent(para1: JAEvent): jboolean; overload; virtual;
    procedure addComponentListener(para1: JAEComponentListener); overload; virtual;
    procedure removeComponentListener(para1: JAEComponentListener); overload; virtual;
    function getComponentListeners(): Arr1JAEComponentListener; overload; virtual;
    procedure addFocusListener(para1: JAEFocusListener); overload; virtual;
    procedure removeFocusListener(para1: JAEFocusListener); overload; virtual;
    function getFocusListeners(): Arr1JAEFocusListener; overload; virtual;
    procedure addHierarchyListener(para1: JAEHierarchyListener); overload; virtual;
    procedure removeHierarchyListener(para1: JAEHierarchyListener); overload; virtual;
    function getHierarchyListeners(): Arr1JAEHierarchyListener; overload; virtual;
    procedure addHierarchyBoundsListener(para1: JAEHierarchyBoundsListener); overload; virtual;
    procedure removeHierarchyBoundsListener(para1: JAEHierarchyBoundsListener); overload; virtual;
    function getHierarchyBoundsListeners(): Arr1JAEHierarchyBoundsListener; overload; virtual;
    procedure addKeyListener(para1: JAEKeyListener); overload; virtual;
    procedure removeKeyListener(para1: JAEKeyListener); overload; virtual;
    function getKeyListeners(): Arr1JAEKeyListener; overload; virtual;
    procedure addMouseListener(para1: JAEMouseListener); overload; virtual;
    procedure removeMouseListener(para1: JAEMouseListener); overload; virtual;
    function getMouseListeners(): Arr1JAEMouseListener; overload; virtual;
    procedure addMouseMotionListener(para1: JAEMouseMotionListener); overload; virtual;
    procedure removeMouseMotionListener(para1: JAEMouseMotionListener); overload; virtual;
    function getMouseMotionListeners(): Arr1JAEMouseMotionListener; overload; virtual;
    procedure addMouseWheelListener(para1: JAEMouseWheelListener); overload; virtual;
    procedure removeMouseWheelListener(para1: JAEMouseWheelListener); overload; virtual;
    function getMouseWheelListeners(): Arr1JAEMouseWheelListener; overload; virtual;
    procedure addInputMethodListener(para1: JAEInputMethodListener); overload; virtual;
    procedure removeInputMethodListener(para1: JAEInputMethodListener); overload; virtual;
    function getInputMethodListeners(): Arr1JAEInputMethodListener; overload; virtual;
    function getListeners(para1: JLClass): Arr1JUEventListener; overload; virtual;
    function getInputMethodRequests(): JAIInputMethodRequests; overload; virtual;
    function getInputContext(): JAIInputContext; overload; virtual;
  strict protected
    procedure enableEvents(para1: jlong); overload; virtual; final;
    procedure disableEvents(para1: jlong); overload; virtual; final;
    function coalesceEvents(para1: JAAWTEvent; para2: JAAWTEvent): JAAWTEvent; overload; virtual;
    procedure processEvent(para1: JAAWTEvent); overload; virtual;
    procedure processComponentEvent(para1: JAEComponentEvent); overload; virtual;
    procedure processFocusEvent(para1: JAEFocusEvent); overload; virtual;
    procedure processKeyEvent(para1: JAEKeyEvent); overload; virtual;
    procedure processMouseEvent(para1: JAEMouseEvent); overload; virtual;
    procedure processMouseMotionEvent(para1: JAEMouseEvent); overload; virtual;
    procedure processMouseWheelEvent(para1: JAEMouseWheelEvent); overload; virtual;
    procedure processInputMethodEvent(para1: JAEInputMethodEvent); overload; virtual;
    procedure processHierarchyEvent(para1: JAEHierarchyEvent); overload; virtual;
    procedure processHierarchyBoundsEvent(para1: JAEHierarchyEvent); overload; virtual;
  public
    function handleEvent(para1: JAEvent): jboolean; overload; virtual;
    function mouseDown(para1: JAEvent; para2: jint; para3: jint): jboolean; overload; virtual;
    function mouseDrag(para1: JAEvent; para2: jint; para3: jint): jboolean; overload; virtual;
    function mouseUp(para1: JAEvent; para2: jint; para3: jint): jboolean; overload; virtual;
    function mouseMove(para1: JAEvent; para2: jint; para3: jint): jboolean; overload; virtual;
    function mouseEnter(para1: JAEvent; para2: jint; para3: jint): jboolean; overload; virtual;
    function mouseExit(para1: JAEvent; para2: jint; para3: jint): jboolean; overload; virtual;
    function keyDown(para1: JAEvent; para2: jint): jboolean; overload; virtual;
    function keyUp(para1: JAEvent; para2: jint): jboolean; overload; virtual;
    function action(para1: JAEvent; para2: JLObject): jboolean; overload; virtual;
    procedure addNotify(); overload; virtual;
    procedure removeNotify(); overload; virtual;
    function gotFocus(para1: JAEvent; para2: JLObject): jboolean; overload; virtual;
    function lostFocus(para1: JAEvent; para2: JLObject): jboolean; overload; virtual;
    function isFocusTraversable(): jboolean; overload; virtual;
    function isFocusable(): jboolean; overload; virtual;
    procedure setFocusable(para1: jboolean); overload; virtual;
    procedure setFocusTraversalKeys(para1: jint; para2: JUSet); overload; virtual;
    function getFocusTraversalKeys(para1: jint): JUSet; overload; virtual;
    function areFocusTraversalKeysSet(para1: jint): jboolean; overload; virtual;
    procedure setFocusTraversalKeysEnabled(para1: jboolean); overload; virtual;
    function getFocusTraversalKeysEnabled(): jboolean; overload; virtual;
    procedure requestFocus(); overload; virtual;
  strict protected
    function requestFocus(para1: jboolean): jboolean; overload; virtual;
  public
    function requestFocusInWindow(): jboolean; overload; virtual;
  strict protected
    function requestFocusInWindow(para1: jboolean): jboolean; overload; virtual;
  public
    procedure transferFocus(); overload; virtual;
    function getFocusCycleRootAncestor(): JAContainer; overload; virtual;
    function isFocusCycleRoot(para1: JAContainer): jboolean; overload; virtual;
    procedure nextFocus(); overload; virtual;
    procedure transferFocusBackward(); overload; virtual;
    procedure transferFocusUpCycle(); overload; virtual;
    function hasFocus(): jboolean; overload; virtual;
    function isFocusOwner(): jboolean; overload; virtual;
    procedure add(para1: JAPopupMenu); overload; virtual;
    procedure remove(para1: JAMenuComponent); overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function toString(): JLString; overload; virtual;
    procedure list(); overload; virtual;
    procedure list(para1: JIPrintStream); overload; virtual;
    procedure list(para1: JIPrintStream; para2: jint); overload; virtual;
    procedure list(para1: JIPrintWriter); overload; virtual;
    procedure list(para1: JIPrintWriter; para2: jint); overload; virtual;
    procedure addPropertyChangeListener(para1: JBPropertyChangeListener); overload; virtual;
    procedure removePropertyChangeListener(para1: JBPropertyChangeListener); overload; virtual;
    function getPropertyChangeListeners(): Arr1JBPropertyChangeListener; overload; virtual;
    procedure addPropertyChangeListener(para1: JLString; para2: JBPropertyChangeListener); overload; virtual;
    procedure removePropertyChangeListener(para1: JLString; para2: JBPropertyChangeListener); overload; virtual;
    function getPropertyChangeListeners(para1: JLString): Arr1JBPropertyChangeListener; overload; virtual;
  strict protected
    procedure firePropertyChange(para1: JLString; para2: JLObject; para3: JLObject); overload; virtual;
    procedure firePropertyChange(para1: JLString; para2: jboolean; para3: jboolean); overload; virtual;
    procedure firePropertyChange(para1: JLString; para2: jint; para3: jint); overload; virtual;
  public
    procedure firePropertyChange(para1: JLString; para2: jbyte; para3: jbyte); overload; virtual;
    procedure firePropertyChange(para1: JLString; para2: jchar; para3: jchar); overload; virtual;
    procedure firePropertyChange(para1: JLString; para2: jshort; para3: jshort); overload; virtual;
    procedure firePropertyChange(para1: JLString; para2: jlong; para3: jlong); overload; virtual;
    procedure firePropertyChange(para1: JLString; para2: jfloat; para3: jfloat); overload; virtual;
    procedure firePropertyChange(para1: JLString; para2: jdouble; para3: jdouble); overload; virtual;
    procedure setComponentOrientation(para1: JAComponentOrientation); overload; virtual;
    function getComponentOrientation(): JAComponentOrientation; overload; virtual;
    procedure applyComponentOrientation(para1: JAComponentOrientation); overload; virtual;
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JAImageMediaEntry = class external 'java.awt' name 'ImageMediaEntry' (JAMediaEntry, JAIImageObserver, JISerializable)
  public
    function imageUpdate(para1: JAImage; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint): jboolean; overload; virtual;
  end;

  JSDebugGraphicsObserver = class external 'javax.swing' name 'DebugGraphicsObserver' (JLObject, JAIImageObserver)
  public
    function imageUpdate(para1: JAImage; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint): jboolean; overload; virtual;
  end;

  JAIFilteredImageSource = class external 'java.awt.image' name 'FilteredImageSource' (JLObject, JAIImageProducer)
  public
    constructor create(para1: JAIImageProducer; para2: JAIImageFilter); overload;
    procedure addConsumer(para1: JAIImageConsumer); overload; virtual;
    function isConsumer(para1: JAIImageConsumer): jboolean; overload; virtual;
    procedure removeConsumer(para1: JAIImageConsumer); overload; virtual;
    procedure startProduction(para1: JAIImageConsumer); overload; virtual;
    procedure requestTopDownLeftRightResend(para1: JAIImageConsumer); overload; virtual;
  end;

  JAIMemoryImageSource = class external 'java.awt.image' name 'MemoryImageSource' (JLObject, JAIImageProducer)
  public
    constructor create(para1: jint; para2: jint; para3: JAIColorModel; para4: Arr1jbyte; para5: jint; para6: jint); overload;
    constructor create(para1: jint; para2: jint; para3: JAIColorModel; const para4: array of jbyte; para5: jint; para6: jint); overload;
    constructor create(para1: jint; para2: jint; para3: JAIColorModel; para4: Arr1jbyte; para5: jint; para6: jint; para7: JUHashtable); overload;
    constructor create(para1: jint; para2: jint; para3: JAIColorModel; const para4: array of jbyte; para5: jint; para6: jint; para7: JUHashtable); overload;
    constructor create(para1: jint; para2: jint; para3: JAIColorModel; para4: Arr1jint; para5: jint; para6: jint); overload;
    constructor create(para1: jint; para2: jint; para3: JAIColorModel; const para4: array of jint; para5: jint; para6: jint); overload;
    constructor create(para1: jint; para2: jint; para3: JAIColorModel; para4: Arr1jint; para5: jint; para6: jint; para7: JUHashtable); overload;
    constructor create(para1: jint; para2: jint; para3: JAIColorModel; const para4: array of jint; para5: jint; para6: jint; para7: JUHashtable); overload;
    constructor create(para1: jint; para2: jint; para3: Arr1jint; para4: jint; para5: jint); overload;
    constructor create(para1: jint; para2: jint; const para3: array of jint; para4: jint; para5: jint); overload;
    constructor create(para1: jint; para2: jint; para3: Arr1jint; para4: jint; para5: jint; para6: JUHashtable); overload;
    constructor create(para1: jint; para2: jint; const para3: array of jint; para4: jint; para5: jint; para6: JUHashtable); overload;
    procedure addConsumer(para1: JAIImageConsumer); overload; virtual;
    function isConsumer(para1: JAIImageConsumer): jboolean; overload; virtual;
    procedure removeConsumer(para1: JAIImageConsumer); overload; virtual;
    procedure startProduction(para1: JAIImageConsumer); overload; virtual;
    procedure requestTopDownLeftRightResend(para1: JAIImageConsumer); overload; virtual;
    procedure setAnimated(para1: jboolean); overload; virtual;
    procedure setFullBufferUpdates(para1: jboolean); overload; virtual;
    procedure newPixels(); overload; virtual;
    procedure newPixels(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure newPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: jboolean); overload; virtual;
    procedure newPixels(para1: Arr1jbyte; para2: JAIColorModel; para3: jint; para4: jint); overload; virtual;
    procedure newPixels(var para1: array of jbyte; para2: JAIColorModel; para3: jint; para4: jint); overload; virtual;
    procedure newPixels(para1: Arr1jint; para2: JAIColorModel; para3: jint; para4: jint); overload; virtual;
    procedure newPixels(var para1: array of jint; para2: JAIColorModel; para3: jint; para4: jint); overload; virtual;
  end;

  JSCSyntheticImage = class abstract external 'javax.swing.colorchooser' name 'SyntheticImage' (JLObject, JAIImageProducer)
  strict protected
    var
      fwidth: jint; external name 'width';
      fheight: jint; external name 'height';
  public
    const
      pixMask = 255;
  strict protected
    var
      faborted: jboolean; external name 'aborted';
  strict protected
    constructor create(); overload;
    constructor create(para1: jint; para2: jint); overload;
    procedure computeRow(para1: jint; para2: Arr1jint); overload; virtual;
    procedure computeRow(para1: jint; var para2: array of jint); overload; virtual;
  public
    procedure addConsumer(para1: JAIImageConsumer); overload; virtual;
    function isConsumer(para1: JAIImageConsumer): jboolean; overload; virtual;
    procedure removeConsumer(para1: JAIImageConsumer); overload; virtual;
    procedure startProduction(para1: JAIImageConsumer); overload; virtual;
  strict protected
    function isStatic(): jboolean; overload; virtual;
  public
    procedure nextFrame(para1: jint); overload; virtual;
    procedure requestTopDownLeftRightResend(para1: JAIImageConsumer); overload; virtual;
  end;

  JAIByteLookupTable = class external 'java.awt.image' name 'ByteLookupTable' (JAILookupTable)
  public
    constructor create(para1: jint; para2: Arr2jbyte); overload;
    constructor create(para1: jint; para2: Arr1jbyte); overload;
    constructor create(para1: jint; const para2: array of jbyte); overload;
    function getTable(): Arr2jbyte; overload; virtual; final;
    function lookupPixel(para1: Arr1jint; para2: Arr1jint): Arr1jint; overload; virtual;
    function lookupPixel(var para1: array of jint; var para2: array of jint): Arr1jint; overload; virtual;
    function lookupPixel(para1: Arr1jbyte; para2: Arr1jbyte): Arr1jbyte; overload; virtual;
    function lookupPixel(var para1: array of jbyte; var para2: array of jbyte): Arr1jbyte; overload; virtual;
  end;

  JAIShortLookupTable = class external 'java.awt.image' name 'ShortLookupTable' (JAILookupTable)
  public
    constructor create(para1: jint; para2: Arr2jshort); overload;
    constructor create(para1: jint; para2: Arr1jshort); overload;
    constructor create(para1: jint; const para2: array of jshort); overload;
    function getTable(): Arr2jshort; overload; virtual; final;
    function lookupPixel(para1: Arr1jint; para2: Arr1jint): Arr1jint; overload; virtual;
    function lookupPixel(var para1: array of jint; var para2: array of jint): Arr1jint; overload; virtual;
    function lookupPixel(para1: Arr1jshort; para2: Arr1jshort): Arr1jshort; overload; virtual;
    function lookupPixel(var para1: array of jshort; var para2: array of jshort): Arr1jshort; overload; virtual;
  end;

  JAIWritableRaster = class external 'java.awt.image' name 'WritableRaster' (JAIRaster)
  strict protected
    constructor create(para1: JAISampleModel; para2: JAPoint); overload;
    constructor create(para1: JAISampleModel; para2: JAIDataBuffer; para3: JAPoint); overload;
    constructor create(para1: JAISampleModel; para2: JAIDataBuffer; para3: JARectangle; para4: JAPoint; para5: JAIWritableRaster); overload;
  public
    function getWritableParent(): JAIWritableRaster; overload; virtual;
    function createWritableTranslatedChild(para1: jint; para2: jint): JAIWritableRaster; overload; virtual;
    function createWritableChild(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: Arr1jint): JAIWritableRaster; overload; virtual;
    function createWritableChild(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; var para7: array of jint): JAIWritableRaster; overload; virtual;
    procedure setDataElements(para1: jint; para2: jint; para3: JLObject); overload; virtual;
    procedure setDataElements(para1: jint; para2: jint; para3: JAIRaster); overload; virtual;
    procedure setDataElements(para1: jint; para2: jint; para3: jint; para4: jint; para5: JLObject); overload; virtual;
    procedure setRect(para1: JAIRaster); overload; virtual;
    procedure setRect(para1: jint; para2: jint; para3: JAIRaster); overload; virtual;
    procedure setPixel(para1: jint; para2: jint; para3: Arr1jint); overload; virtual;
    procedure setPixel(para1: jint; para2: jint; var para3: array of jint); overload; virtual;
    procedure setPixel(para1: jint; para2: jint; para3: Arr1jfloat); overload; virtual;
    procedure setPixel(para1: jint; para2: jint; var para3: array of jfloat); overload; virtual;
    procedure setPixel(para1: jint; para2: jint; para3: Arr1jdouble); overload; virtual;
    procedure setPixel(para1: jint; para2: jint; var para3: array of jdouble); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jint); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; var para5: array of jint); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jfloat); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; var para5: array of jfloat); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jdouble); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; var para5: array of jdouble); overload; virtual;
    procedure setSample(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure setSample(para1: jint; para2: jint; para3: jint; para4: jfloat); overload; virtual;
    procedure setSample(para1: jint; para2: jint; para3: jint; para4: jdouble); overload; virtual;
    procedure setSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: Arr1jint); overload; virtual;
    procedure setSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; var para6: array of jint); overload; virtual;
    procedure setSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: Arr1jfloat); overload; virtual;
    procedure setSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; var para6: array of jfloat); overload; virtual;
    procedure setSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: Arr1jdouble); overload; virtual;
    procedure setSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; var para6: array of jdouble); overload; virtual;
  end;

  JAIAffineTransformOp = class external 'java.awt.image' name 'AffineTransformOp' (JLObject, JAIBufferedImageOp, JAIRasterOp)
  public
    const
      TYPE_NEAREST_NEIGHBOR = 1;
      TYPE_BILINEAR = 2;
      TYPE_BICUBIC = 3;
  public
    constructor create(para1: JAGAffineTransform; para2: JARenderingHints); overload;
    constructor create(para1: JAGAffineTransform; para2: jint); overload;
    function getInterpolationType(): jint; overload; virtual; final;
    function filter(para1: JAIBufferedImage; para2: JAIBufferedImage): JAIBufferedImage; overload; virtual; final;
    function filter(para1: JAIRaster; para2: JAIWritableRaster): JAIWritableRaster; overload; virtual; final;
    function getBounds2D(para1: JAIBufferedImage): JAGRectangle2D; overload; virtual; final;
    function getBounds2D(para1: JAIRaster): JAGRectangle2D; overload; virtual; final;
    function createCompatibleDestImage(para1: JAIBufferedImage; para2: JAIColorModel): JAIBufferedImage; overload; virtual;
    function createCompatibleDestRaster(para1: JAIRaster): JAIWritableRaster; overload; virtual;
    function getPoint2D(para1: JAGPoint2D; para2: JAGPoint2D): JAGPoint2D; overload; virtual; final;
    function getTransform(): JAGAffineTransform; overload; virtual; final;
    function getRenderingHints(): JARenderingHints; overload; virtual; final;
  end;

  JAIBandCombineOp = class external 'java.awt.image' name 'BandCombineOp' (JLObject, JAIRasterOp)
  public
    constructor create(para1: Arr2jfloat; para2: JARenderingHints); overload;
    function getMatrix(): Arr2jfloat; overload; virtual; final;
    function filter(para1: JAIRaster; para2: JAIWritableRaster): JAIWritableRaster; overload; virtual;
    function getBounds2D(para1: JAIRaster): JAGRectangle2D; overload; virtual; final;
    function createCompatibleDestRaster(para1: JAIRaster): JAIWritableRaster; overload; virtual;
    function getPoint2D(para1: JAGPoint2D; para2: JAGPoint2D): JAGPoint2D; overload; virtual; final;
    function getRenderingHints(): JARenderingHints; overload; virtual; final;
  end;

  JAIColorConvertOp = class external 'java.awt.image' name 'ColorConvertOp' (JLObject, JAIBufferedImageOp, JAIRasterOp)
  public
    constructor create(para1: JARenderingHints); overload;
    constructor create(para1: JACColorSpace; para2: JARenderingHints); overload;
    constructor create(para1: JACColorSpace; para2: JACColorSpace; para3: JARenderingHints); overload;
    constructor create(para1: Arr1JACICC_Profile; para2: JARenderingHints); overload;
    constructor create(const para1: array of JACICC_Profile; para2: JARenderingHints); overload;
    function getICC_Profiles(): Arr1JACICC_Profile; overload; virtual; final;
    function filter(para1: JAIBufferedImage; para2: JAIBufferedImage): JAIBufferedImage; overload; virtual; final;
    function filter(para1: JAIRaster; para2: JAIWritableRaster): JAIWritableRaster; overload; virtual; final;
    function getBounds2D(para1: JAIBufferedImage): JAGRectangle2D; overload; virtual; final;
    function getBounds2D(para1: JAIRaster): JAGRectangle2D; overload; virtual; final;
    function createCompatibleDestImage(para1: JAIBufferedImage; para2: JAIColorModel): JAIBufferedImage; overload; virtual;
    function createCompatibleDestRaster(para1: JAIRaster): JAIWritableRaster; overload; virtual;
    function getPoint2D(para1: JAGPoint2D; para2: JAGPoint2D): JAGPoint2D; overload; virtual; final;
    function getRenderingHints(): JARenderingHints; overload; virtual; final;
  end;

  JAIConvolveOp = class external 'java.awt.image' name 'ConvolveOp' (JLObject, JAIBufferedImageOp, JAIRasterOp)
  public
    const
      EDGE_ZERO_FILL = 0;
      EDGE_NO_OP = 1;
  public
    constructor create(para1: JAIKernel; para2: jint; para3: JARenderingHints); overload;
    constructor create(para1: JAIKernel); overload;
    function getEdgeCondition(): jint; overload; virtual;
    function getKernel(): JAIKernel; overload; virtual; final;
    function filter(para1: JAIBufferedImage; para2: JAIBufferedImage): JAIBufferedImage; overload; virtual; final;
    function filter(para1: JAIRaster; para2: JAIWritableRaster): JAIWritableRaster; overload; virtual; final;
    function createCompatibleDestImage(para1: JAIBufferedImage; para2: JAIColorModel): JAIBufferedImage; overload; virtual;
    function createCompatibleDestRaster(para1: JAIRaster): JAIWritableRaster; overload; virtual;
    function getBounds2D(para1: JAIBufferedImage): JAGRectangle2D; overload; virtual; final;
    function getBounds2D(para1: JAIRaster): JAGRectangle2D; overload; virtual; final;
    function getPoint2D(para1: JAGPoint2D; para2: JAGPoint2D): JAGPoint2D; overload; virtual; final;
    function getRenderingHints(): JARenderingHints; overload; virtual; final;
  end;

  JAILookupOp = class external 'java.awt.image' name 'LookupOp' (JLObject, JAIBufferedImageOp, JAIRasterOp)
  public
    constructor create(para1: JAILookupTable; para2: JARenderingHints); overload;
    function getTable(): JAILookupTable; overload; virtual; final;
    function filter(para1: JAIBufferedImage; para2: JAIBufferedImage): JAIBufferedImage; overload; virtual; final;
    function filter(para1: JAIRaster; para2: JAIWritableRaster): JAIWritableRaster; overload; virtual; final;
    function getBounds2D(para1: JAIBufferedImage): JAGRectangle2D; overload; virtual; final;
    function getBounds2D(para1: JAIRaster): JAGRectangle2D; overload; virtual; final;
    function createCompatibleDestImage(para1: JAIBufferedImage; para2: JAIColorModel): JAIBufferedImage; overload; virtual;
    function createCompatibleDestRaster(para1: JAIRaster): JAIWritableRaster; overload; virtual;
    function getPoint2D(para1: JAGPoint2D; para2: JAGPoint2D): JAGPoint2D; overload; virtual; final;
    function getRenderingHints(): JARenderingHints; overload; virtual; final;
  end;

  JAIRescaleOp = class external 'java.awt.image' name 'RescaleOp' (JLObject, JAIBufferedImageOp, JAIRasterOp)
  public
    constructor create(para1: Arr1jfloat; para2: Arr1jfloat; para3: JARenderingHints); overload;
    constructor create(const para1: array of jfloat; const para2: array of jfloat; para3: JARenderingHints); overload;
    constructor create(para1: jfloat; para2: jfloat; para3: JARenderingHints); overload;
    function getScaleFactors(para1: Arr1jfloat): Arr1jfloat; overload; virtual; final;
    function getScaleFactors(var para1: array of jfloat): Arr1jfloat; overload; virtual; final;
    function getOffsets(para1: Arr1jfloat): Arr1jfloat; overload; virtual; final;
    function getOffsets(var para1: array of jfloat): Arr1jfloat; overload; virtual; final;
    function getNumFactors(): jint; overload; virtual; final;
    function filter(para1: JAIBufferedImage; para2: JAIBufferedImage): JAIBufferedImage; overload; virtual; final;
    function filter(para1: JAIRaster; para2: JAIWritableRaster): JAIWritableRaster; overload; virtual; final;
    function getBounds2D(para1: JAIBufferedImage): JAGRectangle2D; overload; virtual; final;
    function getBounds2D(para1: JAIRaster): JAGRectangle2D; overload; virtual; final;
    function createCompatibleDestImage(para1: JAIBufferedImage; para2: JAIColorModel): JAIBufferedImage; overload; virtual;
    function createCompatibleDestRaster(para1: JAIRaster): JAIWritableRaster; overload; virtual;
    function getPoint2D(para1: JAGPoint2D; para2: JAGPoint2D): JAGPoint2D; overload; virtual; final;
    function getRenderingHints(): JARenderingHints; overload; virtual; final;
  end;

  JAIWritableRenderedImage = interface external 'java.awt.image' name 'WritableRenderedImage' (JAIRenderedImage)
    procedure addTileObserver(para1: JAITileObserver); overload;
    procedure removeTileObserver(para1: JAITileObserver); overload;
    function getWritableTile(para1: jint; para2: jint): JAIWritableRaster; overload;
    procedure releaseWritableTile(para1: jint; para2: jint); overload;
    function isTileWritable(para1: jint; para2: jint): jboolean; overload;
    function getWritableTileIndices(): Arr1JAPoint; overload;
    function hasTileWriters(): jboolean; overload;
    procedure setData(para1: JAIRaster); overload;
  end;

  JAIComponentSampleModel = class external 'java.awt.image' name 'ComponentSampleModel' (JAISampleModel)
  strict protected
    var
      fbandOffsets: Arr1jint; external name 'bandOffsets';
      fbankIndices: Arr1jint; external name 'bankIndices';
      fnumBands: jint; external name 'numBands';
      fnumBanks: jint; external name 'numBanks';
      fscanlineStride: jint; external name 'scanlineStride';
      fpixelStride: jint; external name 'pixelStride';
  public
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: Arr1jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; const para6: array of jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: Arr1jint; para7: Arr1jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; const para6: array of jint; const para7: array of jint); overload;
    function createCompatibleSampleModel(para1: jint; para2: jint): JAISampleModel; overload; virtual;
    function createSubsetSampleModel(para1: Arr1jint): JAISampleModel; overload; virtual;
    function createSubsetSampleModel(var para1: array of jint): JAISampleModel; overload; virtual;
    function createDataBuffer(): JAIDataBuffer; overload; virtual;
    function getOffset(para1: jint; para2: jint): jint; overload; virtual;
    function getOffset(para1: jint; para2: jint; para3: jint): jint; overload; virtual;
    function getSampleSize(): Arr1jint; overload; virtual; final;
    function getSampleSize(para1: jint): jint; overload; virtual; final;
    function getBankIndices(): Arr1jint; overload; virtual; final;
    function getBandOffsets(): Arr1jint; overload; virtual; final;
    function getScanlineStride(): jint; overload; virtual; final;
    function getPixelStride(): jint; overload; virtual; final;
    function getNumDataElements(): jint; overload; virtual; final;
    function getDataElements(para1: jint; para2: jint; para3: JLObject; para4: JAIDataBuffer): JLObject; overload; virtual;
    function getPixel(para1: jint; para2: jint; para3: Arr1jint; para4: JAIDataBuffer): Arr1jint; overload; virtual;
    function getPixel(para1: jint; para2: jint; var para3: array of jint; para4: JAIDataBuffer): Arr1jint; overload; virtual;
    function getPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jint; para6: JAIDataBuffer): Arr1jint; overload; virtual;
    function getPixels(para1: jint; para2: jint; para3: jint; para4: jint; var para5: array of jint; para6: JAIDataBuffer): Arr1jint; overload; virtual;
    function getSample(para1: jint; para2: jint; para3: jint; para4: JAIDataBuffer): jint; overload; virtual;
    function getSampleFloat(para1: jint; para2: jint; para3: jint; para4: JAIDataBuffer): jfloat; overload; virtual;
    function getSampleDouble(para1: jint; para2: jint; para3: jint; para4: JAIDataBuffer): jdouble; overload; virtual;
    function getSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: Arr1jint; para7: JAIDataBuffer): Arr1jint; overload; virtual;
    function getSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; var para6: array of jint; para7: JAIDataBuffer): Arr1jint; overload; virtual;
    procedure setDataElements(para1: jint; para2: jint; para3: JLObject; para4: JAIDataBuffer); overload; virtual;
    procedure setPixel(para1: jint; para2: jint; para3: Arr1jint; para4: JAIDataBuffer); overload; virtual;
    procedure setPixel(para1: jint; para2: jint; var para3: array of jint; para4: JAIDataBuffer); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jint; para6: JAIDataBuffer); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; var para5: array of jint; para6: JAIDataBuffer); overload; virtual;
    procedure setSample(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIDataBuffer); overload; virtual;
    procedure setSample(para1: jint; para2: jint; para3: jint; para4: jfloat; para5: JAIDataBuffer); overload; virtual;
    procedure setSample(para1: jint; para2: jint; para3: jint; para4: jdouble; para5: JAIDataBuffer); overload; virtual;
    procedure setSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: Arr1jint; para7: JAIDataBuffer); overload; virtual;
    procedure setSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; var para6: array of jint; para7: JAIDataBuffer); overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JAIMultiPixelPackedSampleModel = class external 'java.awt.image' name 'MultiPixelPackedSampleModel' (JAISampleModel)
  public
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
    function createCompatibleSampleModel(para1: jint; para2: jint): JAISampleModel; overload; virtual;
    function createDataBuffer(): JAIDataBuffer; overload; virtual;
    function getNumDataElements(): jint; overload; virtual;
    function getSampleSize(): Arr1jint; overload; virtual;
    function getSampleSize(para1: jint): jint; overload; virtual;
    function getOffset(para1: jint; para2: jint): jint; overload; virtual;
    function getBitOffset(para1: jint): jint; overload; virtual;
    function getScanlineStride(): jint; overload; virtual;
    function getPixelBitStride(): jint; overload; virtual;
    function getDataBitOffset(): jint; overload; virtual;
    function getTransferType(): jint; overload; virtual;
    function createSubsetSampleModel(para1: Arr1jint): JAISampleModel; overload; virtual;
    function createSubsetSampleModel(var para1: array of jint): JAISampleModel; overload; virtual;
    function getSample(para1: jint; para2: jint; para3: jint; para4: JAIDataBuffer): jint; overload; virtual;
    procedure setSample(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIDataBuffer); overload; virtual;
    function getDataElements(para1: jint; para2: jint; para3: JLObject; para4: JAIDataBuffer): JLObject; overload; virtual;
    function getPixel(para1: jint; para2: jint; para3: Arr1jint; para4: JAIDataBuffer): Arr1jint; overload; virtual;
    function getPixel(para1: jint; para2: jint; var para3: array of jint; para4: JAIDataBuffer): Arr1jint; overload; virtual;
    procedure setDataElements(para1: jint; para2: jint; para3: JLObject; para4: JAIDataBuffer); overload; virtual;
    procedure setPixel(para1: jint; para2: jint; para3: Arr1jint; para4: JAIDataBuffer); overload; virtual;
    procedure setPixel(para1: jint; para2: jint; var para3: array of jint; para4: JAIDataBuffer); overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JAISinglePixelPackedSampleModel = class external 'java.awt.image' name 'SinglePixelPackedSampleModel' (JAISampleModel)
  public
    constructor create(para1: jint; para2: jint; para3: jint; para4: Arr1jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; const para4: array of jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; const para5: array of jint); overload;
    function getNumDataElements(): jint; overload; virtual;
    function createCompatibleSampleModel(para1: jint; para2: jint): JAISampleModel; overload; virtual;
    function createDataBuffer(): JAIDataBuffer; overload; virtual;
    function getSampleSize(): Arr1jint; overload; virtual;
    function getSampleSize(para1: jint): jint; overload; virtual;
    function getOffset(para1: jint; para2: jint): jint; overload; virtual;
    function getBitOffsets(): Arr1jint; overload; virtual;
    function getBitMasks(): Arr1jint; overload; virtual;
    function getScanlineStride(): jint; overload; virtual;
    function createSubsetSampleModel(para1: Arr1jint): JAISampleModel; overload; virtual;
    function createSubsetSampleModel(var para1: array of jint): JAISampleModel; overload; virtual;
    function getDataElements(para1: jint; para2: jint; para3: JLObject; para4: JAIDataBuffer): JLObject; overload; virtual;
    function getPixel(para1: jint; para2: jint; para3: Arr1jint; para4: JAIDataBuffer): Arr1jint; overload; virtual;
    function getPixel(para1: jint; para2: jint; var para3: array of jint; para4: JAIDataBuffer): Arr1jint; overload; virtual;
    function getPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jint; para6: JAIDataBuffer): Arr1jint; overload; virtual;
    function getPixels(para1: jint; para2: jint; para3: jint; para4: jint; var para5: array of jint; para6: JAIDataBuffer): Arr1jint; overload; virtual;
    function getSample(para1: jint; para2: jint; para3: jint; para4: JAIDataBuffer): jint; overload; virtual;
    function getSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: Arr1jint; para7: JAIDataBuffer): Arr1jint; overload; virtual;
    function getSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; var para6: array of jint; para7: JAIDataBuffer): Arr1jint; overload; virtual;
    procedure setDataElements(para1: jint; para2: jint; para3: JLObject; para4: JAIDataBuffer); overload; virtual;
    procedure setPixel(para1: jint; para2: jint; para3: Arr1jint; para4: JAIDataBuffer); overload; virtual;
    procedure setPixel(para1: jint; para2: jint; var para3: array of jint; para4: JAIDataBuffer); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jint; para6: JAIDataBuffer); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; var para5: array of jint; para6: JAIDataBuffer); overload; virtual;
    procedure setSample(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIDataBuffer); overload; virtual;
    procedure setSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: Arr1jint; para7: JAIDataBuffer); overload; virtual;
    procedure setSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; var para6: array of jint; para7: JAIDataBuffer); overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JAIRRenderableImageOp = class external 'java.awt.image.renderable' name 'RenderableImageOp' (JLObject, JAIRRenderableImage)
  public
    constructor create(para1: JAIRContextualRenderedImageFactory; para2: JAIRParameterBlock); overload;
    function getSources(): JUVector; overload; virtual;
    function getProperty(para1: JLString): JLObject; overload; virtual;
    function getPropertyNames(): Arr1JLString; overload; virtual;
    function isDynamic(): jboolean; overload; virtual;
    function getWidth(): jfloat; overload; virtual;
    function getHeight(): jfloat; overload; virtual;
    function getMinX(): jfloat; overload; virtual;
    function getMinY(): jfloat; overload; virtual;
    function setParameterBlock(para1: JAIRParameterBlock): JAIRParameterBlock; overload; virtual;
    function getParameterBlock(): JAIRParameterBlock; overload; virtual;
    function createScaledRendering(para1: jint; para2: jint; para3: JARenderingHints): JAIRenderedImage; overload; virtual;
    function createDefaultRendering(): JAIRenderedImage; overload; virtual;
    function createRendering(para1: JAIRRenderContext): JAIRenderedImage; overload; virtual;
  end;

  JAIRContextualRenderedImageFactory = interface external 'java.awt.image.renderable' name 'ContextualRenderedImageFactory' (JAIRRenderedImageFactory)
    function mapRenderContext(para1: jint; para2: JAIRRenderContext; para3: JAIRParameterBlock; para4: JAIRRenderableImage): JAIRRenderContext; overload;
    function create_(para1: JAIRRenderContext; para2: JAIRParameterBlock): JAIRenderedImage; external name 'create'; overload;
    function getBounds2D(para1: JAIRParameterBlock): JAGRectangle2D; overload;
    function getProperty(para1: JAIRParameterBlock; para2: JLString): JLObject; overload;
    function getPropertyNames(): Arr1JLString; overload;
    function isDynamic(): jboolean; overload;
  end;

  JAPMenuBarPeer = interface external 'java.awt.peer' name 'MenuBarPeer' (JAPMenuComponentPeer)
    procedure addMenu(para1: JAMenu); overload;
    procedure delMenu(para1: jint); overload;
    procedure addHelpMenu(para1: JAMenu); overload;
  end;

  JAPMenuItemPeer = interface external 'java.awt.peer' name 'MenuItemPeer' (JAPMenuComponentPeer)
    procedure setLabel(para1: JLString); overload;
    procedure setEnabled(para1: jboolean); overload;
    procedure enable(); overload;
    procedure disable(); overload;
  end;

  JAPBook = class external 'java.awt.print' name 'Book' (JLObject, JAPPageable)
  public
    type
      InnerBookPage = class;
      Arr1InnerBookPage = array of InnerBookPage;
      Arr2InnerBookPage = array of Arr1InnerBookPage;
      Arr3InnerBookPage = array of Arr2InnerBookPage;
      InnerBookPage = class external 'java.awt.print' name 'BookPage' 
      end;

  public
    constructor create(); overload;
    function getNumberOfPages(): jint; overload; virtual;
    function getPageFormat(para1: jint): JAPPageFormat; overload; virtual;  // throws java.lang.IndexOutOfBoundsException
    function getPrintable(para1: jint): JAPPrintable; overload; virtual;  // throws java.lang.IndexOutOfBoundsException
    procedure setPage(para1: jint; para2: JAPPrintable; para3: JAPPageFormat); overload; virtual;  // throws java.lang.IndexOutOfBoundsException
    procedure append(para1: JAPPrintable; para2: JAPPageFormat); overload; virtual;
    procedure append(para1: JAPPrintable; para2: JAPPageFormat; para3: jint); overload; virtual;
  end;

  JBSimpleBeanInfo = class external 'java.beans' name 'SimpleBeanInfo' (JLObject, JBBeanInfo)
  public
    constructor create(); overload;
    function getBeanDescriptor(): JBBeanDescriptor; overload; virtual;
    function getPropertyDescriptors(): Arr1JBPropertyDescriptor; overload; virtual;
    function getDefaultPropertyIndex(): jint; overload; virtual;
    function getEventSetDescriptors(): Arr1JBEventSetDescriptor; overload; virtual;
    function getDefaultEventIndex(): jint; overload; virtual;
    function getMethodDescriptors(): Arr1JBMethodDescriptor; overload; virtual;
    function getAdditionalBeanInfo(): Arr1JBBeanInfo; overload; virtual;
    function getIcon(para1: jint): JAImage; overload; virtual;
    function loadImage(para1: JLString): JAImage; overload; virtual;
  end;

  JBBBeanContextServiceProviderBeanInfo = interface external 'java.beans.beancontext' name 'BeanContextServiceProviderBeanInfo' (JBBeanInfo)
    function getServicesBeanInfo(): Arr1JBBeanInfo; overload;
  end;

  JBXMLEncoder = class external 'java.beans' name 'XMLEncoder' (JBEncoder)
  public
    type
      InnerValueData = class;
      Arr1InnerValueData = array of InnerValueData;
      Arr2InnerValueData = array of Arr1InnerValueData;
      Arr3InnerValueData = array of Arr2InnerValueData;
      InnerValueData = class external 'java.beans' name 'ValueData' 
      end;

  public
    constructor create(para1: JIOutputStream); overload;
    procedure setOwner(para1: JLObject); overload; virtual;
    function getOwner(): JLObject; overload; virtual;
    procedure writeObject(para1: JLObject); overload; virtual;
    procedure writeStatement(para1: JBStatement); overload; virtual;
    procedure writeExpression(para1: JBExpression); overload; virtual;
    procedure flush(); overload; virtual;
    procedure close(); overload; virtual;
  end;

  JBBeanDescriptor = class external 'java.beans' name 'BeanDescriptor' (JBFeatureDescriptor)
  public
    constructor create(para1: JLClass); overload;
    constructor create(para1: JLClass; para2: JLClass); overload;
    function getBeanClass(): JLClass; overload; virtual;
    function getCustomizerClass(): JLClass; overload; virtual;
  end;

  JBEventSetDescriptor = class external 'java.beans' name 'EventSetDescriptor' (JBFeatureDescriptor)
  public
    constructor create(para1: JLClass; para2: JLString; para3: JLClass; para4: JLString); overload;  // throws java.beans.IntrospectionException
    constructor create(para1: JLClass; para2: JLString; para3: JLClass; para4: Arr1JLString; para5: JLString; para6: JLString); overload;  // throws java.beans.IntrospectionException
    constructor create(para1: JLClass; para2: JLString; para3: JLClass; const para4: array of JLString; para5: JLString; para6: JLString); overload;  // throws java.beans.IntrospectionException
    constructor create(para1: JLClass; para2: JLString; para3: JLClass; para4: Arr1JLString; para5: JLString; para6: JLString; para7: JLString); overload;  // throws java.beans.IntrospectionException
    constructor create(para1: JLClass; para2: JLString; para3: JLClass; const para4: array of JLString; para5: JLString; para6: JLString; para7: JLString); overload;  // throws java.beans.IntrospectionException
    constructor create(para1: JLString; para2: JLClass; para3: Arr1JLRMethod; para4: JLRMethod; para5: JLRMethod); overload;  // throws java.beans.IntrospectionException
    constructor create(para1: JLString; para2: JLClass; const para3: array of JLRMethod; para4: JLRMethod; para5: JLRMethod); overload;  // throws java.beans.IntrospectionException
    constructor create(para1: JLString; para2: JLClass; para3: Arr1JLRMethod; para4: JLRMethod; para5: JLRMethod; para6: JLRMethod); overload;  // throws java.beans.IntrospectionException
    constructor create(para1: JLString; para2: JLClass; const para3: array of JLRMethod; para4: JLRMethod; para5: JLRMethod; para6: JLRMethod); overload;  // throws java.beans.IntrospectionException
    constructor create(para1: JLString; para2: JLClass; para3: Arr1JBMethodDescriptor; para4: JLRMethod; para5: JLRMethod); overload;  // throws java.beans.IntrospectionException
    constructor create(para1: JLString; para2: JLClass; const para3: array of JBMethodDescriptor; para4: JLRMethod; para5: JLRMethod); overload;  // throws java.beans.IntrospectionException
    function getListenerType(): JLClass; overload; virtual;
    function getListenerMethods(): Arr1JLRMethod; overload; virtual;
    function getListenerMethodDescriptors(): Arr1JBMethodDescriptor; overload; virtual;
    function getAddListenerMethod(): JLRMethod; overload; virtual;
    function getRemoveListenerMethod(): JLRMethod; overload; virtual;
    function getGetListenerMethod(): JLRMethod; overload; virtual;
    procedure setUnicast(para1: jboolean); overload; virtual;
    function isUnicast(): jboolean; overload; virtual;
    procedure setInDefaultEventSet(para1: jboolean); overload; virtual;
    function isInDefaultEventSet(): jboolean; overload; virtual;
  end;

  JBMethodDescriptor = class external 'java.beans' name 'MethodDescriptor' (JBFeatureDescriptor)
  public
    constructor create(para1: JLRMethod); overload;
    constructor create(para1: JLRMethod; para2: Arr1JBParameterDescriptor); overload;
    constructor create(para1: JLRMethod; const para2: array of JBParameterDescriptor); overload;
    function getMethod(): JLRMethod; overload; virtual;
    function getParameterDescriptors(): Arr1JBParameterDescriptor; overload; virtual;
  end;

  JBParameterDescriptor = class external 'java.beans' name 'ParameterDescriptor' (JBFeatureDescriptor)
  public
    constructor create(); overload;
  end;

  JBPropertyDescriptor = class external 'java.beans' name 'PropertyDescriptor' (JBFeatureDescriptor)
  public
    constructor create(para1: JLString; para2: JLClass); overload;  // throws java.beans.IntrospectionException
    constructor create(para1: JLString; para2: JLClass; para3: JLString; para4: JLString); overload;  // throws java.beans.IntrospectionException
    constructor create(para1: JLString; para2: JLRMethod; para3: JLRMethod); overload;  // throws java.beans.IntrospectionException
    function getPropertyType(): JLClass; overload; virtual;
    function getReadMethod(): JLRMethod; overload; virtual;
    procedure setReadMethod(para1: JLRMethod); overload; virtual;  // throws java.beans.IntrospectionException
    function getWriteMethod(): JLRMethod; overload; virtual;
    procedure setWriteMethod(para1: JLRMethod); overload; virtual;  // throws java.beans.IntrospectionException
    function isBound(): jboolean; overload; virtual;
    procedure setBound(para1: jboolean); overload; virtual;
    function isConstrained(): jboolean; overload; virtual;
    procedure setConstrained(para1: jboolean); overload; virtual;
    procedure setPropertyEditorClass(para1: JLClass); overload; virtual;
    function getPropertyEditorClass(): JLClass; overload; virtual;
    function createPropertyEditor(para1: JLObject): JBPropertyEditor; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JBArrayPersistenceDelegate = class external 'java.beans' name 'ArrayPersistenceDelegate' (JBPersistenceDelegate)
  strict protected
    function mutatesTo(para1: JLObject; para2: JLObject): jboolean; overload; virtual;
    function instantiate(para1: JLObject; para2: JBEncoder): JBExpression; overload; virtual;
    procedure initialize(para1: JLClass; para2: JLObject; para3: JLObject; para4: JBEncoder); overload; virtual;
  end;

  JBDefaultPersistenceDelegate = class external 'java.beans' name 'DefaultPersistenceDelegate' (JBPersistenceDelegate)
  public
    constructor create(); overload;
    constructor create(para1: Arr1JLString); overload;
    constructor create(const para1: array of JLString); overload;
  strict protected
    function mutatesTo(para1: JLObject; para2: JLObject): jboolean; overload; virtual;
    function instantiate(para1: JLObject; para2: JBEncoder): JBExpression; overload; virtual;
    procedure initialize(para1: JLClass; para2: JLObject; para3: JLObject; para4: JBEncoder); overload; virtual;
  end;

  JBEnumPersistenceDelegate = class external 'java.beans' name 'EnumPersistenceDelegate' (JBPersistenceDelegate)
  strict protected
    function mutatesTo(para1: JLObject; para2: JLObject): jboolean; overload; virtual;
    function instantiate(para1: JLObject; para2: JBEncoder): JBExpression; overload; virtual;
  end;

  JBNullPersistenceDelegate = class external 'java.beans' name 'NullPersistenceDelegate' (JBPersistenceDelegate)
  strict protected
    procedure initialize(para1: JLClass; para2: JLObject; para3: JLObject; para4: JBEncoder); overload; virtual;
    function instantiate(para1: JLObject; para2: JBEncoder): JBExpression; overload; virtual;
  public
    procedure writeObject(para1: JLObject; para2: JBEncoder); overload; virtual;
  end;

  JBPrimitivePersistenceDelegate = class external 'java.beans' name 'PrimitivePersistenceDelegate' (JBPersistenceDelegate)
  strict protected
    function mutatesTo(para1: JLObject; para2: JLObject): jboolean; overload; virtual;
    function instantiate(para1: JLObject; para2: JBEncoder): JBExpression; overload; virtual;
  end;

  JBProxyPersistenceDelegate = class external 'java.beans' name 'ProxyPersistenceDelegate' (JBPersistenceDelegate)
  strict protected
    function instantiate(para1: JLObject; para2: JBEncoder): JBExpression; overload; virtual;
  end;

  JBStaticFieldsPersistenceDelegate = class external 'java.beans' name 'StaticFieldsPersistenceDelegate' (JBPersistenceDelegate)
  strict protected
    procedure installFields(para1: JBEncoder; para2: JLClass); overload; virtual;
    function instantiate(para1: JLObject; para2: JBEncoder): JBExpression; overload; virtual;
  public
    procedure writeObject(para1: JLObject; para2: JBEncoder); overload; virtual;
  end;

  JBjava_awt_Dimension_PersistenceDelegate = class sealed external 'java.beans' name 'java_awt_Dimension_PersistenceDelegate' (JBPersistenceDelegate)
  strict protected
    function mutatesTo(para1: JLObject; para2: JLObject): jboolean; overload; virtual;
    function instantiate(para1: JLObject; para2: JBEncoder): JBExpression; overload; virtual;
  end;

  JBjava_awt_GridBagConstraints_PersistenceDelegate = class sealed external 'java.beans' name 'java_awt_GridBagConstraints_PersistenceDelegate' (JBPersistenceDelegate)
  strict protected
    function instantiate(para1: JLObject; para2: JBEncoder): JBExpression; overload; virtual;
  end;

  JBjava_awt_Insets_PersistenceDelegate = class sealed external 'java.beans' name 'java_awt_Insets_PersistenceDelegate' (JBPersistenceDelegate)
  strict protected
    function mutatesTo(para1: JLObject; para2: JLObject): jboolean; overload; virtual;
    function instantiate(para1: JLObject; para2: JBEncoder): JBExpression; overload; virtual;
  end;

  JBjava_awt_MenuShortcut_PersistenceDelegate = class external 'java.beans' name 'java_awt_MenuShortcut_PersistenceDelegate' (JBPersistenceDelegate)
  strict protected
    function instantiate(para1: JLObject; para2: JBEncoder): JBExpression; overload; virtual;
  end;

  JBjava_awt_Point_PersistenceDelegate = class sealed external 'java.beans' name 'java_awt_Point_PersistenceDelegate' (JBPersistenceDelegate)
  strict protected
    function mutatesTo(para1: JLObject; para2: JLObject): jboolean; overload; virtual;
    function instantiate(para1: JLObject; para2: JBEncoder): JBExpression; overload; virtual;
  end;

  JBjava_awt_Rectangle_PersistenceDelegate = class sealed external 'java.beans' name 'java_awt_Rectangle_PersistenceDelegate' (JBPersistenceDelegate)
  strict protected
    function mutatesTo(para1: JLObject; para2: JLObject): jboolean; overload; virtual;
    function instantiate(para1: JLObject; para2: JBEncoder): JBExpression; overload; virtual;
  end;

  JBjava_lang_Class_PersistenceDelegate = class external 'java.beans' name 'java_lang_Class_PersistenceDelegate' (JBPersistenceDelegate)
  strict protected
    function instantiate(para1: JLObject; para2: JBEncoder): JBExpression; overload; virtual;
  end;

  JBjava_lang_String_PersistenceDelegate = class external 'java.beans' name 'java_lang_String_PersistenceDelegate' (JBPersistenceDelegate)
  strict protected
    function instantiate(para1: JLObject; para2: JBEncoder): JBExpression; overload; virtual;
  public
    procedure writeObject(para1: JLObject; para2: JBEncoder); overload; virtual;
  end;

  JBjava_lang_reflect_Field_PersistenceDelegate = class external 'java.beans' name 'java_lang_reflect_Field_PersistenceDelegate' (JBPersistenceDelegate)
  strict protected
    function instantiate(para1: JLObject; para2: JBEncoder): JBExpression; overload; virtual;
  end;

  JBjava_lang_reflect_Method_PersistenceDelegate = class external 'java.beans' name 'java_lang_reflect_Method_PersistenceDelegate' (JBPersistenceDelegate)
  strict protected
    function instantiate(para1: JLObject; para2: JBEncoder): JBExpression; overload; virtual;
  end;

  JBjava_util_Collections = class abstract external 'java.beans' name 'java_util_Collections' (JBPersistenceDelegate)
  public
    type
      InnerCheckedCollection_PersistenceDelegate = class;
      Arr1InnerCheckedCollection_PersistenceDelegate = array of InnerCheckedCollection_PersistenceDelegate;
      Arr2InnerCheckedCollection_PersistenceDelegate = array of Arr1InnerCheckedCollection_PersistenceDelegate;
      Arr3InnerCheckedCollection_PersistenceDelegate = array of Arr2InnerCheckedCollection_PersistenceDelegate;
      InnerCheckedList_PersistenceDelegate = class;
      Arr1InnerCheckedList_PersistenceDelegate = array of InnerCheckedList_PersistenceDelegate;
      Arr2InnerCheckedList_PersistenceDelegate = array of Arr1InnerCheckedList_PersistenceDelegate;
      Arr3InnerCheckedList_PersistenceDelegate = array of Arr2InnerCheckedList_PersistenceDelegate;
      InnerCheckedMap_PersistenceDelegate = class;
      Arr1InnerCheckedMap_PersistenceDelegate = array of InnerCheckedMap_PersistenceDelegate;
      Arr2InnerCheckedMap_PersistenceDelegate = array of Arr1InnerCheckedMap_PersistenceDelegate;
      Arr3InnerCheckedMap_PersistenceDelegate = array of Arr2InnerCheckedMap_PersistenceDelegate;
      InnerCheckedRandomAccessList_PersistenceDelegate = class;
      Arr1InnerCheckedRandomAccessList_PersistenceDelegate = array of InnerCheckedRandomAccessList_PersistenceDelegate;
      Arr2InnerCheckedRandomAccessList_PersistenceDelegate = array of Arr1InnerCheckedRandomAccessList_PersistenceDelegate;
      Arr3InnerCheckedRandomAccessList_PersistenceDelegate = array of Arr2InnerCheckedRandomAccessList_PersistenceDelegate;
      InnerCheckedSet_PersistenceDelegate = class;
      Arr1InnerCheckedSet_PersistenceDelegate = array of InnerCheckedSet_PersistenceDelegate;
      Arr2InnerCheckedSet_PersistenceDelegate = array of Arr1InnerCheckedSet_PersistenceDelegate;
      Arr3InnerCheckedSet_PersistenceDelegate = array of Arr2InnerCheckedSet_PersistenceDelegate;
      InnerCheckedSortedMap_PersistenceDelegate = class;
      Arr1InnerCheckedSortedMap_PersistenceDelegate = array of InnerCheckedSortedMap_PersistenceDelegate;
      Arr2InnerCheckedSortedMap_PersistenceDelegate = array of Arr1InnerCheckedSortedMap_PersistenceDelegate;
      Arr3InnerCheckedSortedMap_PersistenceDelegate = array of Arr2InnerCheckedSortedMap_PersistenceDelegate;
      InnerCheckedSortedSet_PersistenceDelegate = class;
      Arr1InnerCheckedSortedSet_PersistenceDelegate = array of InnerCheckedSortedSet_PersistenceDelegate;
      Arr2InnerCheckedSortedSet_PersistenceDelegate = array of Arr1InnerCheckedSortedSet_PersistenceDelegate;
      Arr3InnerCheckedSortedSet_PersistenceDelegate = array of Arr2InnerCheckedSortedSet_PersistenceDelegate;
      InnerEmptyList_PersistenceDelegate = class;
      Arr1InnerEmptyList_PersistenceDelegate = array of InnerEmptyList_PersistenceDelegate;
      Arr2InnerEmptyList_PersistenceDelegate = array of Arr1InnerEmptyList_PersistenceDelegate;
      Arr3InnerEmptyList_PersistenceDelegate = array of Arr2InnerEmptyList_PersistenceDelegate;
      InnerEmptyMap_PersistenceDelegate = class;
      Arr1InnerEmptyMap_PersistenceDelegate = array of InnerEmptyMap_PersistenceDelegate;
      Arr2InnerEmptyMap_PersistenceDelegate = array of Arr1InnerEmptyMap_PersistenceDelegate;
      Arr3InnerEmptyMap_PersistenceDelegate = array of Arr2InnerEmptyMap_PersistenceDelegate;
      InnerEmptySet_PersistenceDelegate = class;
      Arr1InnerEmptySet_PersistenceDelegate = array of InnerEmptySet_PersistenceDelegate;
      Arr2InnerEmptySet_PersistenceDelegate = array of Arr1InnerEmptySet_PersistenceDelegate;
      Arr3InnerEmptySet_PersistenceDelegate = array of Arr2InnerEmptySet_PersistenceDelegate;
      InnerSingletonList_PersistenceDelegate = class;
      Arr1InnerSingletonList_PersistenceDelegate = array of InnerSingletonList_PersistenceDelegate;
      Arr2InnerSingletonList_PersistenceDelegate = array of Arr1InnerSingletonList_PersistenceDelegate;
      Arr3InnerSingletonList_PersistenceDelegate = array of Arr2InnerSingletonList_PersistenceDelegate;
      InnerSingletonMap_PersistenceDelegate = class;
      Arr1InnerSingletonMap_PersistenceDelegate = array of InnerSingletonMap_PersistenceDelegate;
      Arr2InnerSingletonMap_PersistenceDelegate = array of Arr1InnerSingletonMap_PersistenceDelegate;
      Arr3InnerSingletonMap_PersistenceDelegate = array of Arr2InnerSingletonMap_PersistenceDelegate;
      InnerSingletonSet_PersistenceDelegate = class;
      Arr1InnerSingletonSet_PersistenceDelegate = array of InnerSingletonSet_PersistenceDelegate;
      Arr2InnerSingletonSet_PersistenceDelegate = array of Arr1InnerSingletonSet_PersistenceDelegate;
      Arr3InnerSingletonSet_PersistenceDelegate = array of Arr2InnerSingletonSet_PersistenceDelegate;
      InnerSynchronizedCollection_PersistenceDelegate = class;
      Arr1InnerSynchronizedCollection_PersistenceDelegate = array of InnerSynchronizedCollection_PersistenceDelegate;
      Arr2InnerSynchronizedCollection_PersistenceDelegate = array of Arr1InnerSynchronizedCollection_PersistenceDelegate;
      Arr3InnerSynchronizedCollection_PersistenceDelegate = array of Arr2InnerSynchronizedCollection_PersistenceDelegate;
      InnerSynchronizedList_PersistenceDelegate = class;
      Arr1InnerSynchronizedList_PersistenceDelegate = array of InnerSynchronizedList_PersistenceDelegate;
      Arr2InnerSynchronizedList_PersistenceDelegate = array of Arr1InnerSynchronizedList_PersistenceDelegate;
      Arr3InnerSynchronizedList_PersistenceDelegate = array of Arr2InnerSynchronizedList_PersistenceDelegate;
      InnerSynchronizedMap_PersistenceDelegate = class;
      Arr1InnerSynchronizedMap_PersistenceDelegate = array of InnerSynchronizedMap_PersistenceDelegate;
      Arr2InnerSynchronizedMap_PersistenceDelegate = array of Arr1InnerSynchronizedMap_PersistenceDelegate;
      Arr3InnerSynchronizedMap_PersistenceDelegate = array of Arr2InnerSynchronizedMap_PersistenceDelegate;
      InnerSynchronizedRandomAccessList_PersistenceDelegate = class;
      Arr1InnerSynchronizedRandomAccessList_PersistenceDelegate = array of InnerSynchronizedRandomAccessList_PersistenceDelegate;
      Arr2InnerSynchronizedRandomAccessList_PersistenceDelegate = array of Arr1InnerSynchronizedRandomAccessList_PersistenceDelegate;
      Arr3InnerSynchronizedRandomAccessList_PersistenceDelegate = array of Arr2InnerSynchronizedRandomAccessList_PersistenceDelegate;
      InnerSynchronizedSet_PersistenceDelegate = class;
      Arr1InnerSynchronizedSet_PersistenceDelegate = array of InnerSynchronizedSet_PersistenceDelegate;
      Arr2InnerSynchronizedSet_PersistenceDelegate = array of Arr1InnerSynchronizedSet_PersistenceDelegate;
      Arr3InnerSynchronizedSet_PersistenceDelegate = array of Arr2InnerSynchronizedSet_PersistenceDelegate;
      InnerSynchronizedSortedMap_PersistenceDelegate = class;
      Arr1InnerSynchronizedSortedMap_PersistenceDelegate = array of InnerSynchronizedSortedMap_PersistenceDelegate;
      Arr2InnerSynchronizedSortedMap_PersistenceDelegate = array of Arr1InnerSynchronizedSortedMap_PersistenceDelegate;
      Arr3InnerSynchronizedSortedMap_PersistenceDelegate = array of Arr2InnerSynchronizedSortedMap_PersistenceDelegate;
      InnerSynchronizedSortedSet_PersistenceDelegate = class;
      Arr1InnerSynchronizedSortedSet_PersistenceDelegate = array of InnerSynchronizedSortedSet_PersistenceDelegate;
      Arr2InnerSynchronizedSortedSet_PersistenceDelegate = array of Arr1InnerSynchronizedSortedSet_PersistenceDelegate;
      Arr3InnerSynchronizedSortedSet_PersistenceDelegate = array of Arr2InnerSynchronizedSortedSet_PersistenceDelegate;
      InnerUnmodifiableCollection_PersistenceDelegate = class;
      Arr1InnerUnmodifiableCollection_PersistenceDelegate = array of InnerUnmodifiableCollection_PersistenceDelegate;
      Arr2InnerUnmodifiableCollection_PersistenceDelegate = array of Arr1InnerUnmodifiableCollection_PersistenceDelegate;
      Arr3InnerUnmodifiableCollection_PersistenceDelegate = array of Arr2InnerUnmodifiableCollection_PersistenceDelegate;
      InnerUnmodifiableList_PersistenceDelegate = class;
      Arr1InnerUnmodifiableList_PersistenceDelegate = array of InnerUnmodifiableList_PersistenceDelegate;
      Arr2InnerUnmodifiableList_PersistenceDelegate = array of Arr1InnerUnmodifiableList_PersistenceDelegate;
      Arr3InnerUnmodifiableList_PersistenceDelegate = array of Arr2InnerUnmodifiableList_PersistenceDelegate;
      InnerUnmodifiableMap_PersistenceDelegate = class;
      Arr1InnerUnmodifiableMap_PersistenceDelegate = array of InnerUnmodifiableMap_PersistenceDelegate;
      Arr2InnerUnmodifiableMap_PersistenceDelegate = array of Arr1InnerUnmodifiableMap_PersistenceDelegate;
      Arr3InnerUnmodifiableMap_PersistenceDelegate = array of Arr2InnerUnmodifiableMap_PersistenceDelegate;
      InnerUnmodifiableRandomAccessList_PersistenceDelegate = class;
      Arr1InnerUnmodifiableRandomAccessList_PersistenceDelegate = array of InnerUnmodifiableRandomAccessList_PersistenceDelegate;
      Arr2InnerUnmodifiableRandomAccessList_PersistenceDelegate = array of Arr1InnerUnmodifiableRandomAccessList_PersistenceDelegate;
      Arr3InnerUnmodifiableRandomAccessList_PersistenceDelegate = array of Arr2InnerUnmodifiableRandomAccessList_PersistenceDelegate;
      InnerUnmodifiableSet_PersistenceDelegate = class;
      Arr1InnerUnmodifiableSet_PersistenceDelegate = array of InnerUnmodifiableSet_PersistenceDelegate;
      Arr2InnerUnmodifiableSet_PersistenceDelegate = array of Arr1InnerUnmodifiableSet_PersistenceDelegate;
      Arr3InnerUnmodifiableSet_PersistenceDelegate = array of Arr2InnerUnmodifiableSet_PersistenceDelegate;
      InnerUnmodifiableSortedMap_PersistenceDelegate = class;
      Arr1InnerUnmodifiableSortedMap_PersistenceDelegate = array of InnerUnmodifiableSortedMap_PersistenceDelegate;
      Arr2InnerUnmodifiableSortedMap_PersistenceDelegate = array of Arr1InnerUnmodifiableSortedMap_PersistenceDelegate;
      Arr3InnerUnmodifiableSortedMap_PersistenceDelegate = array of Arr2InnerUnmodifiableSortedMap_PersistenceDelegate;
      InnerUnmodifiableSortedSet_PersistenceDelegate = class;
      Arr1InnerUnmodifiableSortedSet_PersistenceDelegate = array of InnerUnmodifiableSortedSet_PersistenceDelegate;
      Arr2InnerUnmodifiableSortedSet_PersistenceDelegate = array of Arr1InnerUnmodifiableSortedSet_PersistenceDelegate;
      Arr3InnerUnmodifiableSortedSet_PersistenceDelegate = array of Arr2InnerUnmodifiableSortedSet_PersistenceDelegate;
      InnerCheckedCollection_PersistenceDelegate = class sealed external 'java.beans' name 'CheckedCollection_PersistenceDelegate' 
      end;

      InnerCheckedList_PersistenceDelegate = class sealed external 'java.beans' name 'CheckedList_PersistenceDelegate' 
      end;

      InnerCheckedMap_PersistenceDelegate = class sealed external 'java.beans' name 'CheckedMap_PersistenceDelegate' 
      end;

      InnerCheckedRandomAccessList_PersistenceDelegate = class sealed external 'java.beans' name 'CheckedRandomAccessList_PersistenceDelegate' 
      end;

      InnerCheckedSet_PersistenceDelegate = class sealed external 'java.beans' name 'CheckedSet_PersistenceDelegate' 
      end;

      InnerCheckedSortedMap_PersistenceDelegate = class sealed external 'java.beans' name 'CheckedSortedMap_PersistenceDelegate' 
      end;

      InnerCheckedSortedSet_PersistenceDelegate = class sealed external 'java.beans' name 'CheckedSortedSet_PersistenceDelegate' 
      end;

      InnerEmptyList_PersistenceDelegate = class sealed external 'java.beans' name 'EmptyList_PersistenceDelegate' 
      end;

      InnerEmptyMap_PersistenceDelegate = class sealed external 'java.beans' name 'EmptyMap_PersistenceDelegate' 
      end;

      InnerEmptySet_PersistenceDelegate = class sealed external 'java.beans' name 'EmptySet_PersistenceDelegate' 
      end;

      InnerSingletonList_PersistenceDelegate = class sealed external 'java.beans' name 'SingletonList_PersistenceDelegate' 
      end;

      InnerSingletonMap_PersistenceDelegate = class sealed external 'java.beans' name 'SingletonMap_PersistenceDelegate' 
      end;

      InnerSingletonSet_PersistenceDelegate = class sealed external 'java.beans' name 'SingletonSet_PersistenceDelegate' 
      end;

      InnerSynchronizedCollection_PersistenceDelegate = class sealed external 'java.beans' name 'SynchronizedCollection_PersistenceDelegate' 
      end;

      InnerSynchronizedList_PersistenceDelegate = class sealed external 'java.beans' name 'SynchronizedList_PersistenceDelegate' 
      end;

      InnerSynchronizedMap_PersistenceDelegate = class sealed external 'java.beans' name 'SynchronizedMap_PersistenceDelegate' 
      end;

      InnerSynchronizedRandomAccessList_PersistenceDelegate = class sealed external 'java.beans' name 'SynchronizedRandomAccessList_PersistenceDelegate' 
      end;

      InnerSynchronizedSet_PersistenceDelegate = class sealed external 'java.beans' name 'SynchronizedSet_PersistenceDelegate' 
      end;

      InnerSynchronizedSortedMap_PersistenceDelegate = class sealed external 'java.beans' name 'SynchronizedSortedMap_PersistenceDelegate' 
      end;

      InnerSynchronizedSortedSet_PersistenceDelegate = class sealed external 'java.beans' name 'SynchronizedSortedSet_PersistenceDelegate' 
      end;

      InnerUnmodifiableCollection_PersistenceDelegate = class sealed external 'java.beans' name 'UnmodifiableCollection_PersistenceDelegate' 
      end;

      InnerUnmodifiableList_PersistenceDelegate = class sealed external 'java.beans' name 'UnmodifiableList_PersistenceDelegate' 
      end;

      InnerUnmodifiableMap_PersistenceDelegate = class sealed external 'java.beans' name 'UnmodifiableMap_PersistenceDelegate' 
      end;

      InnerUnmodifiableRandomAccessList_PersistenceDelegate = class sealed external 'java.beans' name 'UnmodifiableRandomAccessList_PersistenceDelegate' 
      end;

      InnerUnmodifiableSet_PersistenceDelegate = class sealed external 'java.beans' name 'UnmodifiableSet_PersistenceDelegate' 
      end;

      InnerUnmodifiableSortedMap_PersistenceDelegate = class sealed external 'java.beans' name 'UnmodifiableSortedMap_PersistenceDelegate' 
      end;

      InnerUnmodifiableSortedSet_PersistenceDelegate = class sealed external 'java.beans' name 'UnmodifiableSortedSet_PersistenceDelegate' 
      end;

  strict protected
    function mutatesTo(para1: JLObject; para2: JLObject): jboolean; overload; virtual;
  end;

  JBjavax_swing_ToolTipManager_PersistenceDelegate = class external 'java.beans' name 'javax_swing_ToolTipManager_PersistenceDelegate' (JBPersistenceDelegate)
  strict protected
    function instantiate(para1: JLObject; para2: JBEncoder): JBExpression; overload; virtual;
  end;

  JBjavax_swing_border_MatteBorder_PersistenceDelegate = class sealed external 'java.beans' name 'javax_swing_border_MatteBorder_PersistenceDelegate' (JBPersistenceDelegate)
  strict protected
    function instantiate(para1: JLObject; para2: JBEncoder): JBExpression; overload; virtual;
  end;

  JBsun_swing_PrintColorUIResource_PersistenceDelegate = class sealed external 'java.beans' name 'sun_swing_PrintColorUIResource_PersistenceDelegate' (JBPersistenceDelegate)
  strict protected
    function mutatesTo(para1: JLObject; para2: JLObject): jboolean; overload; virtual;
    function instantiate(para1: JLObject; para2: JBEncoder): JBExpression; overload; virtual;
  end;

  JBPropertyEditorSupport = class external 'java.beans' name 'PropertyEditorSupport' (JLObject, JBPropertyEditor)
  public
    constructor create(); overload;
    constructor create(para1: JLObject); overload;
    function getSource(): JLObject; overload; virtual;
    procedure setSource(para1: JLObject); overload; virtual;
    procedure setValue(para1: JLObject); overload; virtual;
    function getValue(): JLObject; overload; virtual;
    function isPaintable(): jboolean; overload; virtual;
    procedure paintValue(para1: JAGraphics; para2: JARectangle); overload; virtual;
    function getJavaInitializationString(): JLString; overload; virtual;
    function getAsText(): JLString; overload; virtual;
    procedure setAsText(para1: JLString); overload; virtual;  // throws java.lang.IllegalArgumentException
    function getTags(): Arr1JLString; overload; virtual;
    function getCustomEditor(): JAComponent; overload; virtual;
    function supportsCustomEditor(): jboolean; overload; virtual;
    procedure addPropertyChangeListener(para1: JBPropertyChangeListener); overload; virtual;
    procedure removePropertyChangeListener(para1: JBPropertyChangeListener); overload; virtual;
    procedure firePropertyChange(); overload; virtual;
  end;

  JBExpression = class external 'java.beans' name 'Expression' (JBStatement)
  public
    constructor create(para1: JLObject; para2: JLString; para3: Arr1JLObject); overload;
    constructor create(para1: JLObject; para2: JLString; const para3: array of JLObject); overload;
    constructor create(para1: JLObject; para2: JLObject; para3: JLString; para4: Arr1JLObject); overload;
    constructor create(para1: JLObject; para2: JLObject; para3: JLString; const para4: array of JLObject); overload;
    function getValue(): JLObject; overload; virtual;  // throws java.lang.Exception
    procedure setValue(para1: JLObject); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JBBBeanContext = interface external 'java.beans.beancontext' name 'BeanContext' (JBBBeanContextChild, JUCollection, JBDesignMode, JBVisibility)
    final class var
      fglobalHierarchyLock: JLObject; external name 'globalHierarchyLock';
    function instantiateChild(para1: JLString): JLObject; overload;  // throws java.io.IOException, java.lang.ClassNotFoundException
    function getResourceAsStream(para1: JLString; para2: JBBBeanContextChild): JIInputStream; overload;  // throws java.lang.IllegalArgumentException
    function getResource(para1: JLString; para2: JBBBeanContextChild): JNURL; overload;  // throws java.lang.IllegalArgumentException
    procedure addBeanContextMembershipListener(para1: JBBBeanContextMembershipListener); overload;
    procedure removeBeanContextMembershipListener(para1: JBBBeanContextMembershipListener); overload;
  end;

  JIInputStream = class abstract external 'java.io' name 'InputStream' (JLObject, JICloseable)
  public
    constructor create(); overload;
    function read(): jint; overload; virtual; abstract;  // throws java.io.IOException
    function read(para1: Arr1jbyte): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
    function available(): jint; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure mark(para1: jint); overload; virtual;
    procedure reset(); overload; virtual;  // throws java.io.IOException
    function markSupported(): jboolean; overload; virtual;
  end;

  JIReader = class abstract external 'java.io' name 'Reader' (JLObject, JLReadable, JICloseable)
  strict protected
    var
      flock: JLObject; external name 'lock';
  strict protected
    constructor create(); overload;
    constructor create(para1: JLObject); overload;
  public
    function read(para1: JNCharBuffer): jint; overload; virtual;  // throws java.io.IOException
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jchar): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jchar): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jchar; para2: jint; para3: jint): jint; overload; virtual; abstract;  // throws java.io.IOException
    function read(var para1: array of jchar; para2: jint; para3: jint): jint; overload; virtual; abstract;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
    function ready(): jboolean; overload; virtual;  // throws java.io.IOException
    function markSupported(): jboolean; overload; virtual;
    procedure mark(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure reset(); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual; abstract;  // throws java.io.IOException
  end;

  JNCChannel = interface external 'java.nio.channels' name 'Channel' (JICloseable)
    function isOpen(): jboolean; overload;
    procedure close(); overload;  // throws java.io.IOException
  end;

  JMRJMXConnector = interface external 'javax.management.remote' name 'JMXConnector' (JICloseable)
    const
      CREDENTIALS = 'jmx.remote.credentials';
    procedure connect(); overload;  // throws java.io.IOException
    procedure connect(para1: JUMap); overload;  // throws java.io.IOException
    function getMBeanServerConnection(): JMMBeanServerConnection; overload;  // throws java.io.IOException
    function getMBeanServerConnection(para1: JSASubject): JMMBeanServerConnection; overload;  // throws java.io.IOException
    procedure close(); overload;  // throws java.io.IOException
    procedure addConnectionNotificationListener(para1: JMNotificationListener; para2: JMNotificationFilter; para3: JLObject); overload;
    procedure removeConnectionNotificationListener(para1: JMNotificationListener); overload;  // throws javax.management.ListenerNotFoundException
    procedure removeConnectionNotificationListener(para1: JMNotificationListener; para2: JMNotificationFilter; para3: JLObject); overload;  // throws javax.management.ListenerNotFoundException
    function getConnectionId(): JLString; overload;  // throws java.io.IOException
  end;

  JIObjectInput = interface external 'java.io' name 'ObjectInput' (JIDataInput)
    function readObject(): JLObject; overload;  // throws java.lang.ClassNotFoundException, java.io.IOException
    function read(): jint; overload;  // throws java.io.IOException
    function read(para1: Arr1jbyte): jint; overload;  // throws java.io.IOException
    function read(var para1: array of jbyte): jint; overload;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload;  // throws java.io.IOException
    function available(): jint; overload;  // throws java.io.IOException
    procedure close(); overload;  // throws java.io.IOException
  end;

  JISImageInputStream = interface external 'javax.imageio.stream' name 'ImageInputStream' (JIDataInput)
    procedure setByteOrder(para1: JNByteOrder); overload;
    function getByteOrder(): JNByteOrder; overload;
    function read(): jint; overload;  // throws java.io.IOException
    function read(para1: Arr1jbyte): jint; overload;  // throws java.io.IOException
    function read(var para1: array of jbyte): jint; overload;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload;  // throws java.io.IOException
    procedure readBytes(para1: JISIIOByteBuffer; para2: jint); overload;  // throws java.io.IOException
    function readBoolean(): jboolean; overload;  // throws java.io.IOException
    function readByte(): jbyte; overload;  // throws java.io.IOException
    function readUnsignedByte(): jint; overload;  // throws java.io.IOException
    function readShort(): jshort; overload;  // throws java.io.IOException
    function readUnsignedShort(): jint; overload;  // throws java.io.IOException
    function readChar(): jchar; overload;  // throws java.io.IOException
    function readInt(): jint; overload;  // throws java.io.IOException
    function readUnsignedInt(): jlong; overload;  // throws java.io.IOException
    function readLong(): jlong; overload;  // throws java.io.IOException
    function readFloat(): jfloat; overload;  // throws java.io.IOException
    function readDouble(): jdouble; overload;  // throws java.io.IOException
    function readLine(): JLString; overload;  // throws java.io.IOException
    function readUTF(): JLString; overload;  // throws java.io.IOException
    procedure readFully(para1: Arr1jbyte; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure readFully(var para1: array of jbyte; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure readFully(para1: Arr1jbyte); overload;  // throws java.io.IOException
    procedure readFully(var para1: array of jbyte); overload;  // throws java.io.IOException
    procedure readFully(para1: Arr1jshort; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure readFully(var para1: array of jshort; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure readFully(para1: Arr1jchar; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure readFully(var para1: array of jchar; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure readFully(para1: Arr1jint; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure readFully(var para1: array of jint; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure readFully(para1: Arr1jlong; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure readFully(var para1: array of jlong; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure readFully(para1: Arr1jfloat; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure readFully(var para1: array of jfloat; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure readFully(para1: Arr1jdouble; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure readFully(var para1: array of jdouble; para2: jint; para3: jint); overload;  // throws java.io.IOException
    function getStreamPosition(): jlong; overload;  // throws java.io.IOException
    function getBitOffset(): jint; overload;  // throws java.io.IOException
    procedure setBitOffset(para1: jint); overload;  // throws java.io.IOException
    function readBit(): jint; overload;  // throws java.io.IOException
    function readBits(para1: jint): jlong; overload;  // throws java.io.IOException
    function length(): jlong; overload;  // throws java.io.IOException
    function skipBytes(para1: jint): jint; overload;  // throws java.io.IOException
    function skipBytes(para1: jlong): jlong; overload;  // throws java.io.IOException
    procedure seek(para1: jlong); overload;  // throws java.io.IOException
    procedure mark(); overload;
    procedure reset(); overload;  // throws java.io.IOException
    procedure flushBefore(para1: jlong); overload;  // throws java.io.IOException
    procedure flush(); overload;  // throws java.io.IOException
    function getFlushedPosition(): jlong; overload;
    function isCached(): jboolean; overload;
    function isCachedMemory(): jboolean; overload;
    function isCachedFile(): jboolean; overload;
    procedure close(); overload;  // throws java.io.IOException
  end;

  JIObjectOutput = interface external 'java.io' name 'ObjectOutput' (JIDataOutput)
    procedure writeObject(para1: JLObject); overload;  // throws java.io.IOException
    procedure write(para1: jint); overload;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte); overload;  // throws java.io.IOException
    procedure write(var para1: array of jbyte); overload;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure flush(); overload;  // throws java.io.IOException
    procedure close(); overload;  // throws java.io.IOException
  end;

  JIRandomAccessFile = class external 'java.io' name 'RandomAccessFile' (JLObject, JIDataOutput, JIDataInput, JICloseable)
  public
    constructor create(para1: JLString; para2: JLString); overload;  // throws java.io.FileNotFoundException
    constructor create(para1: JIFile; para2: JLString); overload;  // throws java.io.FileNotFoundException
    function getFD(): JIFileDescriptor; overload; virtual; final;  // throws java.io.IOException
    function getChannel(): JNCFileChannel; overload; virtual; final;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte): jint; overload; virtual;  // throws java.io.IOException
    procedure readFully(para1: Arr1jbyte); overload; virtual; final;  // throws java.io.IOException
    procedure readFully(var para1: array of jbyte); overload; virtual; final;  // throws java.io.IOException
    procedure readFully(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual; final;  // throws java.io.IOException
    procedure readFully(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual; final;  // throws java.io.IOException
    function skipBytes(para1: jint): jint; overload; virtual;  // throws java.io.IOException
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    function getFilePointer(): jlong; overload; virtual;  // throws java.io.IOException
    procedure seek(para1: jlong); overload; virtual;  // throws java.io.IOException
    function length(): jlong; overload; virtual;  // throws java.io.IOException
    procedure setLength(para1: jlong); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    function readBoolean(): jboolean; overload; virtual; final;  // throws java.io.IOException
    function readByte(): jbyte; overload; virtual; final;  // throws java.io.IOException
    function readUnsignedByte(): jint; overload; virtual; final;  // throws java.io.IOException
    function readShort(): jshort; overload; virtual; final;  // throws java.io.IOException
    function readUnsignedShort(): jint; overload; virtual; final;  // throws java.io.IOException
    function readChar(): jchar; overload; virtual; final;  // throws java.io.IOException
    function readInt(): jint; overload; virtual; final;  // throws java.io.IOException
    function readLong(): jlong; overload; virtual; final;  // throws java.io.IOException
    function readFloat(): jfloat; overload; virtual; final;  // throws java.io.IOException
    function readDouble(): jdouble; overload; virtual; final;  // throws java.io.IOException
    function readLine(): JLString; overload; virtual; final;  // throws java.io.IOException
    function readUTF(): JLString; overload; virtual; final;  // throws java.io.IOException
    procedure writeBoolean(para1: jboolean); overload; virtual; final;  // throws java.io.IOException
    procedure writeByte(para1: jint); overload; virtual; final;  // throws java.io.IOException
    procedure writeShort(para1: jint); overload; virtual; final;  // throws java.io.IOException
    procedure writeChar(para1: jint); overload; virtual; final;  // throws java.io.IOException
    procedure writeInt(para1: jint); overload; virtual; final;  // throws java.io.IOException
    procedure writeLong(para1: jlong); overload; virtual; final;  // throws java.io.IOException
    procedure writeFloat(para1: jfloat); overload; virtual; final;  // throws java.io.IOException
    procedure writeDouble(para1: jdouble); overload; virtual; final;  // throws java.io.IOException
    procedure writeBytes(para1: JLString); overload; virtual; final;  // throws java.io.IOException
    procedure writeChars(para1: JLString); overload; virtual; final;  // throws java.io.IOException
    procedure writeUTF(para1: JLString); overload; virtual; final;  // throws java.io.IOException
  end;

  JIUnixFileSystem = class external 'java.io' name 'UnixFileSystem' (JIFileSystem)
  public
    constructor create(); overload;
    function getSeparator(): jchar; overload; virtual;
    function getPathSeparator(): jchar; overload; virtual;
    function normalize(para1: JLString): JLString; overload; virtual;
    function prefixLength(para1: JLString): jint; overload; virtual;
    function resolve(para1: JLString; para2: JLString): JLString; overload; virtual;
    function getDefaultParent(): JLString; overload; virtual;
    function fromURIPath(para1: JLString): JLString; overload; virtual;
    function isAbsolute(para1: JIFile): jboolean; overload; virtual;
    function resolve(para1: JIFile): JLString; overload; virtual;
    function canonicalize(para1: JLString): JLString; overload; virtual;  // throws java.io.IOException
    function getBooleanAttributes0(para1: JIFile): jint; overload; virtual;
    function getBooleanAttributes(para1: JIFile): jint; overload; virtual;
    function checkAccess(para1: JIFile; para2: jint): jboolean; overload; virtual;
    function getLastModifiedTime(para1: JIFile): jlong; overload; virtual;
    function getLength(para1: JIFile): jlong; overload; virtual;
    function setPermission(para1: JIFile; para2: jint; para3: jboolean; para4: jboolean): jboolean; overload; virtual;
    function createFileExclusively(para1: JLString): jboolean; overload; virtual;  // throws java.io.IOException
    function delete(para1: JIFile): jboolean; overload; virtual;
    function list(para1: JIFile): Arr1JLString; overload; virtual;
    function createDirectory(para1: JIFile): jboolean; overload; virtual;
    function rename(para1: JIFile; para2: JIFile): jboolean; overload; virtual;
    function setLastModifiedTime(para1: JIFile; para2: jlong): jboolean; overload; virtual;
    function setReadOnly(para1: JIFile): jboolean; overload; virtual;
    function listRoots(): Arr1JIFile; overload; virtual;
    function getSpace(para1: JIFile; para2: jint): jlong; overload; virtual;
    function compare(para1: JIFile; para2: JIFile): jint; overload; virtual;
    function hashCode(para1: JIFile): jint; overload; virtual;
  end;

  JIConsole = class sealed external 'java.io' name 'Console' (JLObject, JIFlushable)
  public
    type
      InnerLineReader = class;
      Arr1InnerLineReader = array of InnerLineReader;
      Arr2InnerLineReader = array of Arr1InnerLineReader;
      Arr3InnerLineReader = array of Arr2InnerLineReader;
      InnerLineReader = class external 'java.io' name 'LineReader' 
      end;

  public
    function writer(): JIPrintWriter; overload; virtual;
    function reader(): JIReader; overload; virtual;
    function format(para1: JLString; para2: Arr1JLObject): JIConsole; overload; virtual;
    function format(para1: JLString; const para2: array of JLObject): JIConsole; overload; virtual;
    function printf(para1: JLString; para2: Arr1JLObject): JIConsole; overload; virtual;
    function printf(para1: JLString; const para2: array of JLObject): JIConsole; overload; virtual;
    function readLine(para1: JLString; para2: Arr1JLObject): JLString; overload; virtual;
    function readLine(para1: JLString; const para2: array of JLObject): JLString; overload; virtual;
    function readLine(): JLString; overload; virtual;
    function readPassword(para1: JLString; para2: Arr1JLObject): Arr1jchar; overload; virtual;
    function readPassword(para1: JLString; const para2: array of JLObject): Arr1jchar; overload; virtual;
    function readPassword(): Arr1jchar; overload; virtual;
    procedure flush(); overload; virtual;
  end;

  JIOutputStream = class abstract external 'java.io' name 'OutputStream' (JLObject, JICloseable, JIFlushable)
  public
    constructor create(); overload;
    procedure write(para1: jint); overload; virtual; abstract;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure flush(); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  JIWriter = class abstract external 'java.io' name 'Writer' (JLObject, JLAppendable, JICloseable, JIFlushable)
  strict protected
    var
      flock: JLObject; external name 'lock';
  strict protected
    constructor create(); overload;
    constructor create(para1: JLObject); overload;
  public
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jchar); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jchar); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual; abstract;  // throws java.io.IOException
    procedure write(var para1: array of jchar; para2: jint; para3: jint); overload; virtual; abstract;  // throws java.io.IOException
    procedure write(para1: JLString); overload; virtual;  // throws java.io.IOException
    procedure write(para1: JLString; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence): JIWriter; overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence; para2: jint; para3: jint): JIWriter; overload; virtual;  // throws java.io.IOException
    function append(para1: jchar): JIWriter; overload; virtual;  // throws java.io.IOException
    procedure flush(); overload; virtual; abstract;  // throws java.io.IOException
    procedure close(); overload; virtual; abstract;  // throws java.io.IOException
    function append(para1: jchar): JLAppendable; overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence; para2: jint; para3: jint): JLAppendable; overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence): JLAppendable; overload; virtual;  // throws java.io.IOException
  end;

  JUFormatter = class sealed external 'java.util' name 'Formatter' (JLObject, JICloseable, JIFlushable)
  public
    type
      InnerConversion = class;
      Arr1InnerConversion = array of InnerConversion;
      Arr2InnerConversion = array of Arr1InnerConversion;
      Arr3InnerConversion = array of Arr2InnerConversion;
      InnerDateTime = class;
      Arr1InnerDateTime = array of InnerDateTime;
      Arr2InnerDateTime = array of Arr1InnerDateTime;
      Arr3InnerDateTime = array of Arr2InnerDateTime;
      InnerFixedString = class;
      Arr1InnerFixedString = array of InnerFixedString;
      Arr2InnerFixedString = array of Arr1InnerFixedString;
      Arr3InnerFixedString = array of Arr2InnerFixedString;
      InnerFlags = class;
      Arr1InnerFlags = array of InnerFlags;
      Arr2InnerFlags = array of Arr1InnerFlags;
      Arr3InnerFlags = array of Arr2InnerFlags;
      InnerFormatSpecifier = class;
      Arr1InnerFormatSpecifier = array of InnerFormatSpecifier;
      Arr2InnerFormatSpecifier = array of Arr1InnerFormatSpecifier;
      Arr3InnerFormatSpecifier = array of Arr2InnerFormatSpecifier;
      InnerFormatString = interface;
      Arr1InnerFormatString = array of InnerFormatString;
      Arr2InnerFormatString = array of Arr1InnerFormatString;
      Arr3InnerFormatString = array of Arr2InnerFormatString;
      InnerConversion = class external 'java.util' name 'Conversion' 
      end;

      InnerDateTime = class external 'java.util' name 'DateTime' 
      end;

      InnerFixedString = class external 'java.util' name 'FixedString' 
      end;

      InnerFlags = class external 'java.util' name 'Flags' 
      end;

      InnerFormatSpecifier = class external 'java.util' name 'FormatSpecifier' 
      public
        type
          InnerBigDecimalLayout = class;
          Arr1InnerBigDecimalLayout = array of InnerBigDecimalLayout;
          Arr2InnerBigDecimalLayout = array of Arr1InnerBigDecimalLayout;
          Arr3InnerBigDecimalLayout = array of Arr2InnerBigDecimalLayout;
          InnerBigDecimalLayout = class external 'java.util' name 'BigDecimalLayout' 
          end;

      end;

      InnerFormatString = interface external 'java.util' name 'FormatString' 
      end;

  public
    type
      InnerBigDecimalLayoutForm = class;
      Arr1InnerBigDecimalLayoutForm = array of InnerBigDecimalLayoutForm;
      Arr2InnerBigDecimalLayoutForm = array of Arr1InnerBigDecimalLayoutForm;
      Arr3InnerBigDecimalLayoutForm = array of Arr2InnerBigDecimalLayoutForm;
      InnerBigDecimalLayoutForm = class sealed external 'java.util' name 'BigDecimalLayoutForm' (JLEnum)
      public
        final class var
          fSCIENTIFIC: JUFormatter.InnerBigDecimalLayoutForm; external name 'SCIENTIFIC';
          fDECIMAL_FLOAT: JUFormatter.InnerBigDecimalLayoutForm; external name 'DECIMAL_FLOAT';
      public
        class function values(): JUFormatter.Arr1InnerBigDecimalLayoutForm; static; overload;
        class function valueOf(para1: JLString): JUFormatter.InnerBigDecimalLayoutForm; static; overload;
      end;

  public
    constructor create(); overload;
    constructor create(para1: JLAppendable); overload;
    constructor create(para1: JULocale); overload;
    constructor create(para1: JLAppendable; para2: JULocale); overload;
    constructor create(para1: JLString); overload;  // throws java.io.FileNotFoundException
    constructor create(para1: JLString; para2: JLString); overload;  // throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException
    constructor create(para1: JLString; para2: JLString; para3: JULocale); overload;  // throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException
    constructor create(para1: JIFile); overload;  // throws java.io.FileNotFoundException
    constructor create(para1: JIFile; para2: JLString); overload;  // throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException
    constructor create(para1: JIFile; para2: JLString; para3: JULocale); overload;  // throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException
    constructor create(para1: JIPrintStream); overload;
    constructor create(para1: JIOutputStream); overload;
    constructor create(para1: JIOutputStream; para2: JLString); overload;  // throws java.io.UnsupportedEncodingException
    constructor create(para1: JIOutputStream; para2: JLString; para3: JULocale); overload;  // throws java.io.UnsupportedEncodingException
    function locale(): JULocale; overload; virtual;
    function out(): JLAppendable; overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure flush(); overload; virtual;
    procedure close(); overload; virtual;
    function ioException(): JIIOException; overload; virtual;
    function format(para1: JLString; para2: Arr1JLObject): JUFormatter; overload; virtual;
    function format(para1: JLString; const para2: array of JLObject): JUFormatter; overload; virtual;
    function format(para1: JULocale; para2: JLString; para3: Arr1JLObject): JUFormatter; overload; virtual;
    function format(para1: JULocale; para2: JLString; const para3: array of JLObject): JUFormatter; overload; virtual;
  end;

  JSSecureClassLoader = class external 'java.security' name 'SecureClassLoader' (JLClassLoader)
  strict protected
    constructor create(para1: JLClassLoader); overload;
    constructor create(); overload;
    function defineClass(para1: JLString; para2: Arr1jbyte; para3: jint; para4: jint; para5: JSCodeSource): JLClass; overload; virtual; final;
    function defineClass(para1: JLString; var para2: array of jbyte; para3: jint; para4: jint; para5: JSCodeSource): JLClass; overload; virtual; final;
    function defineClass(para1: JLString; para2: JNByteBuffer; para3: JSCodeSource): JLClass; overload; virtual; final;
    function getPermissions(para1: JSCodeSource): JSPermissionCollection; overload; virtual;
  end;

  JMRRNoCallStackClassLoader = class external 'javax.management.remote.rmi' name 'NoCallStackClassLoader' (JLClassLoader)
  public
    constructor create(para1: JLString; para2: Arr1jbyte; para3: Arr1JLString; para4: JLClassLoader; para5: JSProtectionDomain); overload;
    constructor create(para1: JLString; const para2: array of jbyte; const para3: array of JLString; para4: JLClassLoader; para5: JSProtectionDomain); overload;
    constructor create(para1: Arr1JLString; para2: Arr2jbyte; para3: Arr1JLString; para4: JLClassLoader; para5: JSProtectionDomain); overload;
    constructor create(const para1: array of JLString; para2: Arr2jbyte; const para3: array of JLString; para4: JLClassLoader; para5: JSProtectionDomain); overload;
  strict protected
    function findClass(para1: JLString): JLClass; overload; virtual;  // throws java.lang.ClassNotFoundException
  public
    class function stringToBytes(para1: JLString): Arr1jbyte; static; overload;
  end;

  JLUNIXProcess = class sealed external 'java.lang' name 'UNIXProcess' (JLProcess)
  public
    type
      InnerGate = class;
      Arr1InnerGate = array of InnerGate;
      Arr2InnerGate = array of Arr1InnerGate;
      Arr3InnerGate = array of Arr2InnerGate;
      InnerGate = class external 'java.lang' name 'Gate' 
      end;

  public
    function getOutputStream(): JIOutputStream; overload; virtual;
    function getInputStream(): JIInputStream; overload; virtual;
    function getErrorStream(): JIInputStream; overload; virtual;
    function waitFor(): jint; overload; virtual;  // throws java.lang.InterruptedException
    function exitValue(): jint; overload; virtual;
    procedure destroy(); overload; virtual;
  end;

  JAIRRenderableImageProducer = class external 'java.awt.image.renderable' name 'RenderableImageProducer' (JLObject, JAIImageProducer, JLRunnable)
  public
    constructor create(para1: JAIRRenderableImage; para2: JAIRRenderContext); overload;
    procedure setRenderContext(para1: JAIRRenderContext); overload; virtual;
    procedure addConsumer(para1: JAIImageConsumer); overload; virtual;
    function isConsumer(para1: JAIImageConsumer): jboolean; overload; virtual;
    procedure removeConsumer(para1: JAIImageConsumer); overload; virtual;
    procedure startProduction(para1: JAIImageConsumer); overload; virtual;
    procedure requestTopDownLeftRightResend(para1: JAIImageConsumer); overload; virtual;
    procedure run(); overload; virtual;
  end;

  JLThread = class external 'java.lang' name 'Thread' (JLObject, JLRunnable)
  public
    type
      InnerState = class;
      Arr1InnerState = array of InnerState;
      Arr2InnerState = array of Arr1InnerState;
      Arr3InnerState = array of Arr2InnerState;
      InnerUncaughtExceptionHandler = interface;
      Arr1InnerUncaughtExceptionHandler = array of InnerUncaughtExceptionHandler;
      Arr2InnerUncaughtExceptionHandler = array of Arr1InnerUncaughtExceptionHandler;
      Arr3InnerUncaughtExceptionHandler = array of Arr2InnerUncaughtExceptionHandler;
      InnerState = class sealed external 'java.lang' name 'State' (JLEnum)
      public
        final class var
          fNEW: JLThread.InnerState; external name 'NEW';
          fRUNNABLE: JLThread.InnerState; external name 'RUNNABLE';
          fBLOCKED: JLThread.InnerState; external name 'BLOCKED';
          fWAITING: JLThread.InnerState; external name 'WAITING';
          fTIMED_WAITING: JLThread.InnerState; external name 'TIMED_WAITING';
          fTERMINATED: JLThread.InnerState; external name 'TERMINATED';
      public
        class function values(): JLThread.Arr1InnerState; static; overload;
        class function valueOf(para1: JLString): JLThread.InnerState; static; overload;
      end;

      InnerUncaughtExceptionHandler = interface external 'java.lang' name 'UncaughtExceptionHandler' 
        procedure uncaughtException(para1: JLThread; para2: JLThrowable); overload;
      end;

  public
    const
      MIN_PRIORITY = 1;
      NORM_PRIORITY = 5;
      MAX_PRIORITY = 10;
  public
    class function currentThread(): JLThread; static; overload;
    class procedure yield(); static; overload;
    class procedure sleep(para1: jlong); static; overload;  // throws java.lang.InterruptedException
    class procedure sleep(para1: jlong; para2: jint); static; overload;  // throws java.lang.InterruptedException
  strict protected
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  public
    constructor create(); overload;
    constructor create(para1: JLRunnable); overload;
    constructor create(para1: JLThreadGroup; para2: JLRunnable); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLThreadGroup; para2: JLString); overload;
    constructor create(para1: JLRunnable; para2: JLString); overload;
    constructor create(para1: JLThreadGroup; para2: JLRunnable; para3: JLString); overload;
    constructor create(para1: JLThreadGroup; para2: JLRunnable; para3: JLString; para4: jlong); overload;
    procedure start(); overload; virtual;
    procedure run(); overload; virtual;
    procedure stop(); overload; virtual; final;
    procedure stop(para1: JLThrowable); overload; virtual; final;
    procedure interrupt(); overload; virtual;
    class function interrupted(): jboolean; static; overload;
    function isInterrupted(): jboolean; overload; virtual;
    procedure destroy(); overload; virtual;
    function isAlive(): jboolean; overload; virtual; final;
    procedure suspend(); overload; virtual; final;
    procedure resume(); overload; virtual; final;
    procedure setPriority(para1: jint); overload; virtual; final;
    function getPriority(): jint; overload; virtual; final;
    procedure setName(para1: JLString); overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
    function getThreadGroup(): JLThreadGroup; overload; virtual; final;
    class function activeCount(): jint; static; overload;
    class function enumerate(para1: Arr1JLThread): jint; static; overload;
    class function enumerate(var para1: array of JLThread): jint; static; overload;
    function countStackFrames(): jint; overload; virtual;
    procedure join(para1: jlong); overload; virtual; final;  // throws java.lang.InterruptedException
    procedure join(para1: jlong; para2: jint); overload; virtual; final;  // throws java.lang.InterruptedException
    procedure join(); overload; virtual; final;  // throws java.lang.InterruptedException
    class procedure dumpStack(); static; overload;
    procedure setDaemon(para1: jboolean); overload; virtual; final;
    function isDaemon(): jboolean; overload; virtual; final;
    procedure checkAccess(); overload; virtual; final;
    function toString(): JLString; overload; virtual;
    function getContextClassLoader(): JLClassLoader; overload; virtual;
    procedure setContextClassLoader(para1: JLClassLoader); overload; virtual;
    class function holdsLock(para1: JLObject): jboolean; static; overload;
    function getStackTrace(): Arr1JLStackTraceElement; overload; virtual;
    class function getAllStackTraces(): JUMap; static; overload;
    function getId(): jlong; overload; virtual;
    function getState(): JLThread.InnerState; overload; virtual;
    class procedure setDefaultUncaughtExceptionHandler(para1: JLThread.InnerUncaughtExceptionHandler); static; overload;
    class function getDefaultUncaughtExceptionHandler(): JLThread.InnerUncaughtExceptionHandler; static; overload;
    function getUncaughtExceptionHandler(): JLThread.InnerUncaughtExceptionHandler; overload; virtual;
    procedure setUncaughtExceptionHandler(para1: JLThread.InnerUncaughtExceptionHandler); overload; virtual;
  end;

  JUTimerTask = class abstract external 'java.util' name 'TimerTask' (JLObject, JLRunnable)
  strict protected
    constructor create(); overload;
  public
    procedure run(); overload; virtual; abstract;
    function cancel(): jboolean; overload; virtual;
    function scheduledExecutionTime(): jlong; overload; virtual;
  end;

  JSTimerQueue = class external 'javax.swing' name 'TimerQueue' (JLObject, JLRunnable)
  public
    constructor create(); overload;
    class function sharedInstance(): JSTimerQueue; static; overload;
    procedure run(); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JRRMISecurityManager = class external 'java.rmi' name 'RMISecurityManager' (JLSecurityManager)
  public
    constructor create(); overload;
  end;

  JCSunJCE_h = class sealed external 'javax.crypto' name 'SunJCE_h' (JLSecurityManager)
  end;

  JBConstructorProperties = interface external 'java.beans' name 'ConstructorProperties' (JLAAnnotation)
    function value(): Arr1JLString; overload;
  end;

  JLDeprecated = interface external 'java.lang' name 'Deprecated' (JLAAnnotation)
  end;

  JLOverride = interface external 'java.lang' name 'Override' (JLAAnnotation)
  end;

  JLSuppressWarnings = interface external 'java.lang' name 'SuppressWarnings' (JLAAnnotation)
    function value(): Arr1JLString; overload;
  end;

  JLADocumented = interface external 'java.lang.annotation' name 'Documented' (JLAAnnotation)
  end;

  JLAInherited = interface external 'java.lang.annotation' name 'Inherited' (JLAAnnotation)
  end;

  JLARetention = interface external 'java.lang.annotation' name 'Retention' (JLAAnnotation)
    function value(): JLARetentionPolicy; overload;
  end;

  JLATarget = interface external 'java.lang.annotation' name 'Target' (JLAAnnotation)
    function value(): Arr1JLAElementType; overload;
  end;

  JAGenerated = interface external 'javax.annotation' name 'Generated' (JLAAnnotation)
    function value(): Arr1JLString; overload;
    function date(): JLString; overload;
    function comments(): JLString; overload;
  end;

  JAPostConstruct = interface external 'javax.annotation' name 'PostConstruct' (JLAAnnotation)
  end;

  JAPreDestroy = interface external 'javax.annotation' name 'PreDestroy' (JLAAnnotation)
  end;

  JAResource = interface external 'javax.annotation' name 'Resource' (JLAAnnotation)
    type
      InnerAuthenticationType = class;
      Arr1InnerAuthenticationType = array of InnerAuthenticationType;
      Arr2InnerAuthenticationType = array of Arr1InnerAuthenticationType;
      Arr3InnerAuthenticationType = array of Arr2InnerAuthenticationType;
      InnerAuthenticationType = class sealed external 'javax.annotation' name 'AuthenticationType' (JLEnum)
      public
        final class var
          fCONTAINER: JAResource.InnerAuthenticationType; external name 'CONTAINER';
          fAPPLICATION: JAResource.InnerAuthenticationType; external name 'APPLICATION';
      public
        class function values(): JAResource.Arr1InnerAuthenticationType; static; overload;
        class function valueOf(para1: JLString): JAResource.InnerAuthenticationType; static; overload;
      end;

    function name(): JLString; overload;
    function &type(): JLClass; overload;
    function authenticationType(): JAResource.InnerAuthenticationType; overload;
    function shareable(): jboolean; overload;
    function mappedName(): JLString; overload;
    function description(): JLString; overload;
  end;

  JAResources = interface external 'javax.annotation' name 'Resources' (JLAAnnotation)
    function value(): Arr1JAResource; overload;
  end;

  JAPSupportedAnnotationTypes = interface external 'javax.annotation.processing' name 'SupportedAnnotationTypes' (JLAAnnotation)
    function value(): Arr1JLString; overload;
  end;

  JAPSupportedOptions = interface external 'javax.annotation.processing' name 'SupportedOptions' (JLAAnnotation)
    function value(): Arr1JLString; overload;
  end;

  JAPSupportedSourceVersion = interface external 'javax.annotation.processing' name 'SupportedSourceVersion' (JLAAnnotation)
    function value(): JLMSourceVersion; overload;
  end;

  JJHandlerChain = interface external 'javax.jws' name 'HandlerChain' (JLAAnnotation)
    function &file(): JLString; overload;
    function name(): JLString; overload;
  end;

  JJOneway = interface external 'javax.jws' name 'Oneway' (JLAAnnotation)
  end;

  JJWebMethod = interface external 'javax.jws' name 'WebMethod' (JLAAnnotation)
    function operationName(): JLString; overload;
    function action(): JLString; overload;
    function exclude(): jboolean; overload;
  end;

  JJWebParam = interface external 'javax.jws' name 'WebParam' (JLAAnnotation)
    type
      InnerMode = class;
      Arr1InnerMode = array of InnerMode;
      Arr2InnerMode = array of Arr1InnerMode;
      Arr3InnerMode = array of Arr2InnerMode;
      InnerMode = class sealed external 'javax.jws' name 'Mode' (JLEnum)
      public
        final class var
          fIN: JJWebParam.InnerMode; external name 'IN';
          fOUT: JJWebParam.InnerMode; external name 'OUT';
          fINOUT: JJWebParam.InnerMode; external name 'INOUT';
      public
        class function values(): JJWebParam.Arr1InnerMode; static; overload;
        class function valueOf(para1: JLString): JJWebParam.InnerMode; static; overload;
      end;

    function name(): JLString; overload;
    function partName(): JLString; overload;
    function targetNamespace(): JLString; overload;
    function mode(): JJWebParam.InnerMode; overload;
    function header(): jboolean; overload;
  end;

  JJWebResult = interface external 'javax.jws' name 'WebResult' (JLAAnnotation)
    function name(): JLString; overload;
    function partName(): JLString; overload;
    function targetNamespace(): JLString; overload;
    function header(): jboolean; overload;
  end;

  JJWebService = interface external 'javax.jws' name 'WebService' (JLAAnnotation)
    function name(): JLString; overload;
    function targetNamespace(): JLString; overload;
    function serviceName(): JLString; overload;
    function portName(): JLString; overload;
    function wsdlLocation(): JLString; overload;
    function endpointInterface(): JLString; overload;
  end;

  JJSInitParam = interface external 'javax.jws.soap' name 'InitParam' (JLAAnnotation)
    function name(): JLString; overload;
    function value(): JLString; overload;
  end;

  JJSSOAPBinding = interface external 'javax.jws.soap' name 'SOAPBinding' (JLAAnnotation)
    type
      InnerParameterStyle = class;
      Arr1InnerParameterStyle = array of InnerParameterStyle;
      Arr2InnerParameterStyle = array of Arr1InnerParameterStyle;
      Arr3InnerParameterStyle = array of Arr2InnerParameterStyle;
      InnerStyle = class;
      Arr1InnerStyle = array of InnerStyle;
      Arr2InnerStyle = array of Arr1InnerStyle;
      Arr3InnerStyle = array of Arr2InnerStyle;
      InnerUse = class;
      Arr1InnerUse = array of InnerUse;
      Arr2InnerUse = array of Arr1InnerUse;
      Arr3InnerUse = array of Arr2InnerUse;
      InnerParameterStyle = class sealed external 'javax.jws.soap' name 'ParameterStyle' (JLEnum)
      public
        final class var
          fBARE: JJSSOAPBinding.InnerParameterStyle; external name 'BARE';
          fWRAPPED: JJSSOAPBinding.InnerParameterStyle; external name 'WRAPPED';
      public
        class function values(): JJSSOAPBinding.Arr1InnerParameterStyle; static; overload;
        class function valueOf(para1: JLString): JJSSOAPBinding.InnerParameterStyle; static; overload;
      end;

      InnerStyle = class sealed external 'javax.jws.soap' name 'Style' (JLEnum)
      public
        final class var
          fDOCUMENT: JJSSOAPBinding.InnerStyle; external name 'DOCUMENT';
          fRPC: JJSSOAPBinding.InnerStyle; external name 'RPC';
      public
        class function values(): JJSSOAPBinding.Arr1InnerStyle; static; overload;
        class function valueOf(para1: JLString): JJSSOAPBinding.InnerStyle; static; overload;
      end;

      InnerUse = class sealed external 'javax.jws.soap' name 'Use' (JLEnum)
      public
        final class var
          fLITERAL: JJSSOAPBinding.InnerUse; external name 'LITERAL';
          fENCODED: JJSSOAPBinding.InnerUse; external name 'ENCODED';
      public
        class function values(): JJSSOAPBinding.Arr1InnerUse; static; overload;
        class function valueOf(para1: JLString): JJSSOAPBinding.InnerUse; static; overload;
      end;

    function style(): JJSSOAPBinding.InnerStyle; overload;
    function use(): JJSSOAPBinding.InnerUse; overload;
    function parameterStyle(): JJSSOAPBinding.InnerParameterStyle; overload;
  end;

  JJSSOAPMessageHandler = interface external 'javax.jws.soap' name 'SOAPMessageHandler' (JLAAnnotation)
    function name(): JLString; overload;
    function className(): JLString; overload;
    function initParams(): Arr1JJSInitParam; overload;
    function roles(): Arr1JLString; overload;
    function headers(): Arr1JLString; overload;
  end;

  JJSSOAPMessageHandlers = interface external 'javax.jws.soap' name 'SOAPMessageHandlers' (JLAAnnotation)
    function value(): Arr1JJSSOAPMessageHandler; overload;
  end;

  JMDescriptorKey = interface external 'javax.management' name 'DescriptorKey' (JLAAnnotation)
    function value(): JLString; overload;
  end;

  JMMXBean = interface external 'javax.management' name 'MXBean' (JLAAnnotation)
    function value(): jboolean; overload;
  end;

  JXBAXmlAccessorOrder = interface external 'javax.xml.bind.annotation' name 'XmlAccessorOrder' (JLAAnnotation)
    function value(): JXBAXmlAccessOrder; overload;
  end;

  JXBAXmlAccessorType = interface external 'javax.xml.bind.annotation' name 'XmlAccessorType' (JLAAnnotation)
    function value(): JXBAXmlAccessType; overload;
  end;

  JXBAXmlAnyAttribute = interface external 'javax.xml.bind.annotation' name 'XmlAnyAttribute' (JLAAnnotation)
  end;

  JXBAXmlAnyElement = interface external 'javax.xml.bind.annotation' name 'XmlAnyElement' (JLAAnnotation)
    function lax(): jboolean; overload;
    function value(): JLClass; overload;
  end;

  JXBAXmlAttachmentRef = interface external 'javax.xml.bind.annotation' name 'XmlAttachmentRef' (JLAAnnotation)
  end;

  JXBAXmlAttribute = interface external 'javax.xml.bind.annotation' name 'XmlAttribute' (JLAAnnotation)
    function name(): JLString; overload;
    function required(): jboolean; overload;
    function namespace(): JLString; overload;
  end;

  JXBAXmlElement = interface external 'javax.xml.bind.annotation' name 'XmlElement' (JLAAnnotation)
    type
      InnerDEFAULT = class;
      Arr1InnerDEFAULT = array of InnerDEFAULT;
      Arr2InnerDEFAULT = array of Arr1InnerDEFAULT;
      Arr3InnerDEFAULT = array of Arr2InnerDEFAULT;
      InnerDEFAULT = class sealed external 'javax.xml.bind.annotation' name 'DEFAULT' (JLObject)
      public
        constructor create(); overload;
      end;

    function name(): JLString; overload;
    function nillable(): jboolean; overload;
    function required(): jboolean; overload;
    function namespace(): JLString; overload;
    function defaultValue(): JLString; overload;
    function &type(): JLClass; overload;
  end;

  JXBAXmlElementDecl = interface external 'javax.xml.bind.annotation' name 'XmlElementDecl' (JLAAnnotation)
    type
      InnerGLOBAL = class;
      Arr1InnerGLOBAL = array of InnerGLOBAL;
      Arr2InnerGLOBAL = array of Arr1InnerGLOBAL;
      Arr3InnerGLOBAL = array of Arr2InnerGLOBAL;
      InnerGLOBAL = class sealed external 'javax.xml.bind.annotation' name 'GLOBAL' (JLObject)
      public
        constructor create(); overload;
      end;

    function scope(): JLClass; overload;
    function namespace(): JLString; overload;
    function name(): JLString; overload;
    function substitutionHeadNamespace(): JLString; overload;
    function substitutionHeadName(): JLString; overload;
    function defaultValue(): JLString; overload;
  end;

  JXBAXmlElementRef = interface external 'javax.xml.bind.annotation' name 'XmlElementRef' (JLAAnnotation)
    type
      InnerDEFAULT = class;
      Arr1InnerDEFAULT = array of InnerDEFAULT;
      Arr2InnerDEFAULT = array of Arr1InnerDEFAULT;
      Arr3InnerDEFAULT = array of Arr2InnerDEFAULT;
      InnerDEFAULT = class sealed external 'javax.xml.bind.annotation' name 'DEFAULT' (JLObject)
      public
        constructor create(); overload;
      end;

    function &type(): JLClass; overload;
    function namespace(): JLString; overload;
    function name(): JLString; overload;
  end;

  JXBAXmlElementRefs = interface external 'javax.xml.bind.annotation' name 'XmlElementRefs' (JLAAnnotation)
    function value(): Arr1JXBAXmlElementRef; overload;
  end;

  JXBAXmlElementWrapper = interface external 'javax.xml.bind.annotation' name 'XmlElementWrapper' (JLAAnnotation)
    function name(): JLString; overload;
    function namespace(): JLString; overload;
    function nillable(): jboolean; overload;
    function required(): jboolean; overload;
  end;

  JXBAXmlElements = interface external 'javax.xml.bind.annotation' name 'XmlElements' (JLAAnnotation)
    function value(): Arr1JXBAXmlElement; overload;
  end;

  JXBAXmlEnum = interface external 'javax.xml.bind.annotation' name 'XmlEnum' (JLAAnnotation)
    function value(): JLClass; overload;
  end;

  JXBAXmlEnumValue = interface external 'javax.xml.bind.annotation' name 'XmlEnumValue' (JLAAnnotation)
    function value(): JLString; overload;
  end;

  JXBAXmlID = interface external 'javax.xml.bind.annotation' name 'XmlID' (JLAAnnotation)
  end;

  JXBAXmlIDREF = interface external 'javax.xml.bind.annotation' name 'XmlIDREF' (JLAAnnotation)
  end;

  JXBAXmlInlineBinaryData = interface external 'javax.xml.bind.annotation' name 'XmlInlineBinaryData' (JLAAnnotation)
  end;

  JXBAXmlList = interface external 'javax.xml.bind.annotation' name 'XmlList' (JLAAnnotation)
  end;

  JXBAXmlMimeType = interface external 'javax.xml.bind.annotation' name 'XmlMimeType' (JLAAnnotation)
    function value(): JLString; overload;
  end;

  JXBAXmlMixed = interface external 'javax.xml.bind.annotation' name 'XmlMixed' (JLAAnnotation)
  end;

  JXBAXmlNs = interface external 'javax.xml.bind.annotation' name 'XmlNs' (JLAAnnotation)
    function prefix(): JLString; overload;
    function namespaceURI(): JLString; overload;
  end;

  JXBAXmlRegistry = interface external 'javax.xml.bind.annotation' name 'XmlRegistry' (JLAAnnotation)
  end;

  JXBAXmlRootElement = interface external 'javax.xml.bind.annotation' name 'XmlRootElement' (JLAAnnotation)
    function namespace(): JLString; overload;
    function name(): JLString; overload;
  end;

  JXBAXmlSchema = interface external 'javax.xml.bind.annotation' name 'XmlSchema' (JLAAnnotation)
    const
      NO_LOCATION = '##generate';
    function xmlns(): Arr1JXBAXmlNs; overload;
    function namespace(): JLString; overload;
    function elementFormDefault(): JXBAXmlNsForm; overload;
    function attributeFormDefault(): JXBAXmlNsForm; overload;
    function location(): JLString; overload;
  end;

  JXBAXmlSchemaType = interface external 'javax.xml.bind.annotation' name 'XmlSchemaType' (JLAAnnotation)
    type
      InnerDEFAULT = class;
      Arr1InnerDEFAULT = array of InnerDEFAULT;
      Arr2InnerDEFAULT = array of Arr1InnerDEFAULT;
      Arr3InnerDEFAULT = array of Arr2InnerDEFAULT;
      InnerDEFAULT = class sealed external 'javax.xml.bind.annotation' name 'DEFAULT' (JLObject)
      public
        constructor create(); overload;
      end;

    function name(): JLString; overload;
    function namespace(): JLString; overload;
    function &type(): JLClass; overload;
  end;

  JXBAXmlSchemaTypes = interface external 'javax.xml.bind.annotation' name 'XmlSchemaTypes' (JLAAnnotation)
    function value(): Arr1JXBAXmlSchemaType; overload;
  end;

  JXBAXmlSeeAlso = interface external 'javax.xml.bind.annotation' name 'XmlSeeAlso' (JLAAnnotation)
    function value(): Arr1JLClass; overload;
  end;

  JXBAXmlTransient = interface external 'javax.xml.bind.annotation' name 'XmlTransient' (JLAAnnotation)
  end;

  JXBAXmlType = interface external 'javax.xml.bind.annotation' name 'XmlType' (JLAAnnotation)
    type
      InnerDEFAULT = class;
      Arr1InnerDEFAULT = array of InnerDEFAULT;
      Arr2InnerDEFAULT = array of Arr1InnerDEFAULT;
      Arr3InnerDEFAULT = array of Arr2InnerDEFAULT;
      InnerDEFAULT = class sealed external 'javax.xml.bind.annotation' name 'DEFAULT' (JLObject)
      public
        constructor create(); overload;
      end;

    function name(): JLString; overload;
    function propOrder(): Arr1JLString; overload;
    function namespace(): JLString; overload;
    function factoryClass(): JLClass; overload;
    function factoryMethod(): JLString; overload;
  end;

  JXBAXmlValue = interface external 'javax.xml.bind.annotation' name 'XmlValue' (JLAAnnotation)
  end;

  JXBAAXmlJavaTypeAdapter = interface external 'javax.xml.bind.annotation.adapters' name 'XmlJavaTypeAdapter' (JLAAnnotation)
    type
      InnerDEFAULT = class;
      Arr1InnerDEFAULT = array of InnerDEFAULT;
      Arr2InnerDEFAULT = array of Arr1InnerDEFAULT;
      Arr3InnerDEFAULT = array of Arr2InnerDEFAULT;
      InnerDEFAULT = class sealed external 'javax.xml.bind.annotation.adapters' name 'DEFAULT' (JLObject)
      public
        constructor create(); overload;
      end;

    function value(): JLClass; overload;
    function &type(): JLClass; overload;
  end;

  JXBAAXmlJavaTypeAdapters = interface external 'javax.xml.bind.annotation.adapters' name 'XmlJavaTypeAdapters' (JLAAnnotation)
    function value(): Arr1JXBAAXmlJavaTypeAdapter; overload;
  end;

  JXWAction = interface external 'javax.xml.ws' name 'Action' (JLAAnnotation)
    function input(): JLString; overload;
    function output(): JLString; overload;
    function fault(): Arr1JXWFaultAction; overload;
  end;

  JXWBindingType = interface external 'javax.xml.ws' name 'BindingType' (JLAAnnotation)
    function value(): JLString; overload;
  end;

  JXWFaultAction = interface external 'javax.xml.ws' name 'FaultAction' (JLAAnnotation)
    function className(): JLClass; overload;
    function value(): JLString; overload;
  end;

  JXWRequestWrapper = interface external 'javax.xml.ws' name 'RequestWrapper' (JLAAnnotation)
    function localName(): JLString; overload;
    function targetNamespace(): JLString; overload;
    function className(): JLString; overload;
  end;

  JXWRespectBinding = interface external 'javax.xml.ws' name 'RespectBinding' (JLAAnnotation)
    function enabled(): jboolean; overload;
  end;

  JXWResponseWrapper = interface external 'javax.xml.ws' name 'ResponseWrapper' (JLAAnnotation)
    function localName(): JLString; overload;
    function targetNamespace(): JLString; overload;
    function className(): JLString; overload;
  end;

  JXWWebEndpoint = interface external 'javax.xml.ws' name 'WebEndpoint' (JLAAnnotation)
    function name(): JLString; overload;
  end;

  JXWWebFault = interface external 'javax.xml.ws' name 'WebFault' (JLAAnnotation)
    function name(): JLString; overload;
    function targetNamespace(): JLString; overload;
    function faultBean(): JLString; overload;
  end;

  JXWWebServiceClient = interface external 'javax.xml.ws' name 'WebServiceClient' (JLAAnnotation)
    function name(): JLString; overload;
    function targetNamespace(): JLString; overload;
    function wsdlLocation(): JLString; overload;
  end;

  JXWWebServiceProvider = interface external 'javax.xml.ws' name 'WebServiceProvider' (JLAAnnotation)
    function wsdlLocation(): JLString; overload;
    function serviceName(): JLString; overload;
    function targetNamespace(): JLString; overload;
    function portName(): JLString; overload;
  end;

  JXWWebServiceRef = interface external 'javax.xml.ws' name 'WebServiceRef' (JLAAnnotation)
    function name(): JLString; overload;
    function &type(): JLClass; overload;
    function mappedName(): JLString; overload;
    function value(): JLClass; overload;
    function wsdlLocation(): JLString; overload;
  end;

  JXWWebServiceRefs = interface external 'javax.xml.ws' name 'WebServiceRefs' (JLAAnnotation)
    function value(): Arr1JXWWebServiceRef; overload;
  end;

  JXWSAddressing = interface external 'javax.xml.ws.soap' name 'Addressing' (JLAAnnotation)
    function enabled(): jboolean; overload;
    function required(): jboolean; overload;
  end;

  JXWSMTOM = interface external 'javax.xml.ws.soap' name 'MTOM' (JLAAnnotation)
    function enabled(): jboolean; overload;
    function threshold(): jint; overload;
  end;

  JXWSWebServiceFeatureAnnotation = interface external 'javax.xml.ws.spi' name 'WebServiceFeatureAnnotation' (JLAAnnotation)
    function id(): JLString; overload;
    function bean(): JLClass; overload;
  end;

  JLMMonitorInfo = class external 'java.lang.management' name 'MonitorInfo' (JLMLockInfo)
  public
    constructor create(para1: JLString; para2: jint; para3: jint; para4: JLStackTraceElement); overload;
    function getLockedStackDepth(): jint; overload; virtual;
    function getLockedStackFrame(): JLStackTraceElement; overload; virtual;
    class function from(para1: JMOCompositeData): JLMMonitorInfo; static; overload;
  end;

  JLMGarbageCollectorMXBean = interface external 'java.lang.management' name 'GarbageCollectorMXBean' (JLMMemoryManagerMXBean)
    function getCollectionCount(): jlong; overload;
    function getCollectionTime(): jlong; overload;
  end;

  JLRFinalReference = class external 'java.lang.ref' name 'FinalReference' (JLRReference)
  public
    constructor create(para1: JLObject; para2: JLRReferenceQueue); overload;
  end;

  JLRPhantomReference = class external 'java.lang.ref' name 'PhantomReference' (JLRReference)
  public
    function get(): JLObject; overload; virtual;
    constructor create(para1: JLObject; para2: JLRReferenceQueue); overload;
  end;

  JLRSoftReference = class external 'java.lang.ref' name 'SoftReference' (JLRReference)
  public
    constructor create(para1: JLObject); overload;
    constructor create(para1: JLObject; para2: JLRReferenceQueue); overload;
    function get(): JLObject; overload; virtual;
  end;

  JLRWeakReference = class external 'java.lang.ref' name 'WeakReference' (JLRReference)
  public
    constructor create(para1: JLObject); overload;
    constructor create(para1: JLObject; para2: JLRReferenceQueue); overload;
  end;

  JBEventHandler = class external 'java.beans' name 'EventHandler' (JLObject, JLRInvocationHandler)
  public
    constructor create(para1: JLObject; para2: JLString; para3: JLString; para4: JLString); overload;
    function getTarget(): JLObject; overload; virtual;
    function getAction(): JLString; overload; virtual;
    function getEventPropertyName(): JLString; overload; virtual;
    function getListenerMethodName(): JLString; overload; virtual;
    function invoke(para1: JLObject; para2: JLRMethod; para3: Arr1JLObject): JLObject; overload; virtual;
    function invoke(para1: JLObject; para2: JLRMethod; var para3: array of JLObject): JLObject; overload; virtual;
    class function create_(para1: JLClass; para2: JLObject; para3: JLString): JLObject; static; external name 'create'; overload;
    class function create_(para1: JLClass; para2: JLObject; para3: JLString; para4: JLString): JLObject; static; external name 'create'; overload;
    class function create_(para1: JLClass; para2: JLObject; para3: JLString; para4: JLString; para5: JLString): JLObject; static; external name 'create'; overload;
  end;

  JMMBeanServerInvocationHandler = class external 'javax.management' name 'MBeanServerInvocationHandler' (JLObject, JLRInvocationHandler)
  public
    constructor create(para1: JMMBeanServerConnection; para2: JMObjectName); overload;
    constructor create(para1: JMMBeanServerConnection; para2: JMObjectName; para3: jboolean); overload;
    function getMBeanServerConnection(): JMMBeanServerConnection; overload; virtual;
    function getObjectName(): JMObjectName; overload; virtual;
    function isMXBean(): jboolean; overload; virtual;
    class function newProxyInstance(para1: JMMBeanServerConnection; para2: JMObjectName; para3: JLClass; para4: jboolean): JLObject; static; overload;
    function invoke(para1: JLObject; para2: JLRMethod; para3: Arr1JLObject): JLObject; overload; virtual;  // throws java.lang.Throwable
    function invoke(para1: JLObject; para2: JLRMethod; var para3: array of JLObject): JLObject; overload; virtual;  // throws java.lang.Throwable
  end;

  JMOCompositeDataInvocationHandler = class external 'javax.management.openmbean' name 'CompositeDataInvocationHandler' (JLObject, JLRInvocationHandler)
  public
    constructor create(para1: JMOCompositeData); overload;
    function getCompositeData(): JMOCompositeData; overload; virtual;
    function invoke(para1: JLObject; para2: JLRMethod; para3: Arr1JLObject): JLObject; overload; virtual;  // throws java.lang.Throwable
    function invoke(para1: JLObject; para2: JLRMethod; var para3: array of JLObject): JLObject; overload; virtual;  // throws java.lang.Throwable
  end;

  JMSignedMutableBigInteger = class external 'java.math' name 'SignedMutableBigInteger' (JMMutableBigInteger)
  public
    function toString(): JLString; overload; virtual;
  end;

  JNSecureCacheResponse = class abstract external 'java.net' name 'SecureCacheResponse' (JNCacheResponse)
  public
    constructor create(); overload;
    function getCipherSuite(): JLString; overload; virtual; abstract;
    function getLocalCertificateChain(): JUList; overload; virtual; abstract;
    function getServerCertificateChain(): JUList; overload; virtual; abstract;  // throws javax.net.ssl.SSLPeerUnverifiedException
    function getPeerPrincipal(): JSPrincipal; overload; virtual; abstract;  // throws javax.net.ssl.SSLPeerUnverifiedException
    function getLocalPrincipal(): JSPrincipal; overload; virtual; abstract;
  end;

  JNUnknownContentHandler = class external 'java.net' name 'UnknownContentHandler' (JNContentHandler)
  public
    function getContent(para1: JNURLConnection): JLObject; overload; virtual;  // throws java.io.IOException
  end;

  JNCookieManager = class external 'java.net' name 'CookieManager' (JNCookieHandler)
  public
    type
      InnerCookiePathComparator = class;
      Arr1InnerCookiePathComparator = array of InnerCookiePathComparator;
      Arr2InnerCookiePathComparator = array of Arr1InnerCookiePathComparator;
      Arr3InnerCookiePathComparator = array of Arr2InnerCookiePathComparator;
      InnerCookiePathComparator = class external 'java.net' name 'CookiePathComparator' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: JNCookieStore; para2: JNCookiePolicy); overload;
    procedure setCookiePolicy(para1: JNCookiePolicy); overload; virtual;
    function getCookieStore(): JNCookieStore; overload; virtual;
    function get(para1: JNURI; para2: JUMap): JUMap; overload; virtual;  // throws java.io.IOException
    procedure put(para1: JNURI; para2: JUMap); overload; virtual;  // throws java.io.IOException
  end;

  JNMulticastSocket = class external 'java.net' name 'MulticastSocket' (JNDatagramSocket)
  public
    constructor create(); overload;  // throws java.io.IOException
    constructor create(para1: jint); overload;  // throws java.io.IOException
    constructor create(para1: JNSocketAddress); overload;  // throws java.io.IOException
    procedure setTTL(para1: jbyte); overload; virtual;  // throws java.io.IOException
    procedure setTimeToLive(para1: jint); overload; virtual;  // throws java.io.IOException
    function getTTL(): jbyte; overload; virtual;  // throws java.io.IOException
    function getTimeToLive(): jint; overload; virtual;  // throws java.io.IOException
    procedure joinGroup(para1: JNInetAddress); overload; virtual;  // throws java.io.IOException
    procedure leaveGroup(para1: JNInetAddress); overload; virtual;  // throws java.io.IOException
    procedure joinGroup(para1: JNSocketAddress; para2: JNNetworkInterface); overload; virtual;  // throws java.io.IOException
    procedure leaveGroup(para1: JNSocketAddress; para2: JNNetworkInterface); overload; virtual;  // throws java.io.IOException
    procedure setInterface(para1: JNInetAddress); overload; virtual;  // throws java.net.SocketException
    function getInterface(): JNInetAddress; overload; virtual;  // throws java.net.SocketException
    procedure setNetworkInterface(para1: JNNetworkInterface); overload; virtual;  // throws java.net.SocketException
    function getNetworkInterface(): JNNetworkInterface; overload; virtual;  // throws java.net.SocketException
    procedure setLoopbackMode(para1: jboolean); overload; virtual;  // throws java.net.SocketException
    function getLoopbackMode(): jboolean; overload; virtual;  // throws java.net.SocketException
    procedure send(para1: JNDatagramPacket; para2: jbyte); overload; virtual;  // throws java.io.IOException
  end;

  JNInet4AddressImpl = class external 'java.net' name 'Inet4AddressImpl' (JLObject, JNInetAddressImpl)
  public
    function getLocalHostName(): JLString; overload; virtual;  // throws java.net.UnknownHostException
    function lookupAllHostAddr(para1: JLString): Arr1JNInetAddress; overload; virtual;  // throws java.net.UnknownHostException
    function getHostByAddr(para1: Arr1jbyte): JLString; overload; virtual;  // throws java.net.UnknownHostException
    function getHostByAddr(var para1: array of jbyte): JLString; overload; virtual;  // throws java.net.UnknownHostException
    function anyLocalAddress(): JNInetAddress; overload; virtual;
    function loopbackAddress(): JNInetAddress; overload; virtual;
    function isReachable(para1: JNInetAddress; para2: jint; para3: JNNetworkInterface; para4: jint): jboolean; overload; virtual;  // throws java.io.IOException
  end;

  JNInet6AddressImpl = class external 'java.net' name 'Inet6AddressImpl' (JLObject, JNInetAddressImpl)
  public
    function getLocalHostName(): JLString; overload; virtual;  // throws java.net.UnknownHostException
    function lookupAllHostAddr(para1: JLString): Arr1JNInetAddress; overload; virtual;  // throws java.net.UnknownHostException
    function getHostByAddr(para1: Arr1jbyte): JLString; overload; virtual;  // throws java.net.UnknownHostException
    function getHostByAddr(var para1: array of jbyte): JLString; overload; virtual;  // throws java.net.UnknownHostException
    function isReachable(para1: JNInetAddress; para2: jint; para3: JNNetworkInterface; para4: jint): jboolean; overload; virtual;  // throws java.io.IOException
    function anyLocalAddress(): JNInetAddress; overload; virtual;
    function loopbackAddress(): JNInetAddress; overload; virtual;
  end;

  JNSSSLServerSocket = class abstract external 'javax.net.ssl' name 'SSLServerSocket' (JNServerSocket)
  strict protected
    constructor create(); overload;  // throws java.io.IOException
    constructor create(para1: jint); overload;  // throws java.io.IOException
    constructor create(para1: jint; para2: jint); overload;  // throws java.io.IOException
    constructor create(para1: jint; para2: jint; para3: JNInetAddress); overload;  // throws java.io.IOException
  public
    function getEnabledCipherSuites(): Arr1JLString; overload; virtual; abstract;
    procedure setEnabledCipherSuites(para1: Arr1JLString); overload; virtual; abstract;
    procedure setEnabledCipherSuites(var para1: array of JLString); overload; virtual; abstract;
    function getSupportedCipherSuites(): Arr1JLString; overload; virtual; abstract;
    function getSupportedProtocols(): Arr1JLString; overload; virtual; abstract;
    function getEnabledProtocols(): Arr1JLString; overload; virtual; abstract;
    procedure setEnabledProtocols(para1: Arr1JLString); overload; virtual; abstract;
    procedure setEnabledProtocols(var para1: array of JLString); overload; virtual; abstract;
    procedure setNeedClientAuth(para1: jboolean); overload; virtual; abstract;
    function getNeedClientAuth(): jboolean; overload; virtual; abstract;
    procedure setWantClientAuth(para1: jboolean); overload; virtual; abstract;
    function getWantClientAuth(): jboolean; overload; virtual; abstract;
    procedure setUseClientMode(para1: jboolean); overload; virtual; abstract;
    function getUseClientMode(): jboolean; overload; virtual; abstract;
    procedure setEnableSessionCreation(para1: jboolean); overload; virtual; abstract;
    function getEnableSessionCreation(): jboolean; overload; virtual; abstract;
  end;

  JNSSSLSocket = class abstract external 'javax.net.ssl' name 'SSLSocket' (JNSocket)
  strict protected
    constructor create(); overload;
    constructor create(para1: JLString; para2: jint); overload;  // throws java.io.IOException, java.net.UnknownHostException
    constructor create(para1: JNInetAddress; para2: jint); overload;  // throws java.io.IOException
    constructor create(para1: JLString; para2: jint; para3: JNInetAddress; para4: jint); overload;  // throws java.io.IOException, java.net.UnknownHostException
    constructor create(para1: JNInetAddress; para2: jint; para3: JNInetAddress; para4: jint); overload;  // throws java.io.IOException
  public
    function getSupportedCipherSuites(): Arr1JLString; overload; virtual; abstract;
    function getEnabledCipherSuites(): Arr1JLString; overload; virtual; abstract;
    procedure setEnabledCipherSuites(para1: Arr1JLString); overload; virtual; abstract;
    procedure setEnabledCipherSuites(var para1: array of JLString); overload; virtual; abstract;
    function getSupportedProtocols(): Arr1JLString; overload; virtual; abstract;
    function getEnabledProtocols(): Arr1JLString; overload; virtual; abstract;
    procedure setEnabledProtocols(para1: Arr1JLString); overload; virtual; abstract;
    procedure setEnabledProtocols(var para1: array of JLString); overload; virtual; abstract;
    function getSession(): JNSSSLSession; overload; virtual; abstract;
    procedure addHandshakeCompletedListener(para1: JNSHandshakeCompletedListener); overload; virtual; abstract;
    procedure removeHandshakeCompletedListener(para1: JNSHandshakeCompletedListener); overload; virtual; abstract;
    procedure startHandshake(); overload; virtual; abstract;  // throws java.io.IOException
    procedure setUseClientMode(para1: jboolean); overload; virtual; abstract;
    function getUseClientMode(): jboolean; overload; virtual; abstract;
    procedure setNeedClientAuth(para1: jboolean); overload; virtual; abstract;
    function getNeedClientAuth(): jboolean; overload; virtual; abstract;
    procedure setWantClientAuth(para1: jboolean); overload; virtual; abstract;
    function getWantClientAuth(): jboolean; overload; virtual; abstract;
    procedure setEnableSessionCreation(para1: jboolean); overload; virtual; abstract;
    function getEnableSessionCreation(): jboolean; overload; virtual; abstract;
    function getSSLParameters(): JNSSSLParameters; overload; virtual;
    procedure setSSLParameters(para1: JNSSSLParameters); overload; virtual;
  end;

  JNDatagramSocketImpl = class abstract external 'java.net' name 'DatagramSocketImpl' (JLObject, JNSocketOptions)
  strict protected
    var
      flocalPort: jint; external name 'localPort';
      ffd: JIFileDescriptor; external name 'fd';
  public
    constructor create(); overload;
  strict protected
    procedure create_(); external name 'create'; overload; virtual; abstract;  // throws java.net.SocketException
    procedure bind(para1: jint; para2: JNInetAddress); overload; virtual; abstract;  // throws java.net.SocketException
    procedure send(para1: JNDatagramPacket); overload; virtual; abstract;  // throws java.io.IOException
    procedure connect(para1: JNInetAddress; para2: jint); overload; virtual;  // throws java.net.SocketException
    procedure disconnect(); overload; virtual;
    function peek(para1: JNInetAddress): jint; overload; virtual; abstract;  // throws java.io.IOException
    function peekData(para1: JNDatagramPacket): jint; overload; virtual; abstract;  // throws java.io.IOException
    procedure receive(para1: JNDatagramPacket); overload; virtual; abstract;  // throws java.io.IOException
    procedure setTTL(para1: jbyte); overload; virtual; abstract;  // throws java.io.IOException
    function getTTL(): jbyte; overload; virtual; abstract;  // throws java.io.IOException
    procedure setTimeToLive(para1: jint); overload; virtual; abstract;  // throws java.io.IOException
    function getTimeToLive(): jint; overload; virtual; abstract;  // throws java.io.IOException
    procedure join(para1: JNInetAddress); overload; virtual; abstract;  // throws java.io.IOException
    procedure leave(para1: JNInetAddress); overload; virtual; abstract;  // throws java.io.IOException
    procedure joinGroup(para1: JNSocketAddress; para2: JNNetworkInterface); overload; virtual; abstract;  // throws java.io.IOException
    procedure leaveGroup(para1: JNSocketAddress; para2: JNNetworkInterface); overload; virtual; abstract;  // throws java.io.IOException
    procedure close(); overload; virtual; abstract;
    function getLocalPort(): jint; overload; virtual;
    function getFileDescriptor(): JIFileDescriptor; overload; virtual;
  end;

  JNSocketImpl = class abstract external 'java.net' name 'SocketImpl' (JLObject, JNSocketOptions)
  strict protected
    var
      ffd: JIFileDescriptor; external name 'fd';
      faddress: JNInetAddress; external name 'address';
      fport: jint; external name 'port';
      flocalport: jint; external name 'localport';
  public
    constructor create(); overload;
  strict protected
    procedure create_(para1: jboolean); external name 'create'; overload; virtual; abstract;  // throws java.io.IOException
    procedure connect(para1: JLString; para2: jint); overload; virtual; abstract;  // throws java.io.IOException
    procedure connect(para1: JNInetAddress; para2: jint); overload; virtual; abstract;  // throws java.io.IOException
    procedure connect(para1: JNSocketAddress; para2: jint); overload; virtual; abstract;  // throws java.io.IOException
    procedure bind(para1: JNInetAddress; para2: jint); overload; virtual; abstract;  // throws java.io.IOException
    procedure listen(para1: jint); overload; virtual; abstract;  // throws java.io.IOException
    procedure accept(para1: JNSocketImpl); overload; virtual; abstract;  // throws java.io.IOException
    function getInputStream(): JIInputStream; overload; virtual; abstract;  // throws java.io.IOException
    function getOutputStream(): JIOutputStream; overload; virtual; abstract;  // throws java.io.IOException
    function available(): jint; overload; virtual; abstract;  // throws java.io.IOException
    procedure close(); overload; virtual; abstract;  // throws java.io.IOException
    procedure shutdownInput(); overload; virtual;  // throws java.io.IOException
    procedure shutdownOutput(); overload; virtual;  // throws java.io.IOException
    function getFileDescriptor(): JIFileDescriptor; overload; virtual;
    function getInetAddress(): JNInetAddress; overload; virtual;
    function getPort(): jint; overload; virtual;
    function supportsUrgentData(): jboolean; overload; virtual;
    procedure sendUrgentData(para1: jint); overload; virtual; abstract;  // throws java.io.IOException
    function getLocalPort(): jint; overload; virtual;
  public
    function toString(): JLString; overload; virtual;
  strict protected
    procedure setPerformancePreferences(para1: jint; para2: jint; para3: jint); overload; virtual;
  end;

  JNHttpURLConnection = class abstract external 'java.net' name 'HttpURLConnection' (JNURLConnection)
  strict protected
    var
      fmethod: JLString; external name 'method';
      fchunkLength: jint; external name 'chunkLength';
      ffixedContentLength: jint; external name 'fixedContentLength';
      fresponseCode: jint; external name 'responseCode';
      fresponseMessage: JLString; external name 'responseMessage';
      finstanceFollowRedirects: jboolean; external name 'instanceFollowRedirects';
  public
    const
      HTTP_OK = 200;
      HTTP_CREATED = 201;
      HTTP_ACCEPTED = 202;
      HTTP_NOT_AUTHORITATIVE = 203;
      HTTP_NO_CONTENT = 204;
      HTTP_RESET = 205;
      HTTP_PARTIAL = 206;
      HTTP_MULT_CHOICE = 300;
      HTTP_MOVED_PERM = 301;
      HTTP_MOVED_TEMP = 302;
      HTTP_SEE_OTHER = 303;
      HTTP_NOT_MODIFIED = 304;
      HTTP_USE_PROXY = 305;
      HTTP_BAD_REQUEST = 400;
      HTTP_UNAUTHORIZED = 401;
      HTTP_PAYMENT_REQUIRED = 402;
      HTTP_FORBIDDEN = 403;
      HTTP_NOT_FOUND = 404;
      HTTP_BAD_METHOD = 405;
      HTTP_NOT_ACCEPTABLE = 406;
      HTTP_PROXY_AUTH = 407;
      HTTP_CLIENT_TIMEOUT = 408;
      HTTP_CONFLICT = 409;
      HTTP_GONE = 410;
      HTTP_LENGTH_REQUIRED = 411;
      HTTP_PRECON_FAILED = 412;
      HTTP_ENTITY_TOO_LARGE = 413;
      HTTP_REQ_TOO_LONG = 414;
      HTTP_UNSUPPORTED_TYPE = 415;
      HTTP_SERVER_ERROR = 500 deprecated;
      HTTP_INTERNAL_ERROR = 500;
      HTTP_NOT_IMPLEMENTED = 501;
      HTTP_BAD_GATEWAY = 502;
      HTTP_UNAVAILABLE = 503;
      HTTP_GATEWAY_TIMEOUT = 504;
      HTTP_VERSION = 505;
  public
    function getHeaderFieldKey(para1: jint): JLString; overload; virtual;
    procedure setFixedLengthStreamingMode(para1: jint); overload; virtual;
    procedure setChunkedStreamingMode(para1: jint); overload; virtual;
    function getHeaderField(para1: jint): JLString; overload; virtual;
  strict protected
    constructor create(para1: JNURL); overload;
  public
    class procedure setFollowRedirects(para1: jboolean); static; overload;
    class function getFollowRedirects(): jboolean; static; overload;
    procedure setInstanceFollowRedirects(para1: jboolean); overload; virtual;
    function getInstanceFollowRedirects(): jboolean; overload; virtual;
    procedure setRequestMethod(para1: JLString); overload; virtual;  // throws java.net.ProtocolException
    function getRequestMethod(): JLString; overload; virtual;
    function getResponseCode(): jint; overload; virtual;  // throws java.io.IOException
    function getResponseMessage(): JLString; overload; virtual;  // throws java.io.IOException
    function getHeaderFieldDate(para1: JLString; para2: jlong): jlong; overload; virtual;
    procedure disconnect(); overload; virtual; abstract;
    function usingProxy(): jboolean; overload; virtual; abstract;
    function getPermission(): JSPermission; overload; virtual;  // throws java.io.IOException
    function getErrorStream(): JIInputStream; overload; virtual;
  end;

  JNJarURLConnection = class abstract external 'java.net' name 'JarURLConnection' (JNURLConnection)
  strict protected
    var
      fjarFileURLConnection: JNURLConnection; external name 'jarFileURLConnection';
  strict protected
    constructor create(para1: JNURL); overload;  // throws java.net.MalformedURLException
  public
    function getJarFileURL(): JNURL; overload; virtual;
    function getEntryName(): JLString; overload; virtual;
    function getJarFile(): JUJJarFile; overload; virtual; abstract;  // throws java.io.IOException
    function getManifest(): JUJManifest; overload; virtual;  // throws java.io.IOException
    function getJarEntry(): JUJJarEntry; overload; virtual;  // throws java.io.IOException
    function getAttributes(): JUJAttributes; overload; virtual;  // throws java.io.IOException
    function getMainAttributes(): JUJAttributes; overload; virtual;  // throws java.io.IOException
    function getCertificates(): Arr1JSCCertificate; overload; virtual;  // throws java.io.IOException
  end;

  JNCSAbstractSelectionKey = class abstract external 'java.nio.channels.spi' name 'AbstractSelectionKey' (JNCSelectionKey)
  strict protected
    constructor create(); overload;
  public
    function isValid(): jboolean; overload; virtual; final;
    procedure cancel(); overload; virtual; final;
  end;

  JNCSAbstractSelector = class abstract external 'java.nio.channels.spi' name 'AbstractSelector' (JNCSelector)
  strict protected
    constructor create(para1: JNCSSelectorProvider); overload;
  public
    procedure close(); overload; virtual; final;  // throws java.io.IOException
  strict protected
    procedure implCloseSelector(); overload; virtual; abstract;  // throws java.io.IOException
  public
    function isOpen(): jboolean; overload; virtual; final;
    function provider(): JNCSSelectorProvider; overload; virtual; final;
  strict protected
    function cancelledKeys(): JUSet; overload; virtual; final;
    function register(para1: JNCSAbstractSelectableChannel; para2: jint; para3: JLObject): JNCSelectionKey; overload; virtual; abstract;
    procedure deregister(para1: JNCSAbstractSelectionKey); overload; virtual; final;
    procedure &begin(); overload; virtual; final;
    procedure &end(); overload; virtual; final;
  end;

  JRAActivationInstantiator = interface external 'java.rmi.activation' name 'ActivationInstantiator' (JRRemote)
    function newInstance(para1: JRAActivationID; para2: JRAActivationDesc): JRMarshalledObject; overload;  // throws java.rmi.activation.ActivationException, java.rmi.RemoteException
  end;

  JRAActivationMonitor = interface external 'java.rmi.activation' name 'ActivationMonitor' (JRRemote)
    procedure inactiveObject(para1: JRAActivationID); overload;  // throws java.rmi.activation.UnknownObjectException, java.rmi.RemoteException
    procedure activeObject(para1: JRAActivationID; para2: JRMarshalledObject); overload;  // throws java.rmi.activation.UnknownObjectException, java.rmi.RemoteException
    procedure inactiveGroup(para1: JRAActivationGroupID; para2: jlong); overload;  // throws java.rmi.activation.UnknownGroupException, java.rmi.RemoteException
  end;

  JRAActivationSystem = interface external 'java.rmi.activation' name 'ActivationSystem' (JRRemote)
    const
      SYSTEM_PORT = 1098;
    function registerObject(para1: JRAActivationDesc): JRAActivationID; overload;  // throws java.rmi.activation.ActivationException, java.rmi.activation.UnknownGroupException, java.rmi.RemoteException
    procedure unregisterObject(para1: JRAActivationID); overload;  // throws java.rmi.activation.ActivationException, java.rmi.activation.UnknownObjectException, java.rmi.RemoteException
    function registerGroup(para1: JRAActivationGroupDesc): JRAActivationGroupID; overload;  // throws java.rmi.activation.ActivationException, java.rmi.RemoteException
    function activeGroup(para1: JRAActivationGroupID; para2: JRAActivationInstantiator; para3: jlong): JRAActivationMonitor; overload;  // throws java.rmi.activation.UnknownGroupException, java.rmi.activation.ActivationException, java.rmi.RemoteException
    procedure unregisterGroup(para1: JRAActivationGroupID); overload;  // throws java.rmi.activation.ActivationException, java.rmi.activation.UnknownGroupException, java.rmi.RemoteException
    procedure shutdown(); overload;  // throws java.rmi.RemoteException
    function setActivationDesc(para1: JRAActivationID; para2: JRAActivationDesc): JRAActivationDesc; overload;  // throws java.rmi.activation.ActivationException, java.rmi.activation.UnknownObjectException, java.rmi.activation.UnknownGroupException, java.rmi.RemoteException
    function setActivationGroupDesc(para1: JRAActivationGroupID; para2: JRAActivationGroupDesc): JRAActivationGroupDesc; overload;  // throws java.rmi.activation.ActivationException, java.rmi.activation.UnknownGroupException, java.rmi.RemoteException
    function getActivationDesc(para1: JRAActivationID): JRAActivationDesc; overload;  // throws java.rmi.activation.ActivationException, java.rmi.activation.UnknownObjectException, java.rmi.RemoteException
    function getActivationGroupDesc(para1: JRAActivationGroupID): JRAActivationGroupDesc; overload;  // throws java.rmi.activation.ActivationException, java.rmi.activation.UnknownGroupException, java.rmi.RemoteException
  end;

  JRAActivator = interface external 'java.rmi.activation' name 'Activator' (JRRemote)
    function activate(para1: JRAActivationID; para2: jboolean): JRMarshalledObject; overload;  // throws java.rmi.activation.ActivationException, java.rmi.activation.UnknownObjectException, java.rmi.RemoteException
  end;

  JRDDGC = interface external 'java.rmi.dgc' name 'DGC' (JRRemote)
    function dirty(para1: Arr1JRSObjID; para2: jlong; para3: JRDLease): JRDLease; overload;  // throws java.rmi.RemoteException
    function dirty(var para1: array of JRSObjID; para2: jlong; para3: JRDLease): JRDLease; overload;  // throws java.rmi.RemoteException
    procedure clean(para1: Arr1JRSObjID; para2: jlong; para3: JRDVMID; para4: jboolean); overload;  // throws java.rmi.RemoteException
    procedure clean(var para1: array of JRSObjID; para2: jlong; para3: JRDVMID; para4: jboolean); overload;  // throws java.rmi.RemoteException
  end;

  JRRRegistry = interface external 'java.rmi.registry' name 'Registry' (JRRemote)
    const
      REGISTRY_PORT = 1099;
    function lookup(para1: JLString): JRRemote; overload;  // throws java.rmi.RemoteException, java.rmi.NotBoundException, java.rmi.AccessException
    procedure bind(para1: JLString; para2: JRRemote); overload;  // throws java.rmi.RemoteException, java.rmi.AlreadyBoundException, java.rmi.AccessException
    procedure unbind(para1: JLString); overload;  // throws java.rmi.RemoteException, java.rmi.NotBoundException, java.rmi.AccessException
    procedure rebind(para1: JLString; para2: JRRemote); overload;  // throws java.rmi.RemoteException, java.rmi.AccessException
    function list(): Arr1JLString; overload;  // throws java.rmi.RemoteException, java.rmi.AccessException
  end;

  JRSRemoteObject = class abstract external 'java.rmi.server' name 'RemoteObject' (JLObject, JRRemote, JISerializable)
  strict protected
    var
      fref: JRSRemoteRef; external name 'ref';
  strict protected
    constructor create(); overload;
    constructor create(para1: JRSRemoteRef); overload;
  public
    function getRef(): JRSRemoteRef; overload; virtual;
    class function toStub(para1: JRRemote): JRRemote; static; overload;  // throws java.rmi.NoSuchObjectException
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JMRRRMIConnection = interface external 'javax.management.remote.rmi' name 'RMIConnection' (JICloseable, JRRemote)
    function getConnectionId(): JLString; overload;  // throws java.io.IOException
    procedure close(); overload;  // throws java.io.IOException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JSASubject): JMObjectInstance; overload;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, java.io.IOException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JMObjectName; para4: JSASubject): JMObjectInstance; overload;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, javax.management.InstanceNotFoundException, java.io.IOException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JRMarshalledObject; para4: Arr1JLString; para5: JSASubject): JMObjectInstance; overload;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, java.io.IOException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JRMarshalledObject; var para4: array of JLString; para5: JSASubject): JMObjectInstance; overload;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, java.io.IOException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JMObjectName; para4: JRMarshalledObject; para5: Arr1JLString; para6: JSASubject): JMObjectInstance; overload;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, javax.management.InstanceNotFoundException, java.io.IOException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JMObjectName; para4: JRMarshalledObject; var para5: array of JLString; para6: JSASubject): JMObjectInstance; overload;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, javax.management.InstanceNotFoundException, java.io.IOException
    procedure unregisterMBean(para1: JMObjectName; para2: JSASubject); overload;  // throws javax.management.InstanceNotFoundException, javax.management.MBeanRegistrationException, java.io.IOException
    function getObjectInstance(para1: JMObjectName; para2: JSASubject): JMObjectInstance; overload;  // throws javax.management.InstanceNotFoundException, java.io.IOException
    function queryMBeans(para1: JMObjectName; para2: JRMarshalledObject; para3: JSASubject): JUSet; overload;  // throws java.io.IOException
    function queryNames(para1: JMObjectName; para2: JRMarshalledObject; para3: JSASubject): JUSet; overload;  // throws java.io.IOException
    function isRegistered(para1: JMObjectName; para2: JSASubject): jboolean; overload;  // throws java.io.IOException
    function getMBeanCount(para1: JSASubject): JLInteger; overload;  // throws java.io.IOException
    function getAttribute(para1: JMObjectName; para2: JLString; para3: JSASubject): JLObject; overload;  // throws javax.management.MBeanException, javax.management.AttributeNotFoundException, javax.management.InstanceNotFoundException, javax.management.ReflectionException, java.io.IOException
    function getAttributes(para1: JMObjectName; para2: Arr1JLString; para3: JSASubject): JMAttributeList; overload;  // throws javax.management.InstanceNotFoundException, javax.management.ReflectionException, java.io.IOException
    function getAttributes(para1: JMObjectName; var para2: array of JLString; para3: JSASubject): JMAttributeList; overload;  // throws javax.management.InstanceNotFoundException, javax.management.ReflectionException, java.io.IOException
    procedure setAttribute(para1: JMObjectName; para2: JRMarshalledObject; para3: JSASubject); overload;  // throws javax.management.InstanceNotFoundException, javax.management.AttributeNotFoundException, javax.management.InvalidAttributeValueException, javax.management.MBeanException, javax.management.ReflectionException, java.io.IOException
    function setAttributes(para1: JMObjectName; para2: JRMarshalledObject; para3: JSASubject): JMAttributeList; overload;  // throws javax.management.InstanceNotFoundException, javax.management.ReflectionException, java.io.IOException
    function invoke(para1: JMObjectName; para2: JLString; para3: JRMarshalledObject; para4: Arr1JLString; para5: JSASubject): JLObject; overload;  // throws javax.management.InstanceNotFoundException, javax.management.MBeanException, javax.management.ReflectionException, java.io.IOException
    function invoke(para1: JMObjectName; para2: JLString; para3: JRMarshalledObject; var para4: array of JLString; para5: JSASubject): JLObject; overload;  // throws javax.management.InstanceNotFoundException, javax.management.MBeanException, javax.management.ReflectionException, java.io.IOException
    function getDefaultDomain(para1: JSASubject): JLString; overload;  // throws java.io.IOException
    function getDomains(para1: JSASubject): Arr1JLString; overload;  // throws java.io.IOException
    function getMBeanInfo(para1: JMObjectName; para2: JSASubject): JMMBeanInfo; overload;  // throws javax.management.InstanceNotFoundException, javax.management.IntrospectionException, javax.management.ReflectionException, java.io.IOException
    function isInstanceOf(para1: JMObjectName; para2: JLString; para3: JSASubject): jboolean; overload;  // throws javax.management.InstanceNotFoundException, java.io.IOException
    procedure addNotificationListener(para1: JMObjectName; para2: JMObjectName; para3: JRMarshalledObject; para4: JRMarshalledObject; para5: JSASubject); overload;  // throws javax.management.InstanceNotFoundException, java.io.IOException
    procedure removeNotificationListener(para1: JMObjectName; para2: JMObjectName; para3: JSASubject); overload;  // throws javax.management.InstanceNotFoundException, javax.management.ListenerNotFoundException, java.io.IOException
    procedure removeNotificationListener(para1: JMObjectName; para2: JMObjectName; para3: JRMarshalledObject; para4: JRMarshalledObject; para5: JSASubject); overload;  // throws javax.management.InstanceNotFoundException, javax.management.ListenerNotFoundException, java.io.IOException
    function addNotificationListeners(para1: Arr1JMObjectName; para2: Arr1JRMarshalledObject; para3: Arr1JSASubject): Arr1JLInteger; overload;  // throws javax.management.InstanceNotFoundException, java.io.IOException
    function addNotificationListeners(var para1: array of JMObjectName; var para2: array of JRMarshalledObject; var para3: array of JSASubject): Arr1JLInteger; overload;  // throws javax.management.InstanceNotFoundException, java.io.IOException
    procedure removeNotificationListeners(para1: JMObjectName; para2: Arr1JLInteger; para3: JSASubject); overload;  // throws javax.management.InstanceNotFoundException, javax.management.ListenerNotFoundException, java.io.IOException
    procedure removeNotificationListeners(para1: JMObjectName; var para2: array of JLInteger; para3: JSASubject); overload;  // throws javax.management.InstanceNotFoundException, javax.management.ListenerNotFoundException, java.io.IOException
    function fetchNotifications(para1: jlong; para2: jint; para3: jlong): JMRNotificationResult; overload;  // throws java.io.IOException
  end;

  JMRRRMIServer = interface external 'javax.management.remote.rmi' name 'RMIServer' (JRRemote)
    function getVersion(): JLString; overload;  // throws java.rmi.RemoteException
    function newClient(para1: JLObject): JMRRRMIConnection; overload;  // throws java.io.IOException
  end;

  JRSSslRMIClientSocketFactory = class external 'javax.rmi.ssl' name 'SslRMIClientSocketFactory' (JLObject, JRSRMIClientSocketFactory, JISerializable)
  public
    constructor create(); overload;
    function createSocket(para1: JLString; para2: jint): JNSocket; overload; virtual;  // throws java.io.IOException
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JRSRMISocketFactory = class abstract external 'java.rmi.server' name 'RMISocketFactory' (JLObject, JRSRMIClientSocketFactory, JRSRMIServerSocketFactory)
  public
    constructor create(); overload;
    function createSocket(para1: JLString; para2: jint): JNSocket; overload; virtual; abstract;  // throws java.io.IOException
    function createServerSocket(para1: jint): JNServerSocket; overload; virtual; abstract;  // throws java.io.IOException
    class procedure setSocketFactory(para1: JRSRMISocketFactory); static; overload;  // throws java.io.IOException
    class function getSocketFactory(): JRSRMISocketFactory; static; overload;
    class function getDefaultSocketFactory(): JRSRMISocketFactory; static; overload;
    class procedure setFailureHandler(para1: JRSRMIFailureHandler); static; overload;
    class function getFailureHandler(): JRSRMIFailureHandler; static; overload;
  end;

  JRSSslRMIServerSocketFactory = class external 'javax.rmi.ssl' name 'SslRMIServerSocketFactory' (JLObject, JRSRMIServerSocketFactory)
  public
    constructor create(); overload;
    constructor create(para1: Arr1JLString; para2: Arr1JLString; para3: jboolean); overload;  // throws java.lang.IllegalArgumentException
    constructor create(const para1: array of JLString; const para2: array of JLString; para3: jboolean); overload;  // throws java.lang.IllegalArgumentException
    function getEnabledCipherSuites(): Arr1JLString; overload; virtual; final;
    function getEnabledProtocols(): Arr1JLString; overload; virtual; final;
    function getNeedClientAuth(): jboolean; overload; virtual; final;
    function createServerSocket(para1: jint): JNServerSocket; overload; virtual;  // throws java.io.IOException
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JSASubjectDomainCombiner = class external 'javax.security.auth' name 'SubjectDomainCombiner' (JLObject, JSDomainCombiner)
  public
    type
      InnerWeakKeyValueMap = class;
      Arr1InnerWeakKeyValueMap = array of InnerWeakKeyValueMap;
      Arr2InnerWeakKeyValueMap = array of Arr1InnerWeakKeyValueMap;
      Arr3InnerWeakKeyValueMap = array of Arr2InnerWeakKeyValueMap;
      InnerWeakKeyValueMap = class external 'javax.security.auth' name 'WeakKeyValueMap' 
      end;

  public
    constructor create(para1: JSASubject); overload;
    function getSubject(): JSASubject; overload; virtual;
    function combine(para1: Arr1JSProtectionDomain; para2: Arr1JSProtectionDomain): Arr1JSProtectionDomain; overload; virtual;
    function combine(var para1: array of JSProtectionDomain; var para2: array of JSProtectionDomain): Arr1JSProtectionDomain; overload; virtual;
  end;

  JSPermission = class abstract external 'java.security' name 'Permission' (JLObject, JSGuard, JISerializable)
  public
    constructor create(para1: JLString); overload;
    procedure checkGuard(para1: JLObject); overload; virtual;  // throws java.lang.SecurityException
    function implies(para1: JSPermission): jboolean; overload; virtual; abstract;
    function equals(para1: JLObject): jboolean; overload; virtual; abstract;
    function hashCode(): jint; overload; virtual; abstract;
    function getName(): JLString; overload; virtual; final;
    function getActions(): JLString; overload; virtual; abstract;
    function newPermissionCollection(): JSPermissionCollection; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSKeyPairGenerator = class abstract external 'java.security' name 'KeyPairGenerator' (JSKeyPairGeneratorSpi)
  public
    type
      InnerDelegate = class;
      Arr1InnerDelegate = array of InnerDelegate;
      Arr2InnerDelegate = array of Arr1InnerDelegate;
      Arr3InnerDelegate = array of Arr2InnerDelegate;
      InnerDelegate = class sealed external 'java.security' name 'Delegate' 
      end;

  strict protected
    constructor create(para1: JLString); overload;
  public
    function getAlgorithm(): JLString; overload; virtual;
    class function getInstance(para1: JLString): JSKeyPairGenerator; static; overload;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JSKeyPairGenerator; static; overload;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JSKeyPairGenerator; static; overload;  // throws java.security.NoSuchAlgorithmException
    function getProvider(): JSProvider; overload; virtual; final;
    procedure initialize(para1: jint); overload; virtual;
    procedure initialize(para1: jint; para2: JSSecureRandom); overload; virtual;
    procedure initialize(para1: JSSAlgorithmParameterSpec); overload; virtual;  // throws java.security.InvalidAlgorithmParameterException
    procedure initialize(para1: JSSAlgorithmParameterSpec; para2: JSSecureRandom); overload; virtual;  // throws java.security.InvalidAlgorithmParameterException
    function genKeyPair(): JSKeyPair; overload; virtual; final;
    function generateKeyPair(): JSKeyPair; overload; virtual;
  end;

  JSMessageDigest = class abstract external 'java.security' name 'MessageDigest' (JSMessageDigestSpi)
  public
    type
      InnerDelegate = class;
      Arr1InnerDelegate = array of InnerDelegate;
      Arr2InnerDelegate = array of Arr1InnerDelegate;
      Arr3InnerDelegate = array of Arr2InnerDelegate;
      InnerDelegate = class external 'java.security' name 'Delegate' 
      end;

  strict protected
    constructor create(para1: JLString); overload;
  public
    class function getInstance(para1: JLString): JSMessageDigest; static; overload;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JSMessageDigest; static; overload;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JSMessageDigest; static; overload;  // throws java.security.NoSuchAlgorithmException
    function getProvider(): JSProvider; overload; virtual; final;
    procedure update(para1: jbyte); overload; virtual;
    procedure update(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;
    procedure update(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;
    procedure update(para1: Arr1jbyte); overload; virtual;
    procedure update(var para1: array of jbyte); overload; virtual;
    procedure update(para1: JNByteBuffer); overload; virtual; final;
    function digest(): Arr1jbyte; overload; virtual;
    function digest(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.security.DigestException
    function digest(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.security.DigestException
    function digest(para1: Arr1jbyte): Arr1jbyte; overload; virtual;
    function digest(var para1: array of jbyte): Arr1jbyte; overload; virtual;
    function toString(): JLString; overload; virtual;
    class function isEqual(para1: Arr1jbyte; para2: Arr1jbyte): jboolean; static; overload;
    class function isEqual(var para1: array of jbyte; var para2: array of jbyte): jboolean; static; overload;
    procedure reset(); overload; virtual;
    function getAlgorithm(): JLString; overload; virtual; final;
    function getDigestLength(): jint; overload; virtual; final;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  JSIdentity = class abstract external 'java.security' name 'Identity' (JLObject, JSPrincipal, JISerializable)
  strict protected
    constructor create(); overload;
  public
    constructor create(para1: JLString; para2: JSIdentityScope); overload;  // throws java.security.KeyManagementException
    constructor create(para1: JLString); overload;
    function getName(): JLString; overload; virtual; final;
    function getScope(): JSIdentityScope; overload; virtual; final;
    function getPublicKey(): JSPublicKey; overload; virtual;
    procedure setPublicKey(para1: JSPublicKey); overload; virtual;  // throws java.security.KeyManagementException
    procedure setInfo(para1: JLString); overload; virtual;
    function getInfo(): JLString; overload; virtual;
    procedure addCertificate(para1: JSCertificate); overload; virtual;  // throws java.security.KeyManagementException
    procedure removeCertificate(para1: JSCertificate); overload; virtual;  // throws java.security.KeyManagementException
    function certificates(): Arr1JSCertificate; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual; final;
  strict protected
    function identityEquals(para1: JSIdentity): jboolean; overload; virtual;
  public
    function toString(): JLString; overload; virtual;
    function toString(para1: jboolean): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JSAGroup = interface external 'java.security.acl' name 'Group' (JSPrincipal)
    function addMember(para1: JSPrincipal): jboolean; overload;
    function removeMember(para1: JSPrincipal): jboolean; overload;
    function isMember(para1: JSPrincipal): jboolean; overload;
    function members(): JUEnumeration; overload;
  end;

  JMRJMXPrincipal = class external 'javax.management.remote' name 'JMXPrincipal' (JLObject, JSPrincipal, JISerializable)
  public
    constructor create(para1: JLString); overload;
    function getName(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JSAKKerberosPrincipal = class sealed external 'javax.security.auth.kerberos' name 'KerberosPrincipal' (JLObject, JSPrincipal, JISerializable)
  public
    const
      KRB_NT_UNKNOWN = 0;
      KRB_NT_PRINCIPAL = 1;
      KRB_NT_SRV_INST = 2;
      KRB_NT_SRV_HST = 3;
      KRB_NT_SRV_XHST = 4;
      KRB_NT_UID = 5;
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: jint); overload;
    function getRealm(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getName(): JLString; overload; virtual;
    function getNameType(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSAXX500Principal = class sealed external 'javax.security.auth.x500' name 'X500Principal' (JLObject, JSPrincipal, JISerializable)
  public
    const
      RFC1779 = 'RFC1779';
      RFC2253 = 'RFC2253';
      CANONICAL = 'CANONICAL';
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JUMap); overload;
    constructor create(para1: Arr1jbyte); overload;
    constructor create(const para1: array of jbyte); overload;
    constructor create(para1: JIInputStream); overload;
    function getName(): JLString; overload; virtual;
    function getName(para1: JLString): JLString; overload; virtual;
    function getName(para1: JLString; para2: JUMap): JLString; overload; virtual;
    function getEncoded(): Arr1jbyte; overload; virtual;
    function toString(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JSDriverService = class external 'java.sql' name 'DriverService' (JLObject, JSPrivilegedAction)
  public
    constructor create(); overload;
    function run(): JLObject; overload; virtual;
  end;

  JRCGetORBPropertiesFileAction = class external 'javax.rmi.CORBA' name 'GetORBPropertiesFileAction' (JLObject, JSPrivilegedAction)
  public
    constructor create(); overload;
    function run(): JLObject; overload; virtual;
  end;

  JRGetORBPropertiesFileAction = class external 'javax.rmi' name 'GetORBPropertiesFileAction' (JLObject, JSPrivilegedAction)
  public
    constructor create(); overload;
    function run(): JLObject; overload; virtual;
  end;

  JSTHResourceLoader = class external 'javax.swing.text.html' name 'ResourceLoader' (JLObject, JSPrivilegedAction)
  public
    function run(): JLObject; overload; virtual;
    class function getResourceAsStream(para1: JLString): JIInputStream; static; overload;
  end;

  JSTHPResourceLoader = class external 'javax.swing.text.html.parser' name 'ResourceLoader' (JLObject, JSPrivilegedAction)
  public
    function run(): JLObject; overload; virtual;
    class function getResourceAsStream(para1: JLString): JIInputStream; static; overload;
  end;

  JXBGetPropertyAction = class sealed external 'javax.xml.bind' name 'GetPropertyAction' (JLObject, JSPrivilegedAction)
  public
    constructor create(para1: JLString); overload;
    function run(): JLString; overload; virtual;
    function run(): JLObject; overload; virtual;
  end;

  JLSystemClassLoaderAction = class external 'java.lang' name 'SystemClassLoaderAction' (JLObject, JSPrivilegedExceptionAction)
  public
    function run(): JLObject; overload; virtual;  // throws java.lang.Exception
  end;

  JSSignature = class abstract external 'java.security' name 'Signature' (JSSignatureSpi)
  public
    type
      InnerCipherAdapter = class;
      Arr1InnerCipherAdapter = array of InnerCipherAdapter;
      Arr2InnerCipherAdapter = array of Arr1InnerCipherAdapter;
      Arr3InnerCipherAdapter = array of Arr2InnerCipherAdapter;
      InnerDelegate = class;
      Arr1InnerDelegate = array of InnerDelegate;
      Arr2InnerDelegate = array of Arr1InnerDelegate;
      Arr3InnerDelegate = array of Arr2InnerDelegate;
      InnerCipherAdapter = class external 'java.security' name 'CipherAdapter' 
      end;

      InnerDelegate = class external 'java.security' name 'Delegate' 
      end;

  strict protected
    const
      UNINITIALIZED = 0;
      SIGN = 2;
      VERIFY = 3;
  strict protected
    var
      fstate: jint; external name 'state';
  strict protected
    constructor create(para1: JLString); overload;
  public
    class function getInstance(para1: JLString): JSSignature; static; overload;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JSSignature; static; overload;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JSSignature; static; overload;  // throws java.security.NoSuchAlgorithmException
    function getProvider(): JSProvider; overload; virtual; final;
    procedure initVerify(para1: JSPublicKey); overload; virtual; final;  // throws java.security.InvalidKeyException
    procedure initVerify(para1: JSCCertificate); overload; virtual; final;  // throws java.security.InvalidKeyException
    procedure initSign(para1: JSPrivateKey); overload; virtual; final;  // throws java.security.InvalidKeyException
    procedure initSign(para1: JSPrivateKey; para2: JSSecureRandom); overload; virtual; final;  // throws java.security.InvalidKeyException
    function sign_(): Arr1jbyte; external name 'sign'; overload; virtual; final;  // throws java.security.SignatureException
    function sign_(para1: Arr1jbyte; para2: jint; para3: jint): jint; external name 'sign'; overload; virtual; final;  // throws java.security.SignatureException
    function sign_(var para1: array of jbyte; para2: jint; para3: jint): jint; external name 'sign'; overload; virtual; final;  // throws java.security.SignatureException
    function verify_(para1: Arr1jbyte): jboolean; external name 'verify'; overload; virtual; final;  // throws java.security.SignatureException
    function verify_(var para1: array of jbyte): jboolean; external name 'verify'; overload; virtual; final;  // throws java.security.SignatureException
    function verify_(para1: Arr1jbyte; para2: jint; para3: jint): jboolean; external name 'verify'; overload; virtual; final;  // throws java.security.SignatureException
    function verify_(var para1: array of jbyte; para2: jint; para3: jint): jboolean; external name 'verify'; overload; virtual; final;  // throws java.security.SignatureException
    procedure update(para1: jbyte); overload; virtual; final;  // throws java.security.SignatureException
    procedure update(para1: Arr1jbyte); overload; virtual; final;  // throws java.security.SignatureException
    procedure update(var para1: array of jbyte); overload; virtual; final;  // throws java.security.SignatureException
    procedure update(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual; final;  // throws java.security.SignatureException
    procedure update(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual; final;  // throws java.security.SignatureException
    procedure update(para1: JNByteBuffer); overload; virtual; final;  // throws java.security.SignatureException
    function getAlgorithm(): JLString; overload; virtual; final;
    function toString(): JLString; overload; virtual;
    procedure setParameter(para1: JLString; para2: JLObject); overload; virtual; final;  // throws java.security.InvalidParameterException
    procedure setParameter(para1: JSSAlgorithmParameterSpec); overload; virtual; final;  // throws java.security.InvalidAlgorithmParameterException
    function getParameters(): JSAlgorithmParameters; overload; virtual; final;
    function getParameter(para1: JLString): JLObject; overload; virtual; final;  // throws java.security.InvalidParameterException
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  JSAAcl = interface external 'java.security.acl' name 'Acl' (JSAOwner)
    procedure setName(para1: JSPrincipal; para2: JLString); overload;  // throws java.security.acl.NotOwnerException
    function getName(): JLString; overload;
    function addEntry(para1: JSPrincipal; para2: JSAAclEntry): jboolean; overload;  // throws java.security.acl.NotOwnerException
    function removeEntry(para1: JSPrincipal; para2: JSAAclEntry): jboolean; overload;  // throws java.security.acl.NotOwnerException
    function getPermissions(para1: JSPrincipal): JUEnumeration; overload;
    function entries(): JUEnumeration; overload;
    function checkPermission(para1: JSPrincipal; para2: JSAPermission): jboolean; overload;
    function toString(): JLString; overload;
  end;

  JSCX509CRL = class abstract external 'java.security.cert' name 'X509CRL' (JSCCRL, JSCX509Extension)
  strict protected
    constructor create(); overload;
  public
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function getEncoded(): Arr1jbyte; overload; virtual; abstract;  // throws java.security.cert.CRLException
    procedure verify(para1: JSPublicKey); overload; virtual; abstract;  // throws java.security.cert.CRLException, java.security.NoSuchAlgorithmException, java.security.InvalidKeyException, java.security.NoSuchProviderException, java.security.SignatureException
    procedure verify(para1: JSPublicKey; para2: JLString); overload; virtual; abstract;  // throws java.security.cert.CRLException, java.security.NoSuchAlgorithmException, java.security.InvalidKeyException, java.security.NoSuchProviderException, java.security.SignatureException
    function getVersion(): jint; overload; virtual; abstract;
    function getIssuerDN(): JSPrincipal; overload; virtual; abstract;
    function getIssuerX500Principal(): JSAXX500Principal; overload; virtual;
    function getThisUpdate(): JUDate; overload; virtual; abstract;
    function getNextUpdate(): JUDate; overload; virtual; abstract;
    function getRevokedCertificate(para1: JMBigInteger): JSCX509CRLEntry; overload; virtual; abstract;
    function getRevokedCertificate(para1: JSCX509Certificate): JSCX509CRLEntry; overload; virtual;
    function getRevokedCertificates(): JUSet; overload; virtual; abstract;
    function getTBSCertList(): Arr1jbyte; overload; virtual; abstract;  // throws java.security.cert.CRLException
    function getSignature(): Arr1jbyte; overload; virtual; abstract;
    function getSigAlgName(): JLString; overload; virtual; abstract;
    function getSigAlgOID(): JLString; overload; virtual; abstract;
    function getSigAlgParams(): Arr1jbyte; overload; virtual; abstract;
  end;

  JSCX509CRLEntry = class abstract external 'java.security.cert' name 'X509CRLEntry' (JLObject, JSCX509Extension)
  public
    constructor create(); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function getEncoded(): Arr1jbyte; overload; virtual; abstract;  // throws java.security.cert.CRLException
    function getSerialNumber(): JMBigInteger; overload; virtual; abstract;
    function getCertificateIssuer(): JSAXX500Principal; overload; virtual;
    function getRevocationDate(): JUDate; overload; virtual; abstract;
    function hasExtensions(): jboolean; overload; virtual; abstract;
    function toString(): JLString; overload; virtual; abstract;
  end;

  JSSDSAParameterSpec = class external 'java.security.spec' name 'DSAParameterSpec' (JLObject, JSSAlgorithmParameterSpec, JSIDSAParams)
  public
    constructor create(para1: JMBigInteger; para2: JMBigInteger; para3: JMBigInteger); overload;
    function getP(): JMBigInteger; overload; virtual;
    function getQ(): JMBigInteger; overload; virtual;
    function getG(): JMBigInteger; overload; virtual;
  end;

  JSSECGenParameterSpec = class external 'java.security.spec' name 'ECGenParameterSpec' (JLObject, JSSAlgorithmParameterSpec)
  public
    constructor create(para1: JLString); overload;
    function getName(): JLString; overload; virtual;
  end;

  JSSECParameterSpec = class external 'java.security.spec' name 'ECParameterSpec' (JLObject, JSSAlgorithmParameterSpec)
  public
    constructor create(para1: JSSEllipticCurve; para2: JSSECPoint; para3: JMBigInteger; para4: jint); overload;
    function getCurve(): JSSEllipticCurve; overload; virtual;
    function getGenerator(): JSSECPoint; overload; virtual;
    function getOrder(): JMBigInteger; overload; virtual;
    function getCofactor(): jint; overload; virtual;
  end;

  JSSMGF1ParameterSpec = class external 'java.security.spec' name 'MGF1ParameterSpec' (JLObject, JSSAlgorithmParameterSpec)
  public
    final class var
      fSHA1: JSSMGF1ParameterSpec; external name 'SHA1';
      fSHA256: JSSMGF1ParameterSpec; external name 'SHA256';
      fSHA384: JSSMGF1ParameterSpec; external name 'SHA384';
      fSHA512: JSSMGF1ParameterSpec; external name 'SHA512';
  public
    constructor create(para1: JLString); overload;
    function getDigestAlgorithm(): JLString; overload; virtual;
  end;

  JSSPSSParameterSpec = class external 'java.security.spec' name 'PSSParameterSpec' (JLObject, JSSAlgorithmParameterSpec)
  public
    final class var
      fDEFAULT: JSSPSSParameterSpec; external name 'DEFAULT';
  public
    constructor create(para1: JLString; para2: JLString; para3: JSSAlgorithmParameterSpec; para4: jint; para5: jint); overload;
    constructor create(para1: jint); overload;
    function getDigestAlgorithm(): JLString; overload; virtual;
    function getMGFAlgorithm(): JLString; overload; virtual;
    function getMGFParameters(): JSSAlgorithmParameterSpec; overload; virtual;
    function getSaltLength(): jint; overload; virtual;
    function getTrailerField(): jint; overload; virtual;
  end;

  JSSRSAKeyGenParameterSpec = class external 'java.security.spec' name 'RSAKeyGenParameterSpec' (JLObject, JSSAlgorithmParameterSpec)
  public
    final class var
      fF0: JMBigInteger; external name 'F0';
      fF4: JMBigInteger; external name 'F4';
  public
    constructor create(para1: jint; para2: JMBigInteger); overload;
    function getKeysize(): jint; overload; virtual;
    function getPublicExponent(): JMBigInteger; overload; virtual;
  end;

  JCSDHGenParameterSpec = class external 'javax.crypto.spec' name 'DHGenParameterSpec' (JLObject, JSSAlgorithmParameterSpec)
  public
    constructor create(para1: jint; para2: jint); overload;
    function getPrimeSize(): jint; overload; virtual;
    function getExponentSize(): jint; overload; virtual;
  end;

  JCSDHParameterSpec = class external 'javax.crypto.spec' name 'DHParameterSpec' (JLObject, JSSAlgorithmParameterSpec)
  public
    constructor create(para1: JMBigInteger; para2: JMBigInteger); overload;
    constructor create(para1: JMBigInteger; para2: JMBigInteger; para3: jint); overload;
    function getP(): JMBigInteger; overload; virtual;
    function getG(): JMBigInteger; overload; virtual;
    function getL(): jint; overload; virtual;
  end;

  JCSIvParameterSpec = class external 'javax.crypto.spec' name 'IvParameterSpec' (JLObject, JSSAlgorithmParameterSpec)
  public
    constructor create(para1: Arr1jbyte); overload;
    constructor create(const para1: array of jbyte); overload;
    constructor create(para1: Arr1jbyte; para2: jint; para3: jint); overload;
    constructor create(const para1: array of jbyte; para2: jint; para3: jint); overload;
    function getIV(): Arr1jbyte; overload; virtual;
  end;

  JCSOAEPParameterSpec = class external 'javax.crypto.spec' name 'OAEPParameterSpec' (JLObject, JSSAlgorithmParameterSpec)
  public
    final class var
      fDEFAULT: JCSOAEPParameterSpec; external name 'DEFAULT';
  public
    constructor create(para1: JLString; para2: JLString; para3: JSSAlgorithmParameterSpec; para4: JCSPSource); overload;
    function getDigestAlgorithm(): JLString; overload; virtual;
    function getMGFAlgorithm(): JLString; overload; virtual;
    function getMGFParameters(): JSSAlgorithmParameterSpec; overload; virtual;
    function getPSource(): JCSPSource; overload; virtual;
  end;

  JCSPBEParameterSpec = class external 'javax.crypto.spec' name 'PBEParameterSpec' (JLObject, JSSAlgorithmParameterSpec)
  public
    constructor create(para1: Arr1jbyte; para2: jint); overload;
    constructor create(const para1: array of jbyte; para2: jint); overload;
    function getSalt(): Arr1jbyte; overload; virtual;
    function getIterationCount(): jint; overload; virtual;
  end;

  JCSRC2ParameterSpec = class external 'javax.crypto.spec' name 'RC2ParameterSpec' (JLObject, JSSAlgorithmParameterSpec)
  public
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: Arr1jbyte); overload;
    constructor create(para1: jint; const para2: array of jbyte); overload;
    constructor create(para1: jint; para2: Arr1jbyte; para3: jint); overload;
    constructor create(para1: jint; const para2: array of jbyte; para3: jint); overload;
    function getEffectiveKeyBits(): jint; overload; virtual;
    function getIV(): Arr1jbyte; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JCSRC5ParameterSpec = class external 'javax.crypto.spec' name 'RC5ParameterSpec' (JLObject, JSSAlgorithmParameterSpec)
  public
    constructor create(para1: jint; para2: jint; para3: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: Arr1jbyte); overload;
    constructor create(para1: jint; para2: jint; para3: jint; const para4: array of jbyte); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: Arr1jbyte; para5: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; const para4: array of jbyte; para5: jint); overload;
    function getVersion(): jint; overload; virtual;
    function getRounds(): jint; overload; virtual;
    function getWordSize(): jint; overload; virtual;
    function getIV(): Arr1jbyte; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JXCDSDigestMethodParameterSpec = interface external 'javax.xml.crypto.dsig.spec' name 'DigestMethodParameterSpec' (JSSAlgorithmParameterSpec)
  end;

  JXCDSSignatureMethodParameterSpec = interface external 'javax.xml.crypto.dsig.spec' name 'SignatureMethodParameterSpec' (JSSAlgorithmParameterSpec)
  end;

  JXCDSTransformParameterSpec = interface external 'javax.xml.crypto.dsig.spec' name 'TransformParameterSpec' (JSSAlgorithmParameterSpec)
  end;

  JSSECFieldF2m = class external 'java.security.spec' name 'ECFieldF2m' (JLObject, JSSECField)
  public
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: JMBigInteger); overload;
    constructor create(para1: jint; para2: Arr1jint); overload;
    constructor create(para1: jint; const para2: array of jint); overload;
    function getFieldSize(): jint; overload; virtual;
    function getM(): jint; overload; virtual;
    function getReductionPolynomial(): JMBigInteger; overload; virtual;
    function getMidTermsOfReductionPolynomial(): Arr1jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JSSECFieldFp = class external 'java.security.spec' name 'ECFieldFp' (JLObject, JSSECField)
  public
    constructor create(para1: JMBigInteger); overload;
    function getFieldSize(): jint; overload; virtual;
    function getP(): JMBigInteger; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JSSDSAPrivateKeySpec = class external 'java.security.spec' name 'DSAPrivateKeySpec' (JLObject, JSSKeySpec)
  public
    constructor create(para1: JMBigInteger; para2: JMBigInteger; para3: JMBigInteger; para4: JMBigInteger); overload;
    function getX(): JMBigInteger; overload; virtual;
    function getP(): JMBigInteger; overload; virtual;
    function getQ(): JMBigInteger; overload; virtual;
    function getG(): JMBigInteger; overload; virtual;
  end;

  JSSDSAPublicKeySpec = class external 'java.security.spec' name 'DSAPublicKeySpec' (JLObject, JSSKeySpec)
  public
    constructor create(para1: JMBigInteger; para2: JMBigInteger; para3: JMBigInteger; para4: JMBigInteger); overload;
    function getY(): JMBigInteger; overload; virtual;
    function getP(): JMBigInteger; overload; virtual;
    function getQ(): JMBigInteger; overload; virtual;
    function getG(): JMBigInteger; overload; virtual;
  end;

  JSSECPrivateKeySpec = class external 'java.security.spec' name 'ECPrivateKeySpec' (JLObject, JSSKeySpec)
  public
    constructor create(para1: JMBigInteger; para2: JSSECParameterSpec); overload;
    function getS(): JMBigInteger; overload; virtual;
    function getParams(): JSSECParameterSpec; overload; virtual;
  end;

  JSSECPublicKeySpec = class external 'java.security.spec' name 'ECPublicKeySpec' (JLObject, JSSKeySpec)
  public
    constructor create(para1: JSSECPoint; para2: JSSECParameterSpec); overload;
    function getW(): JSSECPoint; overload; virtual;
    function getParams(): JSSECParameterSpec; overload; virtual;
  end;

  JSSEncodedKeySpec = class abstract external 'java.security.spec' name 'EncodedKeySpec' (JLObject, JSSKeySpec)
  public
    constructor create(para1: Arr1jbyte); overload;
    constructor create(const para1: array of jbyte); overload;
    function getEncoded(): Arr1jbyte; overload; virtual;
    function getFormat(): JLString; overload; virtual; abstract;
  end;

  JSSRSAPrivateKeySpec = class external 'java.security.spec' name 'RSAPrivateKeySpec' (JLObject, JSSKeySpec)
  public
    constructor create(para1: JMBigInteger; para2: JMBigInteger); overload;
    function getModulus(): JMBigInteger; overload; virtual;
    function getPrivateExponent(): JMBigInteger; overload; virtual;
  end;

  JSSRSAPublicKeySpec = class external 'java.security.spec' name 'RSAPublicKeySpec' (JLObject, JSSKeySpec)
  public
    constructor create(para1: JMBigInteger; para2: JMBigInteger); overload;
    function getModulus(): JMBigInteger; overload; virtual;
    function getPublicExponent(): JMBigInteger; overload; virtual;
  end;

  JCSDESKeySpec = class external 'javax.crypto.spec' name 'DESKeySpec' (JLObject, JSSKeySpec)
  public
    const
      DES_KEY_LEN = 8;
  public
    constructor create(para1: Arr1jbyte); overload;  // throws java.security.InvalidKeyException
    constructor create(const para1: array of jbyte); overload;  // throws java.security.InvalidKeyException
    constructor create(para1: Arr1jbyte; para2: jint); overload;  // throws java.security.InvalidKeyException
    constructor create(const para1: array of jbyte; para2: jint); overload;  // throws java.security.InvalidKeyException
    function getKey(): Arr1jbyte; overload; virtual;
    class function isParityAdjusted(para1: Arr1jbyte; para2: jint): jboolean; static; overload;  // throws java.security.InvalidKeyException
    class function isParityAdjusted(var para1: array of jbyte; para2: jint): jboolean; static; overload;  // throws java.security.InvalidKeyException
    class function isWeak(para1: Arr1jbyte; para2: jint): jboolean; static; overload;  // throws java.security.InvalidKeyException
    class function isWeak(var para1: array of jbyte; para2: jint): jboolean; static; overload;  // throws java.security.InvalidKeyException
  end;

  JCSDESedeKeySpec = class external 'javax.crypto.spec' name 'DESedeKeySpec' (JLObject, JSSKeySpec)
  public
    const
      DES_EDE_KEY_LEN = 24;
  public
    constructor create(para1: Arr1jbyte); overload;  // throws java.security.InvalidKeyException
    constructor create(const para1: array of jbyte); overload;  // throws java.security.InvalidKeyException
    constructor create(para1: Arr1jbyte; para2: jint); overload;  // throws java.security.InvalidKeyException
    constructor create(const para1: array of jbyte; para2: jint); overload;  // throws java.security.InvalidKeyException
    function getKey(): Arr1jbyte; overload; virtual;
    class function isParityAdjusted(para1: Arr1jbyte; para2: jint): jboolean; static; overload;  // throws java.security.InvalidKeyException
    class function isParityAdjusted(var para1: array of jbyte; para2: jint): jboolean; static; overload;  // throws java.security.InvalidKeyException
  end;

  JCSDHPrivateKeySpec = class external 'javax.crypto.spec' name 'DHPrivateKeySpec' (JLObject, JSSKeySpec)
  public
    constructor create(para1: JMBigInteger; para2: JMBigInteger; para3: JMBigInteger); overload;
    function getX(): JMBigInteger; overload; virtual;
    function getP(): JMBigInteger; overload; virtual;
    function getG(): JMBigInteger; overload; virtual;
  end;

  JCSDHPublicKeySpec = class external 'javax.crypto.spec' name 'DHPublicKeySpec' (JLObject, JSSKeySpec)
  public
    constructor create(para1: JMBigInteger; para2: JMBigInteger; para3: JMBigInteger); overload;
    function getY(): JMBigInteger; overload; virtual;
    function getP(): JMBigInteger; overload; virtual;
    function getG(): JMBigInteger; overload; virtual;
  end;

  JCSPBEKeySpec = class external 'javax.crypto.spec' name 'PBEKeySpec' (JLObject, JSSKeySpec)
  public
    constructor create(para1: Arr1jchar); overload;
    constructor create(const para1: array of jchar); overload;
    constructor create(para1: Arr1jchar; para2: Arr1jbyte; para3: jint; para4: jint); overload;
    constructor create(const para1: array of jchar; const para2: array of jbyte; para3: jint; para4: jint); overload;
    constructor create(para1: Arr1jchar; para2: Arr1jbyte; para3: jint); overload;
    constructor create(const para1: array of jchar; const para2: array of jbyte; para3: jint); overload;
    procedure clearPassword(); overload; virtual; final;
    function getPassword(): Arr1jchar; overload; virtual; final;
    function getSalt(): Arr1jbyte; overload; virtual; final;
    function getIterationCount(): jint; overload; virtual; final;
    function getKeyLength(): jint; overload; virtual; final;
  end;

  JSRSSerialArray = class external 'javax.sql.rowset.serial' name 'SerialArray' (JLObject, JSArray, JISerializable, JLCloneable)
  public
    constructor create(para1: JSArray; para2: JUMap); overload;  // throws javax.sql.rowset.serial.SerialException, java.sql.SQLException
    procedure free(); overload; virtual;  // throws java.sql.SQLException
    constructor create(para1: JSArray); overload;  // throws javax.sql.rowset.serial.SerialException, java.sql.SQLException
    function getArray(): JLObject; overload; virtual;  // throws javax.sql.rowset.serial.SerialException
    function getArray(para1: JUMap): JLObject; overload; virtual;  // throws javax.sql.rowset.serial.SerialException
    function getArray(para1: jlong; para2: jint): JLObject; overload; virtual;  // throws javax.sql.rowset.serial.SerialException
    function getArray(para1: jlong; para2: jint; para3: JUMap): JLObject; overload; virtual;  // throws javax.sql.rowset.serial.SerialException
    function getBaseType(): jint; overload; virtual;  // throws javax.sql.rowset.serial.SerialException
    function getBaseTypeName(): JLString; overload; virtual;  // throws javax.sql.rowset.serial.SerialException
    function getResultSet(para1: jlong; para2: jint): JSResultSet; overload; virtual;  // throws javax.sql.rowset.serial.SerialException
    function getResultSet(para1: JUMap): JSResultSet; overload; virtual;  // throws javax.sql.rowset.serial.SerialException
    function getResultSet(): JSResultSet; overload; virtual;  // throws javax.sql.rowset.serial.SerialException
    function getResultSet(para1: jlong; para2: jint; para3: JUMap): JSResultSet; overload; virtual;  // throws javax.sql.rowset.serial.SerialException
  end;

  JSRSSerialBlob = class external 'javax.sql.rowset.serial' name 'SerialBlob' (JLObject, JSBlob, JISerializable, JLCloneable)
  public
    constructor create(para1: Arr1jbyte); overload;  // throws javax.sql.rowset.serial.SerialException, java.sql.SQLException
    constructor create(const para1: array of jbyte); overload;  // throws javax.sql.rowset.serial.SerialException, java.sql.SQLException
    constructor create(para1: JSBlob); overload;  // throws javax.sql.rowset.serial.SerialException, java.sql.SQLException
    function getBytes(para1: jlong; para2: jint): Arr1jbyte; overload; virtual;  // throws javax.sql.rowset.serial.SerialException
    function length(): jlong; overload; virtual;  // throws javax.sql.rowset.serial.SerialException
    function getBinaryStream(): JIInputStream; overload; virtual;  // throws javax.sql.rowset.serial.SerialException
    function position(para1: Arr1jbyte; para2: jlong): jlong; overload; virtual;  // throws javax.sql.rowset.serial.SerialException, java.sql.SQLException
    function position(var para1: array of jbyte; para2: jlong): jlong; overload; virtual;  // throws javax.sql.rowset.serial.SerialException, java.sql.SQLException
    function position(para1: JSBlob; para2: jlong): jlong; overload; virtual;  // throws javax.sql.rowset.serial.SerialException, java.sql.SQLException
    function setBytes(para1: jlong; para2: Arr1jbyte): jint; overload; virtual;  // throws javax.sql.rowset.serial.SerialException, java.sql.SQLException
    function setBytes(para1: jlong; var para2: array of jbyte): jint; overload; virtual;  // throws javax.sql.rowset.serial.SerialException, java.sql.SQLException
    function setBytes(para1: jlong; para2: Arr1jbyte; para3: jint; para4: jint): jint; overload; virtual;  // throws javax.sql.rowset.serial.SerialException, java.sql.SQLException
    function setBytes(para1: jlong; var para2: array of jbyte; para3: jint; para4: jint): jint; overload; virtual;  // throws javax.sql.rowset.serial.SerialException, java.sql.SQLException
    function setBinaryStream(para1: jlong): JIOutputStream; overload; virtual;  // throws javax.sql.rowset.serial.SerialException, java.sql.SQLException
    procedure truncate(para1: jlong); overload; virtual;  // throws javax.sql.rowset.serial.SerialException
    function getBinaryStream(para1: jlong; para2: jlong): JIInputStream; overload; virtual;  // throws java.sql.SQLException
    procedure free(); overload; virtual;  // throws java.sql.SQLException
  end;

  JSNClob = interface external 'java.sql' name 'NClob' (JSClob)
  end;

  JSRSSerialClob = class external 'javax.sql.rowset.serial' name 'SerialClob' (JLObject, JSClob, JISerializable, JLCloneable)
  public
    constructor create(para1: Arr1jchar); overload;  // throws javax.sql.rowset.serial.SerialException, java.sql.SQLException
    constructor create(const para1: array of jchar); overload;  // throws javax.sql.rowset.serial.SerialException, java.sql.SQLException
    constructor create(para1: JSClob); overload;  // throws javax.sql.rowset.serial.SerialException, java.sql.SQLException
    function length(): jlong; overload; virtual;  // throws javax.sql.rowset.serial.SerialException
    function getCharacterStream(): JIReader; overload; virtual;  // throws javax.sql.rowset.serial.SerialException
    function getAsciiStream(): JIInputStream; overload; virtual;  // throws javax.sql.rowset.serial.SerialException, java.sql.SQLException
    function getSubString(para1: jlong; para2: jint): JLString; overload; virtual;  // throws javax.sql.rowset.serial.SerialException
    function position(para1: JLString; para2: jlong): jlong; overload; virtual;  // throws javax.sql.rowset.serial.SerialException, java.sql.SQLException
    function position(para1: JSClob; para2: jlong): jlong; overload; virtual;  // throws javax.sql.rowset.serial.SerialException, java.sql.SQLException
    function setString(para1: jlong; para2: JLString): jint; overload; virtual;  // throws javax.sql.rowset.serial.SerialException
    function setString(para1: jlong; para2: JLString; para3: jint; para4: jint): jint; overload; virtual;  // throws javax.sql.rowset.serial.SerialException
    function setAsciiStream(para1: jlong): JIOutputStream; overload; virtual;  // throws javax.sql.rowset.serial.SerialException, java.sql.SQLException
    function setCharacterStream(para1: jlong): JIWriter; overload; virtual;  // throws javax.sql.rowset.serial.SerialException, java.sql.SQLException
    procedure truncate(para1: jlong); overload; virtual;  // throws javax.sql.rowset.serial.SerialException
    function getCharacterStream(para1: jlong; para2: jlong): JIReader; overload; virtual;  // throws java.sql.SQLException
    procedure free(); overload; virtual;  // throws java.sql.SQLException
  end;

  JSRSSerialRef = class external 'javax.sql.rowset.serial' name 'SerialRef' (JLObject, JSRef, JISerializable, JLCloneable)
  public
    constructor create(para1: JSRef); overload;  // throws javax.sql.rowset.serial.SerialException, java.sql.SQLException
    function getBaseTypeName(): JLString; overload; virtual;  // throws javax.sql.rowset.serial.SerialException
    function getObject(para1: JUMap): JLObject; overload; virtual;  // throws javax.sql.rowset.serial.SerialException
    function getObject(): JLObject; overload; virtual;  // throws javax.sql.rowset.serial.SerialException
    procedure setObject(para1: JLObject); overload; virtual;  // throws javax.sql.rowset.serial.SerialException
  end;

  JSRSSQLInputImpl = class external 'javax.sql.rowset.serial' name 'SQLInputImpl' (JLObject, JSSQLInput)
  public
    constructor create(para1: Arr1JLObject; para2: JUMap); overload;  // throws java.sql.SQLException
    constructor create(const para1: array of JLObject; para2: JUMap); overload;  // throws java.sql.SQLException
    function readString(): JLString; overload; virtual;  // throws java.sql.SQLException
    function readBoolean(): jboolean; overload; virtual;  // throws java.sql.SQLException
    function readByte(): jbyte; overload; virtual;  // throws java.sql.SQLException
    function readShort(): jshort; overload; virtual;  // throws java.sql.SQLException
    function readInt(): jint; overload; virtual;  // throws java.sql.SQLException
    function readLong(): jlong; overload; virtual;  // throws java.sql.SQLException
    function readFloat(): jfloat; overload; virtual;  // throws java.sql.SQLException
    function readDouble(): jdouble; overload; virtual;  // throws java.sql.SQLException
    function readBigDecimal(): JMBigDecimal; overload; virtual;  // throws java.sql.SQLException
    function readBytes(): Arr1jbyte; overload; virtual;  // throws java.sql.SQLException
    function readDate(): JSDate; overload; virtual;  // throws java.sql.SQLException
    function readTime(): JSTime; overload; virtual;  // throws java.sql.SQLException
    function readTimestamp(): JSqlTimestamp; overload; virtual;  // throws java.sql.SQLException
    function readCharacterStream(): JIReader; overload; virtual;  // throws java.sql.SQLException
    function readAsciiStream(): JIInputStream; overload; virtual;  // throws java.sql.SQLException
    function readBinaryStream(): JIInputStream; overload; virtual;  // throws java.sql.SQLException
    function readObject(): JLObject; overload; virtual;  // throws java.sql.SQLException
    function readRef(): JSRef; overload; virtual;  // throws java.sql.SQLException
    function readBlob(): JSBlob; overload; virtual;  // throws java.sql.SQLException
    function readClob(): JSClob; overload; virtual;  // throws java.sql.SQLException
    function readArray(): JSArray; overload; virtual;  // throws java.sql.SQLException
    function wasNull(): jboolean; overload; virtual;  // throws java.sql.SQLException
    function readURL(): JNURL; overload; virtual;  // throws java.sql.SQLException
    function readNClob(): JSNClob; overload; virtual;  // throws java.sql.SQLException
    function readNString(): JLString; overload; virtual;  // throws java.sql.SQLException
    function readSQLXML(): JSSQLXML; overload; virtual;  // throws java.sql.SQLException
    function readRowId(): JSRowId; overload; virtual;  // throws java.sql.SQLException
  end;

  JSRSSQLOutputImpl = class external 'javax.sql.rowset.serial' name 'SQLOutputImpl' (JLObject, JSSQLOutput)
  public
    constructor create(para1: JUVector; para2: JUMap); overload;  // throws java.sql.SQLException
    procedure writeString(para1: JLString); overload; virtual;  // throws java.sql.SQLException
    procedure writeBoolean(para1: jboolean); overload; virtual;  // throws java.sql.SQLException
    procedure writeByte(para1: jbyte); overload; virtual;  // throws java.sql.SQLException
    procedure writeShort(para1: jshort); overload; virtual;  // throws java.sql.SQLException
    procedure writeInt(para1: jint); overload; virtual;  // throws java.sql.SQLException
    procedure writeLong(para1: jlong); overload; virtual;  // throws java.sql.SQLException
    procedure writeFloat(para1: jfloat); overload; virtual;  // throws java.sql.SQLException
    procedure writeDouble(para1: jdouble); overload; virtual;  // throws java.sql.SQLException
    procedure writeBigDecimal(para1: JMBigDecimal); overload; virtual;  // throws java.sql.SQLException
    procedure writeBytes(para1: Arr1jbyte); overload; virtual;  // throws java.sql.SQLException
    procedure writeBytes(var para1: array of jbyte); overload; virtual;  // throws java.sql.SQLException
    procedure writeDate(para1: JSDate); overload; virtual;  // throws java.sql.SQLException
    procedure writeTime(para1: JSTime); overload; virtual;  // throws java.sql.SQLException
    procedure writeTimestamp(para1: JSqlTimestamp); overload; virtual;  // throws java.sql.SQLException
    procedure writeCharacterStream(para1: JIReader); overload; virtual;  // throws java.sql.SQLException
    procedure writeAsciiStream(para1: JIInputStream); overload; virtual;  // throws java.sql.SQLException
    procedure writeBinaryStream(para1: JIInputStream); overload; virtual;  // throws java.sql.SQLException
    procedure writeObject(para1: JSSQLData); overload; virtual;  // throws java.sql.SQLException
    procedure writeRef(para1: JSRef); overload; virtual;  // throws java.sql.SQLException
    procedure writeBlob(para1: JSBlob); overload; virtual;  // throws java.sql.SQLException
    procedure writeClob(para1: JSClob); overload; virtual;  // throws java.sql.SQLException
    procedure writeStruct(para1: JSStruct); overload; virtual;  // throws java.sql.SQLException
    procedure writeArray(para1: JSArray); overload; virtual;  // throws java.sql.SQLException
    procedure writeURL(para1: JNURL); overload; virtual;  // throws java.sql.SQLException
    procedure writeNString(para1: JLString); overload; virtual;  // throws java.sql.SQLException
    procedure writeNClob(para1: JSNClob); overload; virtual;  // throws java.sql.SQLException
    procedure writeRowId(para1: JSRowId); overload; virtual;  // throws java.sql.SQLException
    procedure writeSQLXML(para1: JSSQLXML); overload; virtual;  // throws java.sql.SQLException
  end;

  JSRSSerialStruct = class external 'javax.sql.rowset.serial' name 'SerialStruct' (JLObject, JSStruct, JISerializable, JLCloneable)
  public
    constructor create(para1: JSStruct; para2: JUMap); overload;  // throws javax.sql.rowset.serial.SerialException
    constructor create(para1: JSSQLData; para2: JUMap); overload;  // throws javax.sql.rowset.serial.SerialException
    function getSQLTypeName(): JLString; overload; virtual;  // throws javax.sql.rowset.serial.SerialException
    function getAttributes(): Arr1JLObject; overload; virtual;  // throws javax.sql.rowset.serial.SerialException
    function getAttributes(para1: JUMap): Arr1JLObject; overload; virtual;  // throws javax.sql.rowset.serial.SerialException
  end;

  JSConnection = interface external 'java.sql' name 'Connection' (JSWrapper)
    const
      TRANSACTION_NONE = 0;
      TRANSACTION_READ_UNCOMMITTED = 1;
      TRANSACTION_READ_COMMITTED = 2;
      TRANSACTION_REPEATABLE_READ = 4;
      TRANSACTION_SERIALIZABLE = 8;
    function createStatement(): JSStatement; overload;  // throws java.sql.SQLException
    function prepareStatement(para1: JLString): JSPreparedStatement; overload;  // throws java.sql.SQLException
    function prepareCall(para1: JLString): JSCallableStatement; overload;  // throws java.sql.SQLException
    function nativeSQL(para1: JLString): JLString; overload;  // throws java.sql.SQLException
    procedure setAutoCommit(para1: jboolean); overload;  // throws java.sql.SQLException
    function getAutoCommit(): jboolean; overload;  // throws java.sql.SQLException
    procedure commit(); overload;  // throws java.sql.SQLException
    procedure rollback(); overload;  // throws java.sql.SQLException
    procedure close(); overload;  // throws java.sql.SQLException
    function isClosed(): jboolean; overload;  // throws java.sql.SQLException
    function getMetaData(): JSDatabaseMetaData; overload;  // throws java.sql.SQLException
    procedure setReadOnly(para1: jboolean); overload;  // throws java.sql.SQLException
    function isReadOnly(): jboolean; overload;  // throws java.sql.SQLException
    procedure setCatalog(para1: JLString); overload;  // throws java.sql.SQLException
    function getCatalog(): JLString; overload;  // throws java.sql.SQLException
    procedure setTransactionIsolation(para1: jint); overload;  // throws java.sql.SQLException
    function getTransactionIsolation(): jint; overload;  // throws java.sql.SQLException
    function getWarnings(): JSSQLWarning; overload;  // throws java.sql.SQLException
    procedure clearWarnings(); overload;  // throws java.sql.SQLException
    function createStatement(para1: jint; para2: jint): JSStatement; overload;  // throws java.sql.SQLException
    function prepareStatement(para1: JLString; para2: jint; para3: jint): JSPreparedStatement; overload;  // throws java.sql.SQLException
    function prepareCall(para1: JLString; para2: jint; para3: jint): JSCallableStatement; overload;  // throws java.sql.SQLException
    function getTypeMap(): JUMap; overload;  // throws java.sql.SQLException
    procedure setTypeMap(para1: JUMap); overload;  // throws java.sql.SQLException
    procedure setHoldability(para1: jint); overload;  // throws java.sql.SQLException
    function getHoldability(): jint; overload;  // throws java.sql.SQLException
    function setSavepoint(): JSSavepoint; overload;  // throws java.sql.SQLException
    function setSavepoint(para1: JLString): JSSavepoint; overload;  // throws java.sql.SQLException
    procedure rollback(para1: JSSavepoint); overload;  // throws java.sql.SQLException
    procedure releaseSavepoint(para1: JSSavepoint); overload;  // throws java.sql.SQLException
    function createStatement(para1: jint; para2: jint; para3: jint): JSStatement; overload;  // throws java.sql.SQLException
    function prepareStatement(para1: JLString; para2: jint; para3: jint; para4: jint): JSPreparedStatement; overload;  // throws java.sql.SQLException
    function prepareCall(para1: JLString; para2: jint; para3: jint; para4: jint): JSCallableStatement; overload;  // throws java.sql.SQLException
    function prepareStatement(para1: JLString; para2: jint): JSPreparedStatement; overload;  // throws java.sql.SQLException
    function prepareStatement(para1: JLString; para2: Arr1jint): JSPreparedStatement; overload;  // throws java.sql.SQLException
    function prepareStatement(para1: JLString; var para2: array of jint): JSPreparedStatement; overload;  // throws java.sql.SQLException
    function prepareStatement(para1: JLString; para2: Arr1JLString): JSPreparedStatement; overload;  // throws java.sql.SQLException
    function prepareStatement(para1: JLString; var para2: array of JLString): JSPreparedStatement; overload;  // throws java.sql.SQLException
    function createClob(): JSClob; overload;  // throws java.sql.SQLException
    function createBlob(): JSBlob; overload;  // throws java.sql.SQLException
    function createNClob(): JSNClob; overload;  // throws java.sql.SQLException
    function createSQLXML(): JSSQLXML; overload;  // throws java.sql.SQLException
    function isValid(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    procedure setClientInfo(para1: JLString; para2: JLString); overload;  // throws java.sql.SQLClientInfoException
    procedure setClientInfo(para1: JUProperties); overload;  // throws java.sql.SQLClientInfoException
    function getClientInfo(para1: JLString): JLString; overload;  // throws java.sql.SQLException
    function getClientInfo(): JUProperties; overload;  // throws java.sql.SQLException
    function createArrayOf(para1: JLString; para2: Arr1JLObject): JSArray; overload;  // throws java.sql.SQLException
    function createArrayOf(para1: JLString; var para2: array of JLObject): JSArray; overload;  // throws java.sql.SQLException
    function createStruct(para1: JLString; para2: Arr1JLObject): JSStruct; overload;  // throws java.sql.SQLException
    function createStruct(para1: JLString; var para2: array of JLObject): JSStruct; overload;  // throws java.sql.SQLException
  end;

  JSDatabaseMetaData = interface external 'java.sql' name 'DatabaseMetaData' (JSWrapper)
    const
      procedureResultUnknown = 0;
      procedureNoResult = 1;
      procedureReturnsResult = 2;
      procedureColumnUnknown = 0;
      procedureColumnIn = 1;
      procedureColumnInOut = 2;
      procedureColumnOut = 4;
      procedureColumnReturn = 5;
      procedureColumnResult = 3;
      procedureNoNulls = 0;
      procedureNullable = 1;
      procedureNullableUnknown = 2;
      columnNoNulls = 0;
      columnNullable = 1;
      columnNullableUnknown = 2;
      bestRowTemporary = 0;
      bestRowTransaction = 1;
      bestRowSession = 2;
      bestRowUnknown = 0;
      bestRowNotPseudo = 1;
      bestRowPseudo = 2;
      versionColumnUnknown = 0;
      versionColumnNotPseudo = 1;
      versionColumnPseudo = 2;
      importedKeyCascade = 0;
      importedKeyRestrict = 1;
      importedKeySetNull = 2;
      importedKeyNoAction = 3;
      importedKeySetDefault = 4;
      importedKeyInitiallyDeferred = 5;
      importedKeyInitiallyImmediate = 6;
      importedKeyNotDeferrable = 7;
      typeNoNulls = 0;
      typeNullable = 1;
      typeNullableUnknown = 2;
      typePredNone = 0;
      typePredChar = 1;
      typePredBasic = 2;
      typeSearchable = 3;
      tableIndexStatistic = 0;
      tableIndexClustered = 1;
      tableIndexHashed = 2;
      tableIndexOther = 3;
      attributeNoNulls = 0;
      attributeNullable = 1;
      attributeNullableUnknown = 2;
      sqlStateXOpen = 1;
      sqlStateSQL = 2;
      sqlStateSQL99 = 2;
      functionColumnUnknown = 0;
      functionColumnIn = 1;
      functionColumnInOut = 2;
      functionColumnOut = 3;
      functionReturn = 4;
      functionColumnResult = 5;
      functionNoNulls = 0;
      functionNullable = 1;
      functionNullableUnknown = 2;
      functionResultUnknown = 0;
      functionNoTable = 1;
      functionReturnsTable = 2;
    function allProceduresAreCallable(): jboolean; overload;  // throws java.sql.SQLException
    function allTablesAreSelectable(): jboolean; overload;  // throws java.sql.SQLException
    function getURL(): JLString; overload;  // throws java.sql.SQLException
    function getUserName(): JLString; overload;  // throws java.sql.SQLException
    function isReadOnly(): jboolean; overload;  // throws java.sql.SQLException
    function nullsAreSortedHigh(): jboolean; overload;  // throws java.sql.SQLException
    function nullsAreSortedLow(): jboolean; overload;  // throws java.sql.SQLException
    function nullsAreSortedAtStart(): jboolean; overload;  // throws java.sql.SQLException
    function nullsAreSortedAtEnd(): jboolean; overload;  // throws java.sql.SQLException
    function getDatabaseProductName(): JLString; overload;  // throws java.sql.SQLException
    function getDatabaseProductVersion(): JLString; overload;  // throws java.sql.SQLException
    function getDriverName(): JLString; overload;  // throws java.sql.SQLException
    function getDriverVersion(): JLString; overload;  // throws java.sql.SQLException
    function getDriverMajorVersion(): jint; overload;
    function getDriverMinorVersion(): jint; overload;
    function usesLocalFiles(): jboolean; overload;  // throws java.sql.SQLException
    function usesLocalFilePerTable(): jboolean; overload;  // throws java.sql.SQLException
    function supportsMixedCaseIdentifiers(): jboolean; overload;  // throws java.sql.SQLException
    function storesUpperCaseIdentifiers(): jboolean; overload;  // throws java.sql.SQLException
    function storesLowerCaseIdentifiers(): jboolean; overload;  // throws java.sql.SQLException
    function storesMixedCaseIdentifiers(): jboolean; overload;  // throws java.sql.SQLException
    function supportsMixedCaseQuotedIdentifiers(): jboolean; overload;  // throws java.sql.SQLException
    function storesUpperCaseQuotedIdentifiers(): jboolean; overload;  // throws java.sql.SQLException
    function storesLowerCaseQuotedIdentifiers(): jboolean; overload;  // throws java.sql.SQLException
    function storesMixedCaseQuotedIdentifiers(): jboolean; overload;  // throws java.sql.SQLException
    function getIdentifierQuoteString(): JLString; overload;  // throws java.sql.SQLException
    function getSQLKeywords(): JLString; overload;  // throws java.sql.SQLException
    function getNumericFunctions(): JLString; overload;  // throws java.sql.SQLException
    function getStringFunctions(): JLString; overload;  // throws java.sql.SQLException
    function getSystemFunctions(): JLString; overload;  // throws java.sql.SQLException
    function getTimeDateFunctions(): JLString; overload;  // throws java.sql.SQLException
    function getSearchStringEscape(): JLString; overload;  // throws java.sql.SQLException
    function getExtraNameCharacters(): JLString; overload;  // throws java.sql.SQLException
    function supportsAlterTableWithAddColumn(): jboolean; overload;  // throws java.sql.SQLException
    function supportsAlterTableWithDropColumn(): jboolean; overload;  // throws java.sql.SQLException
    function supportsColumnAliasing(): jboolean; overload;  // throws java.sql.SQLException
    function nullPlusNonNullIsNull(): jboolean; overload;  // throws java.sql.SQLException
    function supportsConvert(): jboolean; overload;  // throws java.sql.SQLException
    function supportsConvert(para1: jint; para2: jint): jboolean; overload;  // throws java.sql.SQLException
    function supportsTableCorrelationNames(): jboolean; overload;  // throws java.sql.SQLException
    function supportsDifferentTableCorrelationNames(): jboolean; overload;  // throws java.sql.SQLException
    function supportsExpressionsInOrderBy(): jboolean; overload;  // throws java.sql.SQLException
    function supportsOrderByUnrelated(): jboolean; overload;  // throws java.sql.SQLException
    function supportsGroupBy(): jboolean; overload;  // throws java.sql.SQLException
    function supportsGroupByUnrelated(): jboolean; overload;  // throws java.sql.SQLException
    function supportsGroupByBeyondSelect(): jboolean; overload;  // throws java.sql.SQLException
    function supportsLikeEscapeClause(): jboolean; overload;  // throws java.sql.SQLException
    function supportsMultipleResultSets(): jboolean; overload;  // throws java.sql.SQLException
    function supportsMultipleTransactions(): jboolean; overload;  // throws java.sql.SQLException
    function supportsNonNullableColumns(): jboolean; overload;  // throws java.sql.SQLException
    function supportsMinimumSQLGrammar(): jboolean; overload;  // throws java.sql.SQLException
    function supportsCoreSQLGrammar(): jboolean; overload;  // throws java.sql.SQLException
    function supportsExtendedSQLGrammar(): jboolean; overload;  // throws java.sql.SQLException
    function supportsANSI92EntryLevelSQL(): jboolean; overload;  // throws java.sql.SQLException
    function supportsANSI92IntermediateSQL(): jboolean; overload;  // throws java.sql.SQLException
    function supportsANSI92FullSQL(): jboolean; overload;  // throws java.sql.SQLException
    function supportsIntegrityEnhancementFacility(): jboolean; overload;  // throws java.sql.SQLException
    function supportsOuterJoins(): jboolean; overload;  // throws java.sql.SQLException
    function supportsFullOuterJoins(): jboolean; overload;  // throws java.sql.SQLException
    function supportsLimitedOuterJoins(): jboolean; overload;  // throws java.sql.SQLException
    function getSchemaTerm(): JLString; overload;  // throws java.sql.SQLException
    function getProcedureTerm(): JLString; overload;  // throws java.sql.SQLException
    function getCatalogTerm(): JLString; overload;  // throws java.sql.SQLException
    function isCatalogAtStart(): jboolean; overload;  // throws java.sql.SQLException
    function getCatalogSeparator(): JLString; overload;  // throws java.sql.SQLException
    function supportsSchemasInDataManipulation(): jboolean; overload;  // throws java.sql.SQLException
    function supportsSchemasInProcedureCalls(): jboolean; overload;  // throws java.sql.SQLException
    function supportsSchemasInTableDefinitions(): jboolean; overload;  // throws java.sql.SQLException
    function supportsSchemasInIndexDefinitions(): jboolean; overload;  // throws java.sql.SQLException
    function supportsSchemasInPrivilegeDefinitions(): jboolean; overload;  // throws java.sql.SQLException
    function supportsCatalogsInDataManipulation(): jboolean; overload;  // throws java.sql.SQLException
    function supportsCatalogsInProcedureCalls(): jboolean; overload;  // throws java.sql.SQLException
    function supportsCatalogsInTableDefinitions(): jboolean; overload;  // throws java.sql.SQLException
    function supportsCatalogsInIndexDefinitions(): jboolean; overload;  // throws java.sql.SQLException
    function supportsCatalogsInPrivilegeDefinitions(): jboolean; overload;  // throws java.sql.SQLException
    function supportsPositionedDelete(): jboolean; overload;  // throws java.sql.SQLException
    function supportsPositionedUpdate(): jboolean; overload;  // throws java.sql.SQLException
    function supportsSelectForUpdate(): jboolean; overload;  // throws java.sql.SQLException
    function supportsStoredProcedures(): jboolean; overload;  // throws java.sql.SQLException
    function supportsSubqueriesInComparisons(): jboolean; overload;  // throws java.sql.SQLException
    function supportsSubqueriesInExists(): jboolean; overload;  // throws java.sql.SQLException
    function supportsSubqueriesInIns(): jboolean; overload;  // throws java.sql.SQLException
    function supportsSubqueriesInQuantifieds(): jboolean; overload;  // throws java.sql.SQLException
    function supportsCorrelatedSubqueries(): jboolean; overload;  // throws java.sql.SQLException
    function supportsUnion(): jboolean; overload;  // throws java.sql.SQLException
    function supportsUnionAll(): jboolean; overload;  // throws java.sql.SQLException
    function supportsOpenCursorsAcrossCommit(): jboolean; overload;  // throws java.sql.SQLException
    function supportsOpenCursorsAcrossRollback(): jboolean; overload;  // throws java.sql.SQLException
    function supportsOpenStatementsAcrossCommit(): jboolean; overload;  // throws java.sql.SQLException
    function supportsOpenStatementsAcrossRollback(): jboolean; overload;  // throws java.sql.SQLException
    function getMaxBinaryLiteralLength(): jint; overload;  // throws java.sql.SQLException
    function getMaxCharLiteralLength(): jint; overload;  // throws java.sql.SQLException
    function getMaxColumnNameLength(): jint; overload;  // throws java.sql.SQLException
    function getMaxColumnsInGroupBy(): jint; overload;  // throws java.sql.SQLException
    function getMaxColumnsInIndex(): jint; overload;  // throws java.sql.SQLException
    function getMaxColumnsInOrderBy(): jint; overload;  // throws java.sql.SQLException
    function getMaxColumnsInSelect(): jint; overload;  // throws java.sql.SQLException
    function getMaxColumnsInTable(): jint; overload;  // throws java.sql.SQLException
    function getMaxConnections(): jint; overload;  // throws java.sql.SQLException
    function getMaxCursorNameLength(): jint; overload;  // throws java.sql.SQLException
    function getMaxIndexLength(): jint; overload;  // throws java.sql.SQLException
    function getMaxSchemaNameLength(): jint; overload;  // throws java.sql.SQLException
    function getMaxProcedureNameLength(): jint; overload;  // throws java.sql.SQLException
    function getMaxCatalogNameLength(): jint; overload;  // throws java.sql.SQLException
    function getMaxRowSize(): jint; overload;  // throws java.sql.SQLException
    function doesMaxRowSizeIncludeBlobs(): jboolean; overload;  // throws java.sql.SQLException
    function getMaxStatementLength(): jint; overload;  // throws java.sql.SQLException
    function getMaxStatements(): jint; overload;  // throws java.sql.SQLException
    function getMaxTableNameLength(): jint; overload;  // throws java.sql.SQLException
    function getMaxTablesInSelect(): jint; overload;  // throws java.sql.SQLException
    function getMaxUserNameLength(): jint; overload;  // throws java.sql.SQLException
    function getDefaultTransactionIsolation(): jint; overload;  // throws java.sql.SQLException
    function supportsTransactions(): jboolean; overload;  // throws java.sql.SQLException
    function supportsTransactionIsolationLevel(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function supportsDataDefinitionAndDataManipulationTransactions(): jboolean; overload;  // throws java.sql.SQLException
    function supportsDataManipulationTransactionsOnly(): jboolean; overload;  // throws java.sql.SQLException
    function dataDefinitionCausesTransactionCommit(): jboolean; overload;  // throws java.sql.SQLException
    function dataDefinitionIgnoredInTransactions(): jboolean; overload;  // throws java.sql.SQLException
    function getProcedures(para1: JLString; para2: JLString; para3: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function getProcedureColumns(para1: JLString; para2: JLString; para3: JLString; para4: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function getTables(para1: JLString; para2: JLString; para3: JLString; para4: Arr1JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function getTables(para1: JLString; para2: JLString; para3: JLString; var para4: array of JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function getSchemas(): JSResultSet; overload;  // throws java.sql.SQLException
    function getCatalogs(): JSResultSet; overload;  // throws java.sql.SQLException
    function getTableTypes(): JSResultSet; overload;  // throws java.sql.SQLException
    function getColumns(para1: JLString; para2: JLString; para3: JLString; para4: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function getColumnPrivileges(para1: JLString; para2: JLString; para3: JLString; para4: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function getTablePrivileges(para1: JLString; para2: JLString; para3: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function getBestRowIdentifier(para1: JLString; para2: JLString; para3: JLString; para4: jint; para5: jboolean): JSResultSet; overload;  // throws java.sql.SQLException
    function getVersionColumns(para1: JLString; para2: JLString; para3: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function getPrimaryKeys(para1: JLString; para2: JLString; para3: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function getImportedKeys(para1: JLString; para2: JLString; para3: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function getExportedKeys(para1: JLString; para2: JLString; para3: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function getCrossReference(para1: JLString; para2: JLString; para3: JLString; para4: JLString; para5: JLString; para6: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function getTypeInfo(): JSResultSet; overload;  // throws java.sql.SQLException
    function getIndexInfo(para1: JLString; para2: JLString; para3: JLString; para4: jboolean; para5: jboolean): JSResultSet; overload;  // throws java.sql.SQLException
    function supportsResultSetType(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function supportsResultSetConcurrency(para1: jint; para2: jint): jboolean; overload;  // throws java.sql.SQLException
    function ownUpdatesAreVisible(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function ownDeletesAreVisible(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function ownInsertsAreVisible(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function othersUpdatesAreVisible(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function othersDeletesAreVisible(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function othersInsertsAreVisible(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function updatesAreDetected(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function deletesAreDetected(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function insertsAreDetected(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function supportsBatchUpdates(): jboolean; overload;  // throws java.sql.SQLException
    function getUDTs(para1: JLString; para2: JLString; para3: JLString; para4: Arr1jint): JSResultSet; overload;  // throws java.sql.SQLException
    function getUDTs(para1: JLString; para2: JLString; para3: JLString; var para4: array of jint): JSResultSet; overload;  // throws java.sql.SQLException
    function getConnection(): JSConnection; overload;  // throws java.sql.SQLException
    function supportsSavepoints(): jboolean; overload;  // throws java.sql.SQLException
    function supportsNamedParameters(): jboolean; overload;  // throws java.sql.SQLException
    function supportsMultipleOpenResults(): jboolean; overload;  // throws java.sql.SQLException
    function supportsGetGeneratedKeys(): jboolean; overload;  // throws java.sql.SQLException
    function getSuperTypes(para1: JLString; para2: JLString; para3: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function getSuperTables(para1: JLString; para2: JLString; para3: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function getAttributes(para1: JLString; para2: JLString; para3: JLString; para4: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function supportsResultSetHoldability(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function getResultSetHoldability(): jint; overload;  // throws java.sql.SQLException
    function getDatabaseMajorVersion(): jint; overload;  // throws java.sql.SQLException
    function getDatabaseMinorVersion(): jint; overload;  // throws java.sql.SQLException
    function getJDBCMajorVersion(): jint; overload;  // throws java.sql.SQLException
    function getJDBCMinorVersion(): jint; overload;  // throws java.sql.SQLException
    function getSQLStateType(): jint; overload;  // throws java.sql.SQLException
    function locatorsUpdateCopy(): jboolean; overload;  // throws java.sql.SQLException
    function supportsStatementPooling(): jboolean; overload;  // throws java.sql.SQLException
    function getRowIdLifetime(): JSRowIdLifetime; overload;  // throws java.sql.SQLException
    function getSchemas(para1: JLString; para2: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function supportsStoredFunctionsUsingCallSyntax(): jboolean; overload;  // throws java.sql.SQLException
    function autoCommitFailureClosesAllResultSets(): jboolean; overload;  // throws java.sql.SQLException
    function getClientInfoProperties(): JSResultSet; overload;  // throws java.sql.SQLException
    function getFunctions(para1: JLString; para2: JLString; para3: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function getFunctionColumns(para1: JLString; para2: JLString; para3: JLString; para4: JLString): JSResultSet; overload;  // throws java.sql.SQLException
  end;

  JSParameterMetaData = interface external 'java.sql' name 'ParameterMetaData' (JSWrapper)
    const
      parameterNoNulls = 0;
      parameterNullable = 1;
      parameterNullableUnknown = 2;
      parameterModeUnknown = 0;
      parameterModeIn = 1;
      parameterModeInOut = 2;
      parameterModeOut = 4;
    function getParameterCount(): jint; overload;  // throws java.sql.SQLException
    function isNullable(para1: jint): jint; overload;  // throws java.sql.SQLException
    function isSigned(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function getPrecision(para1: jint): jint; overload;  // throws java.sql.SQLException
    function getScale(para1: jint): jint; overload;  // throws java.sql.SQLException
    function getParameterType(para1: jint): jint; overload;  // throws java.sql.SQLException
    function getParameterTypeName(para1: jint): JLString; overload;  // throws java.sql.SQLException
    function getParameterClassName(para1: jint): JLString; overload;  // throws java.sql.SQLException
    function getParameterMode(para1: jint): jint; overload;  // throws java.sql.SQLException
  end;

  JSResultSet = interface external 'java.sql' name 'ResultSet' (JSWrapper)
    const
      FETCH_FORWARD = 1000;
      FETCH_REVERSE = 1001;
      FETCH_UNKNOWN = 1002;
      TYPE_FORWARD_ONLY = 1003;
      TYPE_SCROLL_INSENSITIVE = 1004;
      TYPE_SCROLL_SENSITIVE = 1005;
      CONCUR_READ_ONLY = 1007;
      CONCUR_UPDATABLE = 1008;
      HOLD_CURSORS_OVER_COMMIT = 1;
      CLOSE_CURSORS_AT_COMMIT = 2;
    function next(): jboolean; overload;  // throws java.sql.SQLException
    procedure close(); overload;  // throws java.sql.SQLException
    function wasNull(): jboolean; overload;  // throws java.sql.SQLException
    function getString(para1: jint): JLString; overload;  // throws java.sql.SQLException
    function getBoolean(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function getByte(para1: jint): jbyte; overload;  // throws java.sql.SQLException
    function getShort(para1: jint): jshort; overload;  // throws java.sql.SQLException
    function getInt(para1: jint): jint; overload;  // throws java.sql.SQLException
    function getLong(para1: jint): jlong; overload;  // throws java.sql.SQLException
    function getFloat(para1: jint): jfloat; overload;  // throws java.sql.SQLException
    function getDouble(para1: jint): jdouble; overload;  // throws java.sql.SQLException
    function getBigDecimal(para1: jint; para2: jint): JMBigDecimal; overload;  // throws java.sql.SQLException
    function getBytes(para1: jint): Arr1jbyte; overload;  // throws java.sql.SQLException
    function getDate(para1: jint): JSDate; overload;  // throws java.sql.SQLException
    function getTime(para1: jint): JSTime; overload;  // throws java.sql.SQLException
    function getTimestamp(para1: jint): JSqlTimestamp; overload;  // throws java.sql.SQLException
    function getAsciiStream(para1: jint): JIInputStream; overload;  // throws java.sql.SQLException
    function getUnicodeStream(para1: jint): JIInputStream; overload;  // throws java.sql.SQLException
    function getBinaryStream(para1: jint): JIInputStream; overload;  // throws java.sql.SQLException
    function getString(para1: JLString): JLString; overload;  // throws java.sql.SQLException
    function getBoolean(para1: JLString): jboolean; overload;  // throws java.sql.SQLException
    function getByte(para1: JLString): jbyte; overload;  // throws java.sql.SQLException
    function getShort(para1: JLString): jshort; overload;  // throws java.sql.SQLException
    function getInt(para1: JLString): jint; overload;  // throws java.sql.SQLException
    function getLong(para1: JLString): jlong; overload;  // throws java.sql.SQLException
    function getFloat(para1: JLString): jfloat; overload;  // throws java.sql.SQLException
    function getDouble(para1: JLString): jdouble; overload;  // throws java.sql.SQLException
    function getBigDecimal(para1: JLString; para2: jint): JMBigDecimal; overload;  // throws java.sql.SQLException
    function getBytes(para1: JLString): Arr1jbyte; overload;  // throws java.sql.SQLException
    function getDate(para1: JLString): JSDate; overload;  // throws java.sql.SQLException
    function getTime(para1: JLString): JSTime; overload;  // throws java.sql.SQLException
    function getTimestamp(para1: JLString): JSqlTimestamp; overload;  // throws java.sql.SQLException
    function getAsciiStream(para1: JLString): JIInputStream; overload;  // throws java.sql.SQLException
    function getUnicodeStream(para1: JLString): JIInputStream; overload;  // throws java.sql.SQLException
    function getBinaryStream(para1: JLString): JIInputStream; overload;  // throws java.sql.SQLException
    function getWarnings(): JSSQLWarning; overload;  // throws java.sql.SQLException
    procedure clearWarnings(); overload;  // throws java.sql.SQLException
    function getCursorName(): JLString; overload;  // throws java.sql.SQLException
    function getMetaData(): JSResultSetMetaData; overload;  // throws java.sql.SQLException
    function getObject(para1: jint): JLObject; overload;  // throws java.sql.SQLException
    function getObject(para1: JLString): JLObject; overload;  // throws java.sql.SQLException
    function findColumn(para1: JLString): jint; overload;  // throws java.sql.SQLException
    function getCharacterStream(para1: jint): JIReader; overload;  // throws java.sql.SQLException
    function getCharacterStream(para1: JLString): JIReader; overload;  // throws java.sql.SQLException
    function getBigDecimal(para1: jint): JMBigDecimal; overload;  // throws java.sql.SQLException
    function getBigDecimal(para1: JLString): JMBigDecimal; overload;  // throws java.sql.SQLException
    function isBeforeFirst(): jboolean; overload;  // throws java.sql.SQLException
    function isAfterLast(): jboolean; overload;  // throws java.sql.SQLException
    function isFirst(): jboolean; overload;  // throws java.sql.SQLException
    function isLast(): jboolean; overload;  // throws java.sql.SQLException
    procedure beforeFirst(); overload;  // throws java.sql.SQLException
    procedure afterLast(); overload;  // throws java.sql.SQLException
    function first(): jboolean; overload;  // throws java.sql.SQLException
    function last(): jboolean; overload;  // throws java.sql.SQLException
    function getRow(): jint; overload;  // throws java.sql.SQLException
    function absolute(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function relative(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function previous(): jboolean; overload;  // throws java.sql.SQLException
    procedure setFetchDirection(para1: jint); overload;  // throws java.sql.SQLException
    function getFetchDirection(): jint; overload;  // throws java.sql.SQLException
    procedure setFetchSize(para1: jint); overload;  // throws java.sql.SQLException
    function getFetchSize(): jint; overload;  // throws java.sql.SQLException
    function getType(): jint; overload;  // throws java.sql.SQLException
    function getConcurrency(): jint; overload;  // throws java.sql.SQLException
    function rowUpdated(): jboolean; overload;  // throws java.sql.SQLException
    function rowInserted(): jboolean; overload;  // throws java.sql.SQLException
    function rowDeleted(): jboolean; overload;  // throws java.sql.SQLException
    procedure updateNull(para1: jint); overload;  // throws java.sql.SQLException
    procedure updateBoolean(para1: jint; para2: jboolean); overload;  // throws java.sql.SQLException
    procedure updateByte(para1: jint; para2: jbyte); overload;  // throws java.sql.SQLException
    procedure updateShort(para1: jint; para2: jshort); overload;  // throws java.sql.SQLException
    procedure updateInt(para1: jint; para2: jint); overload;  // throws java.sql.SQLException
    procedure updateLong(para1: jint; para2: jlong); overload;  // throws java.sql.SQLException
    procedure updateFloat(para1: jint; para2: jfloat); overload;  // throws java.sql.SQLException
    procedure updateDouble(para1: jint; para2: jdouble); overload;  // throws java.sql.SQLException
    procedure updateBigDecimal(para1: jint; para2: JMBigDecimal); overload;  // throws java.sql.SQLException
    procedure updateString(para1: jint; para2: JLString); overload;  // throws java.sql.SQLException
    procedure updateBytes(para1: jint; para2: Arr1jbyte); overload;  // throws java.sql.SQLException
    procedure updateBytes(para1: jint; var para2: array of jbyte); overload;  // throws java.sql.SQLException
    procedure updateDate(para1: jint; para2: JSDate); overload;  // throws java.sql.SQLException
    procedure updateTime(para1: jint; para2: JSTime); overload;  // throws java.sql.SQLException
    procedure updateTimestamp(para1: jint; para2: JSqlTimestamp); overload;  // throws java.sql.SQLException
    procedure updateAsciiStream(para1: jint; para2: JIInputStream; para3: jint); overload;  // throws java.sql.SQLException
    procedure updateBinaryStream(para1: jint; para2: JIInputStream; para3: jint); overload;  // throws java.sql.SQLException
    procedure updateCharacterStream(para1: jint; para2: JIReader; para3: jint); overload;  // throws java.sql.SQLException
    procedure updateObject(para1: jint; para2: JLObject; para3: jint); overload;  // throws java.sql.SQLException
    procedure updateObject(para1: jint; para2: JLObject); overload;  // throws java.sql.SQLException
    procedure updateNull(para1: JLString); overload;  // throws java.sql.SQLException
    procedure updateBoolean(para1: JLString; para2: jboolean); overload;  // throws java.sql.SQLException
    procedure updateByte(para1: JLString; para2: jbyte); overload;  // throws java.sql.SQLException
    procedure updateShort(para1: JLString; para2: jshort); overload;  // throws java.sql.SQLException
    procedure updateInt(para1: JLString; para2: jint); overload;  // throws java.sql.SQLException
    procedure updateLong(para1: JLString; para2: jlong); overload;  // throws java.sql.SQLException
    procedure updateFloat(para1: JLString; para2: jfloat); overload;  // throws java.sql.SQLException
    procedure updateDouble(para1: JLString; para2: jdouble); overload;  // throws java.sql.SQLException
    procedure updateBigDecimal(para1: JLString; para2: JMBigDecimal); overload;  // throws java.sql.SQLException
    procedure updateString(para1: JLString; para2: JLString); overload;  // throws java.sql.SQLException
    procedure updateBytes(para1: JLString; para2: Arr1jbyte); overload;  // throws java.sql.SQLException
    procedure updateBytes(para1: JLString; var para2: array of jbyte); overload;  // throws java.sql.SQLException
    procedure updateDate(para1: JLString; para2: JSDate); overload;  // throws java.sql.SQLException
    procedure updateTime(para1: JLString; para2: JSTime); overload;  // throws java.sql.SQLException
    procedure updateTimestamp(para1: JLString; para2: JSqlTimestamp); overload;  // throws java.sql.SQLException
    procedure updateAsciiStream(para1: JLString; para2: JIInputStream; para3: jint); overload;  // throws java.sql.SQLException
    procedure updateBinaryStream(para1: JLString; para2: JIInputStream; para3: jint); overload;  // throws java.sql.SQLException
    procedure updateCharacterStream(para1: JLString; para2: JIReader; para3: jint); overload;  // throws java.sql.SQLException
    procedure updateObject(para1: JLString; para2: JLObject; para3: jint); overload;  // throws java.sql.SQLException
    procedure updateObject(para1: JLString; para2: JLObject); overload;  // throws java.sql.SQLException
    procedure insertRow(); overload;  // throws java.sql.SQLException
    procedure updateRow(); overload;  // throws java.sql.SQLException
    procedure deleteRow(); overload;  // throws java.sql.SQLException
    procedure refreshRow(); overload;  // throws java.sql.SQLException
    procedure cancelRowUpdates(); overload;  // throws java.sql.SQLException
    procedure moveToInsertRow(); overload;  // throws java.sql.SQLException
    procedure moveToCurrentRow(); overload;  // throws java.sql.SQLException
    function getStatement(): JSStatement; overload;  // throws java.sql.SQLException
    function getObject(para1: jint; para2: JUMap): JLObject; overload;  // throws java.sql.SQLException
    function getRef(para1: jint): JSRef; overload;  // throws java.sql.SQLException
    function getBlob(para1: jint): JSBlob; overload;  // throws java.sql.SQLException
    function getClob(para1: jint): JSClob; overload;  // throws java.sql.SQLException
    function getArray(para1: jint): JSArray; overload;  // throws java.sql.SQLException
    function getObject(para1: JLString; para2: JUMap): JLObject; overload;  // throws java.sql.SQLException
    function getRef(para1: JLString): JSRef; overload;  // throws java.sql.SQLException
    function getBlob(para1: JLString): JSBlob; overload;  // throws java.sql.SQLException
    function getClob(para1: JLString): JSClob; overload;  // throws java.sql.SQLException
    function getArray(para1: JLString): JSArray; overload;  // throws java.sql.SQLException
    function getDate(para1: jint; para2: JUCalendar): JSDate; overload;  // throws java.sql.SQLException
    function getDate(para1: JLString; para2: JUCalendar): JSDate; overload;  // throws java.sql.SQLException
    function getTime(para1: jint; para2: JUCalendar): JSTime; overload;  // throws java.sql.SQLException
    function getTime(para1: JLString; para2: JUCalendar): JSTime; overload;  // throws java.sql.SQLException
    function getTimestamp(para1: jint; para2: JUCalendar): JSqlTimestamp; overload;  // throws java.sql.SQLException
    function getTimestamp(para1: JLString; para2: JUCalendar): JSqlTimestamp; overload;  // throws java.sql.SQLException
    function getURL(para1: jint): JNURL; overload;  // throws java.sql.SQLException
    function getURL(para1: JLString): JNURL; overload;  // throws java.sql.SQLException
    procedure updateRef(para1: jint; para2: JSRef); overload;  // throws java.sql.SQLException
    procedure updateRef(para1: JLString; para2: JSRef); overload;  // throws java.sql.SQLException
    procedure updateBlob(para1: jint; para2: JSBlob); overload;  // throws java.sql.SQLException
    procedure updateBlob(para1: JLString; para2: JSBlob); overload;  // throws java.sql.SQLException
    procedure updateClob(para1: jint; para2: JSClob); overload;  // throws java.sql.SQLException
    procedure updateClob(para1: JLString; para2: JSClob); overload;  // throws java.sql.SQLException
    procedure updateArray(para1: jint; para2: JSArray); overload;  // throws java.sql.SQLException
    procedure updateArray(para1: JLString; para2: JSArray); overload;  // throws java.sql.SQLException
    function getRowId(para1: jint): JSRowId; overload;  // throws java.sql.SQLException
    function getRowId(para1: JLString): JSRowId; overload;  // throws java.sql.SQLException
    procedure updateRowId(para1: jint; para2: JSRowId); overload;  // throws java.sql.SQLException
    procedure updateRowId(para1: JLString; para2: JSRowId); overload;  // throws java.sql.SQLException
    function getHoldability(): jint; overload;  // throws java.sql.SQLException
    function isClosed(): jboolean; overload;  // throws java.sql.SQLException
    procedure updateNString(para1: jint; para2: JLString); overload;  // throws java.sql.SQLException
    procedure updateNString(para1: JLString; para2: JLString); overload;  // throws java.sql.SQLException
    procedure updateNClob(para1: jint; para2: JSNClob); overload;  // throws java.sql.SQLException
    procedure updateNClob(para1: JLString; para2: JSNClob); overload;  // throws java.sql.SQLException
    function getNClob(para1: jint): JSNClob; overload;  // throws java.sql.SQLException
    function getNClob(para1: JLString): JSNClob; overload;  // throws java.sql.SQLException
    function getSQLXML(para1: jint): JSSQLXML; overload;  // throws java.sql.SQLException
    function getSQLXML(para1: JLString): JSSQLXML; overload;  // throws java.sql.SQLException
    procedure updateSQLXML(para1: jint; para2: JSSQLXML); overload;  // throws java.sql.SQLException
    procedure updateSQLXML(para1: JLString; para2: JSSQLXML); overload;  // throws java.sql.SQLException
    function getNString(para1: jint): JLString; overload;  // throws java.sql.SQLException
    function getNString(para1: JLString): JLString; overload;  // throws java.sql.SQLException
    function getNCharacterStream(para1: jint): JIReader; overload;  // throws java.sql.SQLException
    function getNCharacterStream(para1: JLString): JIReader; overload;  // throws java.sql.SQLException
    procedure updateNCharacterStream(para1: jint; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure updateNCharacterStream(para1: JLString; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure updateAsciiStream(para1: jint; para2: JIInputStream; para3: jlong); overload;  // throws java.sql.SQLException
    procedure updateBinaryStream(para1: jint; para2: JIInputStream; para3: jlong); overload;  // throws java.sql.SQLException
    procedure updateCharacterStream(para1: jint; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure updateAsciiStream(para1: JLString; para2: JIInputStream; para3: jlong); overload;  // throws java.sql.SQLException
    procedure updateBinaryStream(para1: JLString; para2: JIInputStream; para3: jlong); overload;  // throws java.sql.SQLException
    procedure updateCharacterStream(para1: JLString; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure updateBlob(para1: jint; para2: JIInputStream; para3: jlong); overload;  // throws java.sql.SQLException
    procedure updateBlob(para1: JLString; para2: JIInputStream; para3: jlong); overload;  // throws java.sql.SQLException
    procedure updateClob(para1: jint; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure updateClob(para1: JLString; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure updateNClob(para1: jint; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure updateNClob(para1: JLString; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure updateNCharacterStream(para1: jint; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure updateNCharacterStream(para1: JLString; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure updateAsciiStream(para1: jint; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure updateBinaryStream(para1: jint; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure updateCharacterStream(para1: jint; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure updateAsciiStream(para1: JLString; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure updateBinaryStream(para1: JLString; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure updateCharacterStream(para1: JLString; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure updateBlob(para1: jint; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure updateBlob(para1: JLString; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure updateClob(para1: jint; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure updateClob(para1: JLString; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure updateNClob(para1: jint; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure updateNClob(para1: JLString; para2: JIReader); overload;  // throws java.sql.SQLException
  end;

  JSResultSetMetaData = interface external 'java.sql' name 'ResultSetMetaData' (JSWrapper)
    const
      columnNoNulls = 0;
      columnNullable = 1;
      columnNullableUnknown = 2;
    function getColumnCount(): jint; overload;  // throws java.sql.SQLException
    function isAutoIncrement(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function isCaseSensitive(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function isSearchable(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function isCurrency(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function isNullable(para1: jint): jint; overload;  // throws java.sql.SQLException
    function isSigned(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function getColumnDisplaySize(para1: jint): jint; overload;  // throws java.sql.SQLException
    function getColumnLabel(para1: jint): JLString; overload;  // throws java.sql.SQLException
    function getColumnName(para1: jint): JLString; overload;  // throws java.sql.SQLException
    function getSchemaName(para1: jint): JLString; overload;  // throws java.sql.SQLException
    function getPrecision(para1: jint): jint; overload;  // throws java.sql.SQLException
    function getScale(para1: jint): jint; overload;  // throws java.sql.SQLException
    function getTableName(para1: jint): JLString; overload;  // throws java.sql.SQLException
    function getCatalogName(para1: jint): JLString; overload;  // throws java.sql.SQLException
    function getColumnType(para1: jint): jint; overload;  // throws java.sql.SQLException
    function getColumnTypeName(para1: jint): JLString; overload;  // throws java.sql.SQLException
    function isReadOnly(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function isWritable(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function isDefinitelyWritable(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function getColumnClassName(para1: jint): JLString; overload;  // throws java.sql.SQLException
  end;

  JSStatement = interface external 'java.sql' name 'Statement' (JSWrapper)
    const
      CLOSE_CURRENT_RESULT = 1;
      KEEP_CURRENT_RESULT = 2;
      CLOSE_ALL_RESULTS = 3;
      SUCCESS_NO_INFO = -2;
      EXECUTE_FAILED = -3;
      RETURN_GENERATED_KEYS = 1;
      NO_GENERATED_KEYS = 2;
    function executeQuery(para1: JLString): JSResultSet; overload;  // throws java.sql.SQLException
    function executeUpdate(para1: JLString): jint; overload;  // throws java.sql.SQLException
    procedure close(); overload;  // throws java.sql.SQLException
    function getMaxFieldSize(): jint; overload;  // throws java.sql.SQLException
    procedure setMaxFieldSize(para1: jint); overload;  // throws java.sql.SQLException
    function getMaxRows(): jint; overload;  // throws java.sql.SQLException
    procedure setMaxRows(para1: jint); overload;  // throws java.sql.SQLException
    procedure setEscapeProcessing(para1: jboolean); overload;  // throws java.sql.SQLException
    function getQueryTimeout(): jint; overload;  // throws java.sql.SQLException
    procedure setQueryTimeout(para1: jint); overload;  // throws java.sql.SQLException
    procedure cancel(); overload;  // throws java.sql.SQLException
    function getWarnings(): JSSQLWarning; overload;  // throws java.sql.SQLException
    procedure clearWarnings(); overload;  // throws java.sql.SQLException
    procedure setCursorName(para1: JLString); overload;  // throws java.sql.SQLException
    function execute(para1: JLString): jboolean; overload;  // throws java.sql.SQLException
    function getResultSet(): JSResultSet; overload;  // throws java.sql.SQLException
    function getUpdateCount(): jint; overload;  // throws java.sql.SQLException
    function getMoreResults(): jboolean; overload;  // throws java.sql.SQLException
    procedure setFetchDirection(para1: jint); overload;  // throws java.sql.SQLException
    function getFetchDirection(): jint; overload;  // throws java.sql.SQLException
    procedure setFetchSize(para1: jint); overload;  // throws java.sql.SQLException
    function getFetchSize(): jint; overload;  // throws java.sql.SQLException
    function getResultSetConcurrency(): jint; overload;  // throws java.sql.SQLException
    function getResultSetType(): jint; overload;  // throws java.sql.SQLException
    procedure addBatch(para1: JLString); overload;  // throws java.sql.SQLException
    procedure clearBatch(); overload;  // throws java.sql.SQLException
    function executeBatch(): Arr1jint; overload;  // throws java.sql.SQLException
    function getConnection(): JSConnection; overload;  // throws java.sql.SQLException
    function getMoreResults(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function getGeneratedKeys(): JSResultSet; overload;  // throws java.sql.SQLException
    function executeUpdate(para1: JLString; para2: jint): jint; overload;  // throws java.sql.SQLException
    function executeUpdate(para1: JLString; para2: Arr1jint): jint; overload;  // throws java.sql.SQLException
    function executeUpdate(para1: JLString; var para2: array of jint): jint; overload;  // throws java.sql.SQLException
    function executeUpdate(para1: JLString; para2: Arr1JLString): jint; overload;  // throws java.sql.SQLException
    function executeUpdate(para1: JLString; var para2: array of JLString): jint; overload;  // throws java.sql.SQLException
    function execute(para1: JLString; para2: jint): jboolean; overload;  // throws java.sql.SQLException
    function execute(para1: JLString; para2: Arr1jint): jboolean; overload;  // throws java.sql.SQLException
    function execute(para1: JLString; var para2: array of jint): jboolean; overload;  // throws java.sql.SQLException
    function execute(para1: JLString; para2: Arr1JLString): jboolean; overload;  // throws java.sql.SQLException
    function execute(para1: JLString; var para2: array of JLString): jboolean; overload;  // throws java.sql.SQLException
    function getResultSetHoldability(): jint; overload;  // throws java.sql.SQLException
    function isClosed(): jboolean; overload;  // throws java.sql.SQLException
    procedure setPoolable(para1: jboolean); overload;  // throws java.sql.SQLException
    function isPoolable(): jboolean; overload;  // throws java.sql.SQLException
  end;

  JTRBTableBuilder = class sealed external 'java.text' name 'RBTableBuilder' (JLObject)
  public
    constructor create(para1: JTRBCollationTables.InnerBuildAPI); overload;
    procedure build(para1: JLString; para2: jint); overload; virtual;  // throws java.text.ParseException
  end;

  JUHashtable = class external 'java.util' name 'Hashtable' (JUDictionary, JUMap, JLCloneable, JISerializable)
  public
    type
      InnerEmptyEnumerator = class;
      Arr1InnerEmptyEnumerator = array of InnerEmptyEnumerator;
      Arr2InnerEmptyEnumerator = array of Arr1InnerEmptyEnumerator;
      Arr3InnerEmptyEnumerator = array of Arr2InnerEmptyEnumerator;
      InnerEmptyIterator = class;
      Arr1InnerEmptyIterator = array of InnerEmptyIterator;
      Arr2InnerEmptyIterator = array of Arr1InnerEmptyIterator;
      Arr3InnerEmptyIterator = array of Arr2InnerEmptyIterator;
      InnerEnumerator = class;
      Arr1InnerEnumerator = array of InnerEnumerator;
      Arr2InnerEnumerator = array of Arr1InnerEnumerator;
      Arr3InnerEnumerator = array of Arr2InnerEnumerator;
      InnerEntry = class;
      Arr1InnerEntry = array of InnerEntry;
      Arr2InnerEntry = array of Arr1InnerEntry;
      Arr3InnerEntry = array of Arr2InnerEntry;
      InnerEntrySet = class;
      Arr1InnerEntrySet = array of InnerEntrySet;
      Arr2InnerEntrySet = array of Arr1InnerEntrySet;
      Arr3InnerEntrySet = array of Arr2InnerEntrySet;
      InnerKeySet = class;
      Arr1InnerKeySet = array of InnerKeySet;
      Arr2InnerKeySet = array of Arr1InnerKeySet;
      Arr3InnerKeySet = array of Arr2InnerKeySet;
      InnerValueCollection = class;
      Arr1InnerValueCollection = array of InnerValueCollection;
      Arr2InnerValueCollection = array of Arr1InnerValueCollection;
      Arr3InnerValueCollection = array of Arr2InnerValueCollection;
      InnerEmptyEnumerator = class external 'java.util' name 'EmptyEnumerator' 
      end;

      InnerEmptyIterator = class external 'java.util' name 'EmptyIterator' 
      end;

      InnerEnumerator = class external 'java.util' name 'Enumerator' 
      end;

      InnerEntry = class external 'java.util' name 'Entry' 
      end;

      InnerEntrySet = class external 'java.util' name 'EntrySet' 
      end;

      InnerKeySet = class external 'java.util' name 'KeySet' 
      end;

      InnerValueCollection = class external 'java.util' name 'ValueCollection' 
      end;

  public
    constructor create(para1: jint; para2: jfloat); overload;
    constructor create(para1: jint); overload;
    constructor create(); overload;
    constructor create(para1: JUMap); overload;
    function size(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function keys(): JUEnumeration; overload; virtual;
    function elements(): JUEnumeration; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function containsValue(para1: JLObject): jboolean; overload; virtual;
    function containsKey(para1: JLObject): jboolean; overload; virtual;
    function get(para1: JLObject): JLObject; overload; virtual;
  strict protected
    procedure rehash(); overload; virtual;
  public
    function put(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
    function remove(para1: JLObject): JLObject; overload; virtual;
    procedure putAll(para1: JUMap); overload; virtual;
    procedure clear(); overload; virtual;
    function clone(): JLObject; overload; virtual;
    function toString(): JLString; overload; virtual;
    function keySet(): JUSet; overload; virtual;
    function entrySet(): JUSet; overload; virtual;
    function values(): JUCollection; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JSPermissionsEnumerator = class sealed external 'java.security' name 'PermissionsEnumerator' (JLObject, JUEnumeration)
  public
    function hasMoreElements(): jboolean; overload; virtual;
    function nextElement(): JSPermission; overload; virtual;
    function nextElement(): JLObject; overload; virtual;
  end;

  JUStringTokenizer = class external 'java.util' name 'StringTokenizer' (JLObject, JUEnumeration)
  public
    constructor create(para1: JLString; para2: JLString; para3: jboolean); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString); overload;
    function hasMoreTokens(): jboolean; overload; virtual;
    function nextToken(): JLString; overload; virtual;
    function nextToken(para1: JLString): JLString; overload; virtual;
    function hasMoreElements(): jboolean; overload; virtual;
    function nextElement(): JLObject; overload; virtual;
    function countTokens(): jint; overload; virtual;
  end;

  JCSunJCE_j = class sealed external 'javax.crypto' name 'SunJCE_j' (JLObject, JUEnumeration)
  public
    function hasMoreElements(): jboolean; overload; virtual;
    function nextElement(): JLObject; overload; virtual;
  end;

  JNNameImplEnumerator = class sealed external 'javax.naming' name 'NameImplEnumerator' (JLObject, JUEnumeration)
  public
    function hasMoreElements(): jboolean; overload; virtual;
    function nextElement(): JLObject; overload; virtual;
  end;

  JNNamingEnumeration = interface external 'javax.naming' name 'NamingEnumeration' (JUEnumeration)
    function next(): JLObject; overload;  // throws javax.naming.NamingException
    function hasMore(): jboolean; overload;  // throws javax.naming.NamingException
    procedure close(); overload;  // throws javax.naming.NamingException
  end;

  JADFlavorListener = interface external 'java.awt.datatransfer' name 'FlavorListener' (JUEventListener)
    procedure flavorsChanged(para1: JADFlavorEvent); overload;
  end;

  JADDragGestureListener = interface external 'java.awt.dnd' name 'DragGestureListener' (JUEventListener)
    procedure dragGestureRecognized(para1: JADDragGestureEvent); overload;
  end;

  JADDragSourceListener = interface external 'java.awt.dnd' name 'DragSourceListener' (JUEventListener)
    procedure dragEnter(para1: JADDragSourceDragEvent); overload;
    procedure dragOver(para1: JADDragSourceDragEvent); overload;
    procedure dropActionChanged(para1: JADDragSourceDragEvent); overload;
    procedure dragExit(para1: JADDragSourceEvent); overload;
    procedure dragDropEnd(para1: JADDragSourceDropEvent); overload;
  end;

  JADDragSourceMotionListener = interface external 'java.awt.dnd' name 'DragSourceMotionListener' (JUEventListener)
    procedure dragMouseMoved(para1: JADDragSourceDragEvent); overload;
  end;

  JADDropTargetListener = interface external 'java.awt.dnd' name 'DropTargetListener' (JUEventListener)
    procedure dragEnter(para1: JADDropTargetDragEvent); overload;
    procedure dragOver(para1: JADDropTargetDragEvent); overload;
    procedure dropActionChanged(para1: JADDropTargetDragEvent); overload;
    procedure dragExit(para1: JADDropTargetEvent); overload;
    procedure drop(para1: JADDropTargetDropEvent); overload;
  end;

  JAEAWTEventListener = interface external 'java.awt.event' name 'AWTEventListener' (JUEventListener)
    procedure eventDispatched(para1: JAAWTEvent); overload;
  end;

  JAEActionListener = interface external 'java.awt.event' name 'ActionListener' (JUEventListener)
    procedure actionPerformed(para1: JAEActionEvent); overload;
  end;

  JAEAdjustmentListener = interface external 'java.awt.event' name 'AdjustmentListener' (JUEventListener)
    procedure adjustmentValueChanged(para1: JAEAdjustmentEvent); overload;
  end;

  JAEComponentListener = interface external 'java.awt.event' name 'ComponentListener' (JUEventListener)
    procedure componentResized(para1: JAEComponentEvent); overload;
    procedure componentMoved(para1: JAEComponentEvent); overload;
    procedure componentShown(para1: JAEComponentEvent); overload;
    procedure componentHidden(para1: JAEComponentEvent); overload;
  end;

  JAEContainerListener = interface external 'java.awt.event' name 'ContainerListener' (JUEventListener)
    procedure componentAdded(para1: JAEContainerEvent); overload;
    procedure componentRemoved(para1: JAEContainerEvent); overload;
  end;

  JAEFocusListener = interface external 'java.awt.event' name 'FocusListener' (JUEventListener)
    procedure focusGained(para1: JAEFocusEvent); overload;
    procedure focusLost(para1: JAEFocusEvent); overload;
  end;

  JAEHierarchyBoundsListener = interface external 'java.awt.event' name 'HierarchyBoundsListener' (JUEventListener)
    procedure ancestorMoved(para1: JAEHierarchyEvent); overload;
    procedure ancestorResized(para1: JAEHierarchyEvent); overload;
  end;

  JAEHierarchyListener = interface external 'java.awt.event' name 'HierarchyListener' (JUEventListener)
    procedure hierarchyChanged(para1: JAEHierarchyEvent); overload;
  end;

  JAEInputMethodListener = interface external 'java.awt.event' name 'InputMethodListener' (JUEventListener)
    procedure inputMethodTextChanged(para1: JAEInputMethodEvent); overload;
    procedure caretPositionChanged(para1: JAEInputMethodEvent); overload;
  end;

  JAEItemListener = interface external 'java.awt.event' name 'ItemListener' (JUEventListener)
    procedure itemStateChanged(para1: JAEItemEvent); overload;
  end;

  JAEKeyListener = interface external 'java.awt.event' name 'KeyListener' (JUEventListener)
    procedure keyTyped(para1: JAEKeyEvent); overload;
    procedure keyPressed(para1: JAEKeyEvent); overload;
    procedure keyReleased(para1: JAEKeyEvent); overload;
  end;

  JAEMouseListener = interface external 'java.awt.event' name 'MouseListener' (JUEventListener)
    procedure mouseClicked(para1: JAEMouseEvent); overload;
    procedure mousePressed(para1: JAEMouseEvent); overload;
    procedure mouseReleased(para1: JAEMouseEvent); overload;
    procedure mouseEntered(para1: JAEMouseEvent); overload;
    procedure mouseExited(para1: JAEMouseEvent); overload;
  end;

  JAEMouseMotionListener = interface external 'java.awt.event' name 'MouseMotionListener' (JUEventListener)
    procedure mouseDragged(para1: JAEMouseEvent); overload;
    procedure mouseMoved(para1: JAEMouseEvent); overload;
  end;

  JAEMouseWheelListener = interface external 'java.awt.event' name 'MouseWheelListener' (JUEventListener)
    procedure mouseWheelMoved(para1: JAEMouseWheelEvent); overload;
  end;

  JAETextListener = interface external 'java.awt.event' name 'TextListener' (JUEventListener)
    procedure textValueChanged(para1: JAETextEvent); overload;
  end;

  JAEWindowFocusListener = interface external 'java.awt.event' name 'WindowFocusListener' (JUEventListener)
    procedure windowGainedFocus(para1: JAEWindowEvent); overload;
    procedure windowLostFocus(para1: JAEWindowEvent); overload;
  end;

  JAEWindowListener = interface external 'java.awt.event' name 'WindowListener' (JUEventListener)
    procedure windowOpened(para1: JAEWindowEvent); overload;
    procedure windowClosing(para1: JAEWindowEvent); overload;
    procedure windowClosed(para1: JAEWindowEvent); overload;
    procedure windowIconified(para1: JAEWindowEvent); overload;
    procedure windowDeiconified(para1: JAEWindowEvent); overload;
    procedure windowActivated(para1: JAEWindowEvent); overload;
    procedure windowDeactivated(para1: JAEWindowEvent); overload;
  end;

  JAEWindowStateListener = interface external 'java.awt.event' name 'WindowStateListener' (JUEventListener)
    procedure windowStateChanged(para1: JAEWindowEvent); overload;
  end;

  JBPropertyChangeListener = interface external 'java.beans' name 'PropertyChangeListener' (JUEventListener)
    procedure propertyChange(para1: JBPropertyChangeEvent); overload;
  end;

  JBVetoableChangeListener = interface external 'java.beans' name 'VetoableChangeListener' (JUEventListener)
    procedure vetoableChange(para1: JBPropertyChangeEvent); overload;  // throws java.beans.PropertyVetoException
  end;

  JBBBeanContextMembershipListener = interface external 'java.beans.beancontext' name 'BeanContextMembershipListener' (JUEventListener)
    procedure childrenAdded(para1: JBBBeanContextMembershipEvent); overload;
    procedure childrenRemoved(para1: JBBBeanContextMembershipEvent); overload;
  end;

  JBBBeanContextServiceRevokedListener = interface external 'java.beans.beancontext' name 'BeanContextServiceRevokedListener' (JUEventListener)
    procedure serviceRevoked(para1: JBBBeanContextServiceRevokedEvent); overload;
  end;

  JUEventListenerProxy = class abstract external 'java.util' name 'EventListenerProxy' (JLObject, JUEventListener)
  public
    constructor create(para1: JUEventListener); overload;
    function getListener(): JUEventListener; overload; virtual;
  end;

  JUPNodeChangeListener = interface external 'java.util.prefs' name 'NodeChangeListener' (JUEventListener)
    procedure childAdded(para1: JUPNodeChangeEvent); overload;
    procedure childRemoved(para1: JUPNodeChangeEvent); overload;
  end;

  JUPPreferenceChangeListener = interface external 'java.util.prefs' name 'PreferenceChangeListener' (JUEventListener)
    procedure preferenceChange(para1: JUPPreferenceChangeEvent); overload;
  end;

  JIEIIOReadProgressListener = interface external 'javax.imageio.event' name 'IIOReadProgressListener' (JUEventListener)
    procedure sequenceStarted(para1: JIImageReader; para2: jint); overload;
    procedure sequenceComplete(para1: JIImageReader); overload;
    procedure imageStarted(para1: JIImageReader; para2: jint); overload;
    procedure imageProgress(para1: JIImageReader; para2: jfloat); overload;
    procedure imageComplete(para1: JIImageReader); overload;
    procedure thumbnailStarted(para1: JIImageReader; para2: jint; para3: jint); overload;
    procedure thumbnailProgress(para1: JIImageReader; para2: jfloat); overload;
    procedure thumbnailComplete(para1: JIImageReader); overload;
    procedure readAborted(para1: JIImageReader); overload;
  end;

  JIEIIOReadUpdateListener = interface external 'javax.imageio.event' name 'IIOReadUpdateListener' (JUEventListener)
    procedure passStarted(para1: JIImageReader; para2: JAIBufferedImage; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: jint; para10: Arr1jint); overload;
    procedure passStarted(para1: JIImageReader; para2: JAIBufferedImage; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: jint; var para10: array of jint); overload;
    procedure imageUpdate(para1: JIImageReader; para2: JAIBufferedImage; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: Arr1jint); overload;
    procedure imageUpdate(para1: JIImageReader; para2: JAIBufferedImage; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; var para9: array of jint); overload;
    procedure passComplete(para1: JIImageReader; para2: JAIBufferedImage); overload;
    procedure thumbnailPassStarted(para1: JIImageReader; para2: JAIBufferedImage; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: jint; para10: Arr1jint); overload;
    procedure thumbnailPassStarted(para1: JIImageReader; para2: JAIBufferedImage; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: jint; var para10: array of jint); overload;
    procedure thumbnailUpdate(para1: JIImageReader; para2: JAIBufferedImage; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: Arr1jint); overload;
    procedure thumbnailUpdate(para1: JIImageReader; para2: JAIBufferedImage; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; var para9: array of jint); overload;
    procedure thumbnailPassComplete(para1: JIImageReader; para2: JAIBufferedImage); overload;
  end;

  JIEIIOReadWarningListener = interface external 'javax.imageio.event' name 'IIOReadWarningListener' (JUEventListener)
    procedure warningOccurred(para1: JIImageReader; para2: JLString); overload;
  end;

  JIEIIOWriteProgressListener = interface external 'javax.imageio.event' name 'IIOWriteProgressListener' (JUEventListener)
    procedure imageStarted(para1: JIImageWriter; para2: jint); overload;
    procedure imageProgress(para1: JIImageWriter; para2: jfloat); overload;
    procedure imageComplete(para1: JIImageWriter); overload;
    procedure thumbnailStarted(para1: JIImageWriter; para2: jint; para3: jint); overload;
    procedure thumbnailProgress(para1: JIImageWriter; para2: jfloat); overload;
    procedure thumbnailComplete(para1: JIImageWriter); overload;
    procedure writeAborted(para1: JIImageWriter); overload;
  end;

  JIEIIOWriteWarningListener = interface external 'javax.imageio.event' name 'IIOWriteWarningListener' (JUEventListener)
    procedure warningOccurred(para1: JIImageWriter; para2: jint; para3: JLString); overload;
  end;

  JMNotificationListener = interface external 'javax.management' name 'NotificationListener' (JUEventListener)
    procedure handleNotification(para1: JMNotification; para2: JLObject); overload;
  end;

  JNENamingListener = interface external 'javax.naming.event' name 'NamingListener' (JUEventListener)
    procedure namingExceptionThrown(para1: JNENamingExceptionEvent); overload;
  end;

  JNSHandshakeCompletedListener = interface external 'javax.net.ssl' name 'HandshakeCompletedListener' (JUEventListener)
    procedure handshakeCompleted(para1: JNSHandshakeCompletedEvent); overload;
  end;

  JNSSSLSessionBindingListener = interface external 'javax.net.ssl' name 'SSLSessionBindingListener' (JUEventListener)
    procedure valueBound(para1: JNSSSLSessionBindingEvent); overload;
    procedure valueUnbound(para1: JNSSSLSessionBindingEvent); overload;
  end;

  JSMControllerEventListener = interface external 'javax.sound.midi' name 'ControllerEventListener' (JUEventListener)
    procedure controlChange(para1: JSMShortMessage); overload;
  end;

  JSMMetaEventListener = interface external 'javax.sound.midi' name 'MetaEventListener' (JUEventListener)
    procedure meta(para1: JSMMetaMessage); overload;
  end;

  JSSLineListener = interface external 'javax.sound.sampled' name 'LineListener' (JUEventListener)
    procedure update(para1: JSSLineEvent); overload;
  end;

  JSConnectionEventListener = interface external 'javax.sql' name 'ConnectionEventListener' (JUEventListener)
    procedure connectionClosed(para1: JSConnectionEvent); overload;
    procedure connectionErrorOccurred(para1: JSConnectionEvent); overload;
  end;

  JSRowSetListener = interface external 'javax.sql' name 'RowSetListener' (JUEventListener)
    procedure rowSetChanged(para1: JSRowSetEvent); overload;
    procedure rowChanged(para1: JSRowSetEvent); overload;
    procedure cursorMoved(para1: JSRowSetEvent); overload;
  end;

  JSStatementEventListener = interface external 'javax.sql' name 'StatementEventListener' (JUEventListener)
    procedure statementClosed(para1: JSStatementEvent); overload;
    procedure statementErrorOccurred(para1: JSStatementEvent); overload;
  end;

  JSEAncestorListener = interface external 'javax.swing.event' name 'AncestorListener' (JUEventListener)
    procedure ancestorAdded(para1: JSEAncestorEvent); overload;
    procedure ancestorRemoved(para1: JSEAncestorEvent); overload;
    procedure ancestorMoved(para1: JSEAncestorEvent); overload;
  end;

  JSECaretListener = interface external 'javax.swing.event' name 'CaretListener' (JUEventListener)
    procedure caretUpdate(para1: JSECaretEvent); overload;
  end;

  JSECellEditorListener = interface external 'javax.swing.event' name 'CellEditorListener' (JUEventListener)
    procedure editingStopped(para1: JSEChangeEvent); overload;
    procedure editingCanceled(para1: JSEChangeEvent); overload;
  end;

  JSEChangeListener = interface external 'javax.swing.event' name 'ChangeListener' (JUEventListener)
    procedure stateChanged(para1: JSEChangeEvent); overload;
  end;

  JSEDocumentListener = interface external 'javax.swing.event' name 'DocumentListener' (JUEventListener)
    procedure insertUpdate(para1: JSEDocumentEvent); overload;
    procedure removeUpdate(para1: JSEDocumentEvent); overload;
    procedure changedUpdate(para1: JSEDocumentEvent); overload;
  end;

  JSEHyperlinkListener = interface external 'javax.swing.event' name 'HyperlinkListener' (JUEventListener)
    procedure hyperlinkUpdate(para1: JSEHyperlinkEvent); overload;
  end;

  JSEInternalFrameListener = interface external 'javax.swing.event' name 'InternalFrameListener' (JUEventListener)
    procedure internalFrameOpened(para1: JSEInternalFrameEvent); overload;
    procedure internalFrameClosing(para1: JSEInternalFrameEvent); overload;
    procedure internalFrameClosed(para1: JSEInternalFrameEvent); overload;
    procedure internalFrameIconified(para1: JSEInternalFrameEvent); overload;
    procedure internalFrameDeiconified(para1: JSEInternalFrameEvent); overload;
    procedure internalFrameActivated(para1: JSEInternalFrameEvent); overload;
    procedure internalFrameDeactivated(para1: JSEInternalFrameEvent); overload;
  end;

  JSEListDataListener = interface external 'javax.swing.event' name 'ListDataListener' (JUEventListener)
    procedure intervalAdded(para1: JSEListDataEvent); overload;
    procedure intervalRemoved(para1: JSEListDataEvent); overload;
    procedure contentsChanged(para1: JSEListDataEvent); overload;
  end;

  JSEListSelectionListener = interface external 'javax.swing.event' name 'ListSelectionListener' (JUEventListener)
    procedure valueChanged(para1: JSEListSelectionEvent); overload;
  end;

  JSEMenuDragMouseListener = interface external 'javax.swing.event' name 'MenuDragMouseListener' (JUEventListener)
    procedure menuDragMouseEntered(para1: JSEMenuDragMouseEvent); overload;
    procedure menuDragMouseExited(para1: JSEMenuDragMouseEvent); overload;
    procedure menuDragMouseDragged(para1: JSEMenuDragMouseEvent); overload;
    procedure menuDragMouseReleased(para1: JSEMenuDragMouseEvent); overload;
  end;

  JSEMenuKeyListener = interface external 'javax.swing.event' name 'MenuKeyListener' (JUEventListener)
    procedure menuKeyTyped(para1: JSEMenuKeyEvent); overload;
    procedure menuKeyPressed(para1: JSEMenuKeyEvent); overload;
    procedure menuKeyReleased(para1: JSEMenuKeyEvent); overload;
  end;

  JSEMenuListener = interface external 'javax.swing.event' name 'MenuListener' (JUEventListener)
    procedure menuSelected(para1: JSEMenuEvent); overload;
    procedure menuDeselected(para1: JSEMenuEvent); overload;
    procedure menuCanceled(para1: JSEMenuEvent); overload;
  end;

  JSEPopupMenuListener = interface external 'javax.swing.event' name 'PopupMenuListener' (JUEventListener)
    procedure popupMenuWillBecomeVisible(para1: JSEPopupMenuEvent); overload;
    procedure popupMenuWillBecomeInvisible(para1: JSEPopupMenuEvent); overload;
    procedure popupMenuCanceled(para1: JSEPopupMenuEvent); overload;
  end;

  JSERowSorterListener = interface external 'javax.swing.event' name 'RowSorterListener' (JUEventListener)
    procedure sorterChanged(para1: JSERowSorterEvent); overload;
  end;

  JSETableColumnModelListener = interface external 'javax.swing.event' name 'TableColumnModelListener' (JUEventListener)
    procedure columnAdded(para1: JSETableColumnModelEvent); overload;
    procedure columnRemoved(para1: JSETableColumnModelEvent); overload;
    procedure columnMoved(para1: JSETableColumnModelEvent); overload;
    procedure columnMarginChanged(para1: JSEChangeEvent); overload;
    procedure columnSelectionChanged(para1: JSEListSelectionEvent); overload;
  end;

  JSETableModelListener = interface external 'javax.swing.event' name 'TableModelListener' (JUEventListener)
    procedure tableChanged(para1: JSETableModelEvent); overload;
  end;

  JSETreeExpansionListener = interface external 'javax.swing.event' name 'TreeExpansionListener' (JUEventListener)
    procedure treeExpanded(para1: JSETreeExpansionEvent); overload;
    procedure treeCollapsed(para1: JSETreeExpansionEvent); overload;
  end;

  JSETreeModelListener = interface external 'javax.swing.event' name 'TreeModelListener' (JUEventListener)
    procedure treeNodesChanged(para1: JSETreeModelEvent); overload;
    procedure treeNodesInserted(para1: JSETreeModelEvent); overload;
    procedure treeNodesRemoved(para1: JSETreeModelEvent); overload;
    procedure treeStructureChanged(para1: JSETreeModelEvent); overload;
  end;

  JSETreeSelectionListener = interface external 'javax.swing.event' name 'TreeSelectionListener' (JUEventListener)
    procedure valueChanged(para1: JSETreeSelectionEvent); overload;
  end;

  JSETreeWillExpandListener = interface external 'javax.swing.event' name 'TreeWillExpandListener' (JUEventListener)
    procedure treeWillExpand(para1: JSETreeExpansionEvent); overload;  // throws javax.swing.tree.ExpandVetoException
    procedure treeWillCollapse(para1: JSETreeExpansionEvent); overload;  // throws javax.swing.tree.ExpandVetoException
  end;

  JSEUndoableEditListener = interface external 'javax.swing.event' name 'UndoableEditListener' (JUEventListener)
    procedure undoableEditHappened(para1: JSEUndoableEditEvent); overload;
  end;

  JUListResourceBundle = class abstract external 'java.util' name 'ListResourceBundle' (JUResourceBundle)
  public
    constructor create(); overload;
    function handleGetObject(para1: JLString): JLObject; overload; virtual; final;
    function getKeys(): JUEnumeration; overload; virtual;
  strict protected
    function handleKeySet(): JUSet; overload; virtual;
    function getContents(): Arr2JLObject; overload; virtual; abstract;
  end;

  JUPropertyResourceBundle = class external 'java.util' name 'PropertyResourceBundle' (JUResourceBundle)
  public
    constructor create(para1: JIInputStream); overload;  // throws java.io.IOException
    constructor create(para1: JIReader); overload;  // throws java.io.IOException
    function handleGetObject(para1: JLString): JLObject; overload; virtual;
    function getKeys(): JUEnumeration; overload; virtual;
  strict protected
    function handleKeySet(): JUSet; overload; virtual;
  end;

  JUCExecutorCompletionService = class external 'java.util.concurrent' name 'ExecutorCompletionService' (JLObject, JUCCompletionService)
  public
    type
      InnerQueueingFuture = class;
      Arr1InnerQueueingFuture = array of InnerQueueingFuture;
      Arr2InnerQueueingFuture = array of Arr1InnerQueueingFuture;
      Arr3InnerQueueingFuture = array of Arr2InnerQueueingFuture;
      InnerQueueingFuture = class external 'java.util.concurrent' name 'QueueingFuture' 
      end;

  public
    constructor create(para1: JUCExecutor); overload;
    constructor create(para1: JUCExecutor; para2: JUCBlockingQueue); overload;
    function submit(para1: JUCCallable): JUCFuture; overload; virtual;
    function submit(para1: JLRunnable; para2: JLObject): JUCFuture; overload; virtual;
    function take(): JUCFuture; overload; virtual;  // throws java.lang.InterruptedException
    function poll(): JUCFuture; overload; virtual;
    function poll(para1: jlong; para2: JUCTimeUnit): JUCFuture; overload; virtual;  // throws java.lang.InterruptedException
  end;

  JUCExecutorService = interface external 'java.util.concurrent' name 'ExecutorService' (JUCExecutor)
    procedure shutdown(); overload;
    function shutdownNow(): JUList; overload;
    function isShutdown(): jboolean; overload;
    function isTerminated(): jboolean; overload;
    function awaitTermination(para1: jlong; para2: JUCTimeUnit): jboolean; overload;  // throws java.lang.InterruptedException
    function submit(para1: JUCCallable): JUCFuture; overload;
    function submit(para1: JLRunnable; para2: JLObject): JUCFuture; overload;
    function submit(para1: JLRunnable): JUCFuture; overload;
    function invokeAll(para1: JUCollection): JUList; overload;  // throws java.lang.InterruptedException
    function invokeAll(para1: JUCollection; para2: jlong; para3: JUCTimeUnit): JUList; overload;  // throws java.lang.InterruptedException
    function invokeAny(para1: JUCollection): JLObject; overload;  // throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
    function invokeAny(para1: JUCollection; para2: jlong; para3: JUCTimeUnit): JLObject; overload;  // throws java.lang.InterruptedException, java.util.concurrent.ExecutionException, java.util.concurrent.TimeoutException
  end;

  JUCRunnableFuture = interface external 'java.util.concurrent' name 'RunnableFuture' (JLRunnable, JUCFuture)
    procedure run(); overload;
  end;

  JXWResponse = interface external 'javax.xml.ws' name 'Response' (JUCFuture)
    function getContext(): JUMap; overload;
  end;

  JUCLReentrantLock = class external 'java.util.concurrent.locks' name 'ReentrantLock' (JLObject, JUCLLock, JISerializable)
  public
    type
      InnerFairSync = class;
      Arr1InnerFairSync = array of InnerFairSync;
      Arr2InnerFairSync = array of Arr1InnerFairSync;
      Arr3InnerFairSync = array of Arr2InnerFairSync;
      InnerNonfairSync = class;
      Arr1InnerNonfairSync = array of InnerNonfairSync;
      Arr2InnerNonfairSync = array of Arr1InnerNonfairSync;
      Arr3InnerNonfairSync = array of Arr2InnerNonfairSync;
      InnerSync = class;
      Arr1InnerSync = array of InnerSync;
      Arr2InnerSync = array of Arr1InnerSync;
      Arr3InnerSync = array of Arr2InnerSync;
      InnerFairSync = class sealed external 'java.util.concurrent.locks' name 'FairSync' 
      end;

      InnerNonfairSync = class sealed external 'java.util.concurrent.locks' name 'NonfairSync' 
      end;

      InnerSync = class abstract external 'java.util.concurrent.locks' name 'Sync' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: jboolean); overload;
    procedure lock(); overload; virtual;
    procedure lockInterruptibly(); overload; virtual;  // throws java.lang.InterruptedException
    function tryLock(): jboolean; overload; virtual;
    function tryLock(para1: jlong; para2: JUCTimeUnit): jboolean; overload; virtual;  // throws java.lang.InterruptedException
    procedure unlock(); overload; virtual;
    function newCondition(): JUCLCondition; overload; virtual;
    function getHoldCount(): jint; overload; virtual;
    function isHeldByCurrentThread(): jboolean; overload; virtual;
    function isLocked(): jboolean; overload; virtual;
    function isFair(): jboolean; overload; virtual; final;
  strict protected
    function getOwner(): JLThread; overload; virtual;
  public
    function hasQueuedThreads(): jboolean; overload; virtual; final;
    function hasQueuedThread(para1: JLThread): jboolean; overload; virtual; final;
    function getQueueLength(): jint; overload; virtual; final;
  strict protected
    function getQueuedThreads(): JUCollection; overload; virtual;
  public
    function hasWaiters(para1: JUCLCondition): jboolean; overload; virtual;
    function getWaitQueueLength(para1: JUCLCondition): jint; overload; virtual;
  strict protected
    function getWaitingThreads(para1: JUCLCondition): JUCollection; overload; virtual;
  public
    function toString(): JLString; overload; virtual;
  end;

  JUCLReentrantReadWriteLock = class external 'java.util.concurrent.locks' name 'ReentrantReadWriteLock' (JLObject, JUCLReadWriteLock, JISerializable)
  public
    type
      InnerFairSync = class;
      Arr1InnerFairSync = array of InnerFairSync;
      Arr2InnerFairSync = array of Arr1InnerFairSync;
      Arr3InnerFairSync = array of Arr2InnerFairSync;
      InnerNonfairSync = class;
      Arr1InnerNonfairSync = array of InnerNonfairSync;
      Arr2InnerNonfairSync = array of Arr1InnerNonfairSync;
      Arr3InnerNonfairSync = array of Arr2InnerNonfairSync;
      InnerSync = class;
      Arr1InnerSync = array of InnerSync;
      Arr2InnerSync = array of Arr1InnerSync;
      Arr3InnerSync = array of Arr2InnerSync;
      InnerFairSync = class sealed external 'java.util.concurrent.locks' name 'FairSync' 
      end;

      InnerNonfairSync = class sealed external 'java.util.concurrent.locks' name 'NonfairSync' 
      end;

      InnerSync = class abstract external 'java.util.concurrent.locks' name 'Sync' 
      public
        type
          InnerHoldCounter = class;
          Arr1InnerHoldCounter = array of InnerHoldCounter;
          Arr2InnerHoldCounter = array of Arr1InnerHoldCounter;
          Arr3InnerHoldCounter = array of Arr2InnerHoldCounter;
          InnerThreadLocalHoldCounter = class;
          Arr1InnerThreadLocalHoldCounter = array of InnerThreadLocalHoldCounter;
          Arr2InnerThreadLocalHoldCounter = array of Arr1InnerThreadLocalHoldCounter;
          Arr3InnerThreadLocalHoldCounter = array of Arr2InnerThreadLocalHoldCounter;
          InnerHoldCounter = class sealed external 'java.util.concurrent.locks' name 'HoldCounter' 
          end;

          InnerThreadLocalHoldCounter = class sealed external 'java.util.concurrent.locks' name 'ThreadLocalHoldCounter' 
          end;

      end;

  public
    type
      InnerReadLock = class;
      Arr1InnerReadLock = array of InnerReadLock;
      Arr2InnerReadLock = array of Arr1InnerReadLock;
      Arr3InnerReadLock = array of Arr2InnerReadLock;
      InnerWriteLock = class;
      Arr1InnerWriteLock = array of InnerWriteLock;
      Arr2InnerWriteLock = array of Arr1InnerWriteLock;
      Arr3InnerWriteLock = array of Arr2InnerWriteLock;
      InnerReadLock = class external 'java.util.concurrent.locks' name 'ReadLock' (JLObject, JUCLLock, JISerializable)
      strict protected
        constructor create(para1: JUCLReentrantReadWriteLock); overload;
      public
        procedure lock(); overload; virtual;
        procedure lockInterruptibly(); overload; virtual;  // throws java.lang.InterruptedException
        function tryLock(): jboolean; overload; virtual;
        function tryLock(para1: jlong; para2: JUCTimeUnit): jboolean; overload; virtual;  // throws java.lang.InterruptedException
        procedure unlock(); overload; virtual;
        function newCondition(): JUCLCondition; overload; virtual;
        function toString(): JLString; overload; virtual;
      end;

      InnerWriteLock = class external 'java.util.concurrent.locks' name 'WriteLock' (JLObject, JUCLLock, JISerializable)
      strict protected
        constructor create(para1: JUCLReentrantReadWriteLock); overload;
      public
        procedure lock(); overload; virtual;
        procedure lockInterruptibly(); overload; virtual;  // throws java.lang.InterruptedException
        function tryLock(): jboolean; overload; virtual;
        function tryLock(para1: jlong; para2: JUCTimeUnit): jboolean; overload; virtual;  // throws java.lang.InterruptedException
        procedure unlock(); overload; virtual;
        function newCondition(): JUCLCondition; overload; virtual;
        function toString(): JLString; overload; virtual;
        function isHeldByCurrentThread(): jboolean; overload; virtual;
        function getHoldCount(): jint; overload; virtual;
      end;

  public
    constructor create(); overload;
    constructor create(para1: jboolean); overload;
    function writeLock(): JUCLReentrantReadWriteLock.InnerWriteLock; overload; virtual;
    function readLock(): JUCLReentrantReadWriteLock.InnerReadLock; overload; virtual;
    function isFair(): jboolean; overload; virtual; final;
  strict protected
    function getOwner(): JLThread; overload; virtual;
  public
    function getReadLockCount(): jint; overload; virtual;
    function isWriteLocked(): jboolean; overload; virtual;
    function isWriteLockedByCurrentThread(): jboolean; overload; virtual;
    function getWriteHoldCount(): jint; overload; virtual;
    function getReadHoldCount(): jint; overload; virtual;
  strict protected
    function getQueuedWriterThreads(): JUCollection; overload; virtual;
    function getQueuedReaderThreads(): JUCollection; overload; virtual;
  public
    function hasQueuedThreads(): jboolean; overload; virtual; final;
    function hasQueuedThread(para1: JLThread): jboolean; overload; virtual; final;
    function getQueueLength(): jint; overload; virtual; final;
  strict protected
    function getQueuedThreads(): JUCollection; overload; virtual;
  public
    function hasWaiters(para1: JUCLCondition): jboolean; overload; virtual;
    function getWaitQueueLength(para1: JUCLCondition): jint; overload; virtual;
  strict protected
    function getWaitingThreads(para1: JUCLCondition): JUCollection; overload; virtual;
  public
    function toString(): JLString; overload; virtual;
    function writeLock(): JUCLLock; overload; virtual;
    function readLock(): JUCLLock; overload; virtual;
  end;

  JULSimpleFormatter = class external 'java.util.logging' name 'SimpleFormatter' (JULFormatter)
  public
    constructor create(); overload;
    function format(para1: JULLogRecord): JLString; overload; virtual;
  end;

  JULXMLFormatter = class external 'java.util.logging' name 'XMLFormatter' (JULFormatter)
  public
    constructor create(); overload;
    function format(para1: JULLogRecord): JLString; overload; virtual;
    function getHead(para1: JULHandler): JLString; overload; virtual;
    function getTail(para1: JULHandler): JLString; overload; virtual;
  end;

  JULMemoryHandler = class external 'java.util.logging' name 'MemoryHandler' (JULHandler)
  public
    constructor create(); overload;
    constructor create(para1: JULHandler; para2: jint; para3: JULLevel); overload;
    procedure publish(para1: JULLogRecord); overload; virtual;
    procedure push(); overload; virtual;
    procedure flush(); overload; virtual;
    procedure close(); overload; virtual;  // throws java.lang.SecurityException
    procedure setPushLevel(para1: JULLevel); overload; virtual;  // throws java.lang.SecurityException
    function getPushLevel(): JULLevel; overload; virtual;
    function isLoggable(para1: JULLogRecord): jboolean; overload; virtual;
  end;

  JULStreamHandler = class external 'java.util.logging' name 'StreamHandler' (JULHandler)
  public
    constructor create(); overload;
    constructor create(para1: JIOutputStream; para2: JULFormatter); overload;
  strict protected
    procedure setOutputStream(para1: JIOutputStream); overload; virtual;  // throws java.lang.SecurityException
  public
    procedure setEncoding(para1: JLString); overload; virtual;  // throws java.lang.SecurityException, java.io.UnsupportedEncodingException
    procedure publish(para1: JULLogRecord); overload; virtual;
    function isLoggable(para1: JULLogRecord): jboolean; overload; virtual;
    procedure flush(); overload; virtual;
    procedure close(); overload; virtual;  // throws java.lang.SecurityException
  end;

  JULLogging = class external 'java.util.logging' name 'Logging' (JLObject, JULLoggingMXBean)
  public
    function getLoggerNames(): JUList; overload; virtual;
    function getLoggerLevel(para1: JLString): JLString; overload; virtual;
    procedure setLoggerLevel(para1: JLString; para2: JLString); overload; virtual;
    function getParentLoggerName(para1: JLString): JLString; overload; virtual;
  end;

  JUPAbstractPreferences = class abstract external 'java.util.prefs' name 'AbstractPreferences' (JUPPreferences)
  public
    type
      InnerEventDispatchThread = class;
      Arr1InnerEventDispatchThread = array of InnerEventDispatchThread;
      Arr2InnerEventDispatchThread = array of Arr1InnerEventDispatchThread;
      Arr3InnerEventDispatchThread = array of Arr2InnerEventDispatchThread;
      InnerNodeAddedEvent = class;
      Arr1InnerNodeAddedEvent = array of InnerNodeAddedEvent;
      Arr2InnerNodeAddedEvent = array of Arr1InnerNodeAddedEvent;
      Arr3InnerNodeAddedEvent = array of Arr2InnerNodeAddedEvent;
      InnerNodeRemovedEvent = class;
      Arr1InnerNodeRemovedEvent = array of InnerNodeRemovedEvent;
      Arr2InnerNodeRemovedEvent = array of Arr1InnerNodeRemovedEvent;
      Arr3InnerNodeRemovedEvent = array of Arr2InnerNodeRemovedEvent;
      InnerEventDispatchThread = class external 'java.util.prefs' name 'EventDispatchThread' 
      end;

      InnerNodeAddedEvent = class external 'java.util.prefs' name 'NodeAddedEvent' 
      end;

      InnerNodeRemovedEvent = class external 'java.util.prefs' name 'NodeRemovedEvent' 
      end;

  strict protected
    var
      fnewNode: jboolean; external name 'newNode';
  strict protected
    final var
      flock: JLObject; external name 'lock';
  strict protected
    constructor create(para1: JUPAbstractPreferences; para2: JLString); overload;
  public
    procedure put(para1: JLString; para2: JLString); overload; virtual;
    function get(para1: JLString; para2: JLString): JLString; overload; virtual;
    procedure remove(para1: JLString); overload; virtual;
    procedure clear(); overload; virtual;  // throws java.util.prefs.BackingStoreException
    procedure putInt(para1: JLString; para2: jint); overload; virtual;
    function getInt(para1: JLString; para2: jint): jint; overload; virtual;
    procedure putLong(para1: JLString; para2: jlong); overload; virtual;
    function getLong(para1: JLString; para2: jlong): jlong; overload; virtual;
    procedure putBoolean(para1: JLString; para2: jboolean); overload; virtual;
    function getBoolean(para1: JLString; para2: jboolean): jboolean; overload; virtual;
    procedure putFloat(para1: JLString; para2: jfloat); overload; virtual;
    function getFloat(para1: JLString; para2: jfloat): jfloat; overload; virtual;
    procedure putDouble(para1: JLString; para2: jdouble); overload; virtual;
    function getDouble(para1: JLString; para2: jdouble): jdouble; overload; virtual;
    procedure putByteArray(para1: JLString; para2: Arr1jbyte); overload; virtual;
    procedure putByteArray(para1: JLString; var para2: array of jbyte); overload; virtual;
    function getByteArray(para1: JLString; para2: Arr1jbyte): Arr1jbyte; overload; virtual;
    function getByteArray(para1: JLString; var para2: array of jbyte): Arr1jbyte; overload; virtual;
    function keys(): Arr1JLString; overload; virtual;  // throws java.util.prefs.BackingStoreException
    function childrenNames(): Arr1JLString; overload; virtual;  // throws java.util.prefs.BackingStoreException
  strict protected
    function cachedChildren(): Arr1JUPAbstractPreferences; overload; virtual; final;
  public
    function parent(): JUPPreferences; overload; virtual;
    function node(para1: JLString): JUPPreferences; overload; virtual;
    function nodeExists(para1: JLString): jboolean; overload; virtual;  // throws java.util.prefs.BackingStoreException
    procedure removeNode(); overload; virtual;  // throws java.util.prefs.BackingStoreException
    function name(): JLString; overload; virtual;
    function absolutePath(): JLString; overload; virtual;
    function isUserNode(): jboolean; overload; virtual;
    procedure addPreferenceChangeListener(para1: JUPPreferenceChangeListener); overload; virtual;
    procedure removePreferenceChangeListener(para1: JUPPreferenceChangeListener); overload; virtual;
    procedure addNodeChangeListener(para1: JUPNodeChangeListener); overload; virtual;
    procedure removeNodeChangeListener(para1: JUPNodeChangeListener); overload; virtual;
  strict protected
    procedure putSpi(para1: JLString; para2: JLString); overload; virtual; abstract;
    function getSpi(para1: JLString): JLString; overload; virtual; abstract;
    procedure removeSpi(para1: JLString); overload; virtual; abstract;
    procedure removeNodeSpi(); overload; virtual; abstract;  // throws java.util.prefs.BackingStoreException
    function keysSpi(): Arr1JLString; overload; virtual; abstract;  // throws java.util.prefs.BackingStoreException
    function childrenNamesSpi(): Arr1JLString; overload; virtual; abstract;  // throws java.util.prefs.BackingStoreException
    function getChild(para1: JLString): JUPAbstractPreferences; overload; virtual;  // throws java.util.prefs.BackingStoreException
    function childSpi(para1: JLString): JUPAbstractPreferences; overload; virtual; abstract;
  public
    function toString(): JLString; overload; virtual;
    procedure sync(); overload; virtual;  // throws java.util.prefs.BackingStoreException
  strict protected
    procedure syncSpi(); overload; virtual; abstract;  // throws java.util.prefs.BackingStoreException
  public
    procedure flush(); overload; virtual;  // throws java.util.prefs.BackingStoreException
  strict protected
    procedure flushSpi(); overload; virtual; abstract;  // throws java.util.prefs.BackingStoreException
    function isRemoved(): jboolean; overload; virtual;
  public
    procedure exportNode(para1: JIOutputStream); overload; virtual;  // throws java.io.IOException, java.util.prefs.BackingStoreException
    procedure exportSubtree(para1: JIOutputStream); overload; virtual;  // throws java.io.IOException, java.util.prefs.BackingStoreException
  end;

  JUPFileSystemPreferencesFactory = class external 'java.util.prefs' name 'FileSystemPreferencesFactory' (JLObject, JUPPreferencesFactory)
  public
    function userRoot(): JUPPreferences; overload; virtual;
    function systemRoot(): JUPPreferences; overload; virtual;
  end;

  JURMatcher = class sealed external 'java.util.regex' name 'Matcher' (JLObject, JURMatchResult)
  public
    function pattern(): JURPattern; overload; virtual;
    function toMatchResult(): JURMatchResult; overload; virtual;
    function usePattern(para1: JURPattern): JURMatcher; overload; virtual;
    function reset(): JURMatcher; overload; virtual;
    function reset(para1: JLCharSequence): JURMatcher; overload; virtual;
    function start(): jint; overload; virtual;
    function start(para1: jint): jint; overload; virtual;
    function &end(): jint; overload; virtual;
    function &end(para1: jint): jint; overload; virtual;
    function group(): JLString; overload; virtual;
    function group(para1: jint): JLString; overload; virtual;
    function groupCount(): jint; overload; virtual;
    function matches(): jboolean; overload; virtual;
    function find(): jboolean; overload; virtual;
    function find(para1: jint): jboolean; overload; virtual;
    function lookingAt(): jboolean; overload; virtual;
    class function quoteReplacement(para1: JLString): JLString; static; overload;
    function appendReplacement(para1: JLStringBuffer; para2: JLString): JURMatcher; overload; virtual;
    function appendTail(para1: JLStringBuffer): JLStringBuffer; overload; virtual;
    function replaceAll(para1: JLString): JLString; overload; virtual;
    function replaceFirst(para1: JLString): JLString; overload; virtual;
    function region(para1: jint; para2: jint): JURMatcher; overload; virtual;
    function regionStart(): jint; overload; virtual;
    function regionEnd(): jint; overload; virtual;
    function hasTransparentBounds(): jboolean; overload; virtual;
    function useTransparentBounds(para1: jboolean): JURMatcher; overload; virtual;
    function hasAnchoringBounds(): jboolean; overload; virtual;
    function useAnchoringBounds(para1: jboolean): JURMatcher; overload; virtual;
    function toString(): JLString; overload; virtual;
    function hitEnd(): jboolean; overload; virtual;
    function requireEnd(): jboolean; overload; virtual;
  end;

  JTSBreakIteratorProvider = class abstract external 'java.text.spi' name 'BreakIteratorProvider' (JUSLocaleServiceProvider)
  strict protected
    constructor create(); overload;
  public
    function getWordInstance(para1: JULocale): JTBreakIterator; overload; virtual; abstract;
    function getLineInstance(para1: JULocale): JTBreakIterator; overload; virtual; abstract;
    function getCharacterInstance(para1: JULocale): JTBreakIterator; overload; virtual; abstract;
    function getSentenceInstance(para1: JULocale): JTBreakIterator; overload; virtual; abstract;
  end;

  JTSCollatorProvider = class abstract external 'java.text.spi' name 'CollatorProvider' (JUSLocaleServiceProvider)
  strict protected
    constructor create(); overload;
  public
    function getInstance(para1: JULocale): JTCollator; overload; virtual; abstract;
  end;

  JTSDateFormatProvider = class abstract external 'java.text.spi' name 'DateFormatProvider' (JUSLocaleServiceProvider)
  strict protected
    constructor create(); overload;
  public
    function getTimeInstance(para1: jint; para2: JULocale): JTDateFormat; overload; virtual; abstract;
    function getDateInstance(para1: jint; para2: JULocale): JTDateFormat; overload; virtual; abstract;
    function getDateTimeInstance(para1: jint; para2: jint; para3: JULocale): JTDateFormat; overload; virtual; abstract;
  end;

  JTSDateFormatSymbolsProvider = class abstract external 'java.text.spi' name 'DateFormatSymbolsProvider' (JUSLocaleServiceProvider)
  strict protected
    constructor create(); overload;
  public
    function getInstance(para1: JULocale): JTDateFormatSymbols; overload; virtual; abstract;
  end;

  JTSDecimalFormatSymbolsProvider = class abstract external 'java.text.spi' name 'DecimalFormatSymbolsProvider' (JUSLocaleServiceProvider)
  strict protected
    constructor create(); overload;
  public
    function getInstance(para1: JULocale): JTDecimalFormatSymbols; overload; virtual; abstract;
  end;

  JTSNumberFormatProvider = class abstract external 'java.text.spi' name 'NumberFormatProvider' (JUSLocaleServiceProvider)
  strict protected
    constructor create(); overload;
  public
    function getCurrencyInstance(para1: JULocale): JTNumberFormat; overload; virtual; abstract;
    function getIntegerInstance(para1: JULocale): JTNumberFormat; overload; virtual; abstract;
    function getNumberInstance(para1: JULocale): JTNumberFormat; overload; virtual; abstract;
    function getPercentInstance(para1: JULocale): JTNumberFormat; overload; virtual; abstract;
  end;

  JUSCurrencyNameProvider = class abstract external 'java.util.spi' name 'CurrencyNameProvider' (JUSLocaleServiceProvider)
  strict protected
    constructor create(); overload;
  public
    function getSymbol(para1: JLString; para2: JULocale): JLString; overload; virtual; abstract;
  end;

  JUSLocaleNameProvider = class abstract external 'java.util.spi' name 'LocaleNameProvider' (JUSLocaleServiceProvider)
  strict protected
    constructor create(); overload;
  public
    function getDisplayLanguage(para1: JLString; para2: JULocale): JLString; overload; virtual; abstract;
    function getDisplayCountry(para1: JLString; para2: JULocale): JLString; overload; virtual; abstract;
    function getDisplayVariant(para1: JLString; para2: JULocale): JLString; overload; virtual; abstract;
  end;

  JUSTimeZoneNameProvider = class abstract external 'java.util.spi' name 'TimeZoneNameProvider' (JUSLocaleServiceProvider)
  strict protected
    constructor create(); overload;
  public
    function getDisplayName(para1: JLString; para2: jboolean; para3: jint; para4: JULocale): JLString; overload; virtual; abstract;
  end;

  JUZAdler32 = class external 'java.util.zip' name 'Adler32' (JLObject, JUZChecksum)
  public
    constructor create(); overload;
    procedure update(para1: jint); overload; virtual;
    procedure update(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;
    procedure update(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;
    procedure update(para1: Arr1jbyte); overload; virtual;
    procedure update(var para1: array of jbyte); overload; virtual;
    procedure reset(); overload; virtual;
    function getValue(): jlong; overload; virtual;
  end;

  JUZCRC32 = class external 'java.util.zip' name 'CRC32' (JLObject, JUZChecksum)
  public
    constructor create(); overload;
    procedure update(para1: jint); overload; virtual;
    procedure update(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;
    procedure update(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;
    procedure update(para1: Arr1jbyte); overload; virtual;
    procedure update(var para1: array of jbyte); overload; virtual;
    procedure reset(); overload; virtual;
    function getValue(): jlong; overload; virtual;
  end;

  JUZZipEntry = class external 'java.util.zip' name 'ZipEntry' (JLObject, JUZZipConstants, JLCloneable)
  public
    const
      STORED = 0;
      DEFLATED = 8;
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JUZZipEntry); overload;
    function getName(): JLString; overload; virtual;
    procedure setTime(para1: jlong); overload; virtual;
    function getTime(): jlong; overload; virtual;
    procedure setSize(para1: jlong); overload; virtual;
    function getSize(): jlong; overload; virtual;
    function getCompressedSize(): jlong; overload; virtual;
    procedure setCompressedSize(para1: jlong); overload; virtual;
    procedure setCrc(para1: jlong); overload; virtual;
    function getCrc(): jlong; overload; virtual;
    procedure setMethod(para1: jint); overload; virtual;
    function getMethod(): jint; overload; virtual;
    procedure setExtra(para1: Arr1jbyte); overload; virtual;
    procedure setExtra(var para1: array of jbyte); overload; virtual;
    function getExtra(): Arr1jbyte; overload; virtual;
    procedure setComment(para1: JLString); overload; virtual;
    function getComment(): JLString; overload; virtual;
    function isDirectory(): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function clone(): JLObject; overload; virtual;
  end;

  JUZZipFile = class external 'java.util.zip' name 'ZipFile' (JLObject, JUZZipConstants)
  public
    type
      InnerZipFileInputStream = class;
      Arr1InnerZipFileInputStream = array of InnerZipFileInputStream;
      Arr2InnerZipFileInputStream = array of Arr1InnerZipFileInputStream;
      Arr3InnerZipFileInputStream = array of Arr2InnerZipFileInputStream;
      InnerZipFileInputStream = class external 'java.util.zip' name 'ZipFileInputStream' 
      end;

  public
    const
      OPEN_READ = 1;
      OPEN_DELETE = 4;
  public
    constructor create(para1: JLString); overload;  // throws java.io.IOException
    constructor create(para1: JIFile; para2: jint); overload;  // throws java.io.IOException
    constructor create(para1: JIFile); overload;  // throws java.util.zip.ZipException, java.io.IOException
    function getEntry(para1: JLString): JUZZipEntry; overload; virtual;
    function getInputStream(para1: JUZZipEntry): JIInputStream; overload; virtual;  // throws java.io.IOException
    function getName(): JLString; overload; virtual;
    function entries(): JUEnumeration; overload; virtual;
    function size(): jint; overload; virtual;
    procedure close(); overload; virtual;  // throws java.io.IOException
  strict protected
    procedure finalize(); overload; virtual;  // throws java.io.IOException
  end;

  JSProgressMonitor = class external 'javax.swing' name 'ProgressMonitor' (JLObject, JAAccessible)
  public
    type
      InnerProgressOptionPane = class;
      Arr1InnerProgressOptionPane = array of InnerProgressOptionPane;
      Arr2InnerProgressOptionPane = array of Arr1InnerProgressOptionPane;
      Arr3InnerProgressOptionPane = array of Arr2InnerProgressOptionPane;
      InnerProgressOptionPane = class external 'javax.swing' name 'ProgressOptionPane' 
      end;

  public
    type
      InnerAccessibleProgressMonitor = class;
      Arr1InnerAccessibleProgressMonitor = array of InnerAccessibleProgressMonitor;
      Arr2InnerAccessibleProgressMonitor = array of Arr1InnerAccessibleProgressMonitor;
      Arr3InnerAccessibleProgressMonitor = array of Arr2InnerAccessibleProgressMonitor;
      InnerAccessibleProgressMonitor = class external 'javax.swing' name 'AccessibleProgressMonitor' 
      end;

  strict protected
    var
      faccessibleContext: JAAccessibleContext; external name 'accessibleContext';
  public
    constructor create(para1: JAComponent; para2: JLObject; para3: JLString; para4: jint; para5: jint); overload;
    procedure setProgress(para1: jint); overload; virtual;
    procedure close(); overload; virtual;
    function getMinimum(): jint; overload; virtual;
    procedure setMinimum(para1: jint); overload; virtual;
    function getMaximum(): jint; overload; virtual;
    procedure setMaximum(para1: jint); overload; virtual;
    function isCanceled(): jboolean; overload; virtual;
    procedure setMillisToDecideToPopup(para1: jint); overload; virtual;
    function getMillisToDecideToPopup(): jint; overload; virtual;
    procedure setMillisToPopup(para1: jint); overload; virtual;
    function getMillisToPopup(): jint; overload; virtual;
    procedure setNote(para1: JLString); overload; virtual;
    function getNote(): JLString; overload; virtual;
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSTHAccessibleHTML = class external 'javax.swing.text.html' name 'AccessibleHTML' (JLObject, JAAccessible)
  public
    type
      InnerDocumentHandler = class;
      Arr1InnerDocumentHandler = array of InnerDocumentHandler;
      Arr2InnerDocumentHandler = array of Arr1InnerDocumentHandler;
      Arr3InnerDocumentHandler = array of Arr2InnerDocumentHandler;
      InnerElementInfo = class;
      Arr1InnerElementInfo = array of InnerElementInfo;
      Arr2InnerElementInfo = array of Arr1InnerElementInfo;
      Arr3InnerElementInfo = array of Arr2InnerElementInfo;
      InnerRootHTMLAccessibleContext = class;
      Arr1InnerRootHTMLAccessibleContext = array of InnerRootHTMLAccessibleContext;
      Arr2InnerRootHTMLAccessibleContext = array of Arr1InnerRootHTMLAccessibleContext;
      Arr3InnerRootHTMLAccessibleContext = array of Arr2InnerRootHTMLAccessibleContext;
      InnerIconElementInfo = class;
      Arr1InnerIconElementInfo = array of InnerIconElementInfo;
      Arr2InnerIconElementInfo = array of Arr1InnerIconElementInfo;
      Arr3InnerIconElementInfo = array of Arr2InnerIconElementInfo;
      InnerTableElementInfo = class;
      Arr1InnerTableElementInfo = array of InnerTableElementInfo;
      Arr2InnerTableElementInfo = array of Arr1InnerTableElementInfo;
      Arr3InnerTableElementInfo = array of Arr2InnerTableElementInfo;
      InnerTextElementInfo = class;
      Arr1InnerTextElementInfo = array of InnerTextElementInfo;
      Arr2InnerTextElementInfo = array of Arr1InnerTextElementInfo;
      Arr3InnerTextElementInfo = array of Arr2InnerTextElementInfo;
      InnerPropertyChangeHandler = class;
      Arr1InnerPropertyChangeHandler = array of InnerPropertyChangeHandler;
      Arr2InnerPropertyChangeHandler = array of Arr1InnerPropertyChangeHandler;
      Arr3InnerPropertyChangeHandler = array of Arr2InnerPropertyChangeHandler;
      InnerDocumentHandler = class external 'javax.swing.text.html' name 'DocumentHandler' 
      end;

      InnerElementInfo = class external 'javax.swing.text.html' name 'ElementInfo' 
      end;

      InnerRootHTMLAccessibleContext = class external 'javax.swing.text.html' name 'RootHTMLAccessibleContext' 
      end;

      InnerIconElementInfo = class external 'javax.swing.text.html' name 'IconElementInfo' 
      public
        type
          InnerIconAccessibleContext = class;
          Arr1InnerIconAccessibleContext = array of InnerIconAccessibleContext;
          Arr2InnerIconAccessibleContext = array of Arr1InnerIconAccessibleContext;
          Arr3InnerIconAccessibleContext = array of Arr2InnerIconAccessibleContext;
          InnerIconAccessibleContext = class external 'javax.swing.text.html' name 'IconAccessibleContext' 
          end;

      end;

      InnerTableElementInfo = class external 'javax.swing.text.html' name 'TableElementInfo' 
      public
        type
          InnerTableCellElementInfo = class;
          Arr1InnerTableCellElementInfo = array of InnerTableCellElementInfo;
          Arr2InnerTableCellElementInfo = array of Arr1InnerTableCellElementInfo;
          Arr3InnerTableCellElementInfo = array of Arr2InnerTableCellElementInfo;
          InnerTableRowElementInfo = class;
          Arr1InnerTableRowElementInfo = array of InnerTableRowElementInfo;
          Arr2InnerTableRowElementInfo = array of Arr1InnerTableRowElementInfo;
          Arr3InnerTableRowElementInfo = array of Arr2InnerTableRowElementInfo;
          InnerTableCellElementInfo = class external 'javax.swing.text.html' name 'TableCellElementInfo' 
          end;

          InnerTableRowElementInfo = class external 'javax.swing.text.html' name 'TableRowElementInfo' 
          end;

      public
        type
          InnerTableAccessibleContext = class;
          Arr1InnerTableAccessibleContext = array of InnerTableAccessibleContext;
          Arr2InnerTableAccessibleContext = array of Arr1InnerTableAccessibleContext;
          Arr3InnerTableAccessibleContext = array of Arr2InnerTableAccessibleContext;
          InnerTableAccessibleContext = class external 'javax.swing.text.html' name 'TableAccessibleContext' 
          public
            type
              InnerAccessibleHeadersTable = class;
              Arr1InnerAccessibleHeadersTable = array of InnerAccessibleHeadersTable;
              Arr2InnerAccessibleHeadersTable = array of Arr1InnerAccessibleHeadersTable;
              Arr3InnerAccessibleHeadersTable = array of Arr2InnerAccessibleHeadersTable;
              InnerAccessibleHeadersTable = class external 'javax.swing.text.html' name 'AccessibleHeadersTable' 
              end;

          end;

      end;

      InnerTextElementInfo = class external 'javax.swing.text.html' name 'TextElementInfo' 
      public
        type
          InnerTextAccessibleContext = class;
          Arr1InnerTextAccessibleContext = array of InnerTextAccessibleContext;
          Arr2InnerTextAccessibleContext = array of Arr1InnerTextAccessibleContext;
          Arr3InnerTextAccessibleContext = array of Arr2InnerTextAccessibleContext;
          InnerTextAccessibleContext = class external 'javax.swing.text.html' name 'TextAccessibleContext' 
          public
            type
              InnerIndexedSegment = class;
              Arr1InnerIndexedSegment = array of InnerIndexedSegment;
              Arr2InnerIndexedSegment = array of Arr1InnerIndexedSegment;
              Arr3InnerIndexedSegment = array of Arr2InnerIndexedSegment;
              InnerIndexedSegment = class external 'javax.swing.text.html' name 'IndexedSegment' 
              end;

          end;

      end;

      InnerPropertyChangeHandler = class external 'javax.swing.text.html' name 'PropertyChangeHandler' 
      end;

  public
    type
      InnerHTMLAccessibleContext = class;
      Arr1InnerHTMLAccessibleContext = array of InnerHTMLAccessibleContext;
      Arr2InnerHTMLAccessibleContext = array of Arr1InnerHTMLAccessibleContext;
      Arr3InnerHTMLAccessibleContext = array of Arr2InnerHTMLAccessibleContext;
      InnerHTMLAccessibleContext = class abstract external 'javax.swing.text.html' name 'HTMLAccessibleContext' 
      end;

  public
    constructor create(para1: JSJEditorPane); overload;
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JAAccessibleHyperlink = class abstract external 'javax.accessibility' name 'AccessibleHyperlink' (JLObject, JAAccessibleAction)
  public
    constructor create(); overload;
    function isValid(): jboolean; overload; virtual; abstract;
    function getAccessibleActionCount(): jint; overload; virtual; abstract;
    function doAccessibleAction(para1: jint): jboolean; overload; virtual; abstract;
    function getAccessibleActionDescription(para1: jint): JLString; overload; virtual; abstract;
    function getAccessibleActionObject(para1: jint): JLObject; overload; virtual; abstract;
    function getAccessibleActionAnchor(para1: jint): JLObject; overload; virtual; abstract;
    function getStartIndex(): jint; overload; virtual; abstract;
    function getEndIndex(): jint; overload; virtual; abstract;
  end;

  JAAccessibleRelation = class external 'javax.accessibility' name 'AccessibleRelation' (JAAccessibleBundle)
  public
    final class var
      fLABEL_FOR: JLString; external name 'LABEL_FOR';
      fLABELED_BY: JLString; external name 'LABELED_BY';
      fMEMBER_OF: JLString; external name 'MEMBER_OF';
      fCONTROLLER_FOR: JLString; external name 'CONTROLLER_FOR';
      fCONTROLLED_BY: JLString; external name 'CONTROLLED_BY';
  public
    const
      FLOWS_TO = 'flowsTo';
      FLOWS_FROM = 'flowsFrom';
      SUBWINDOW_OF = 'subwindowOf';
      PARENT_WINDOW_OF = 'parentWindowOf';
      EMBEDS = 'embeds';
      EMBEDDED_BY = 'embeddedBy';
      CHILD_NODE_OF = 'childNodeOf';
      LABEL_FOR_PROPERTY = 'labelForProperty';
      LABELED_BY_PROPERTY = 'labeledByProperty';
      MEMBER_OF_PROPERTY = 'memberOfProperty';
      CONTROLLER_FOR_PROPERTY = 'controllerForProperty';
      CONTROLLED_BY_PROPERTY = 'controlledByProperty';
      FLOWS_TO_PROPERTY = 'flowsToProperty';
      FLOWS_FROM_PROPERTY = 'flowsFromProperty';
      SUBWINDOW_OF_PROPERTY = 'subwindowOfProperty';
      PARENT_WINDOW_OF_PROPERTY = 'parentWindowOfProperty';
      EMBEDS_PROPERTY = 'embedsProperty';
      EMBEDDED_BY_PROPERTY = 'embeddedByProperty';
      CHILD_NODE_OF_PROPERTY = 'childNodeOfProperty';
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLObject); overload;
    constructor create(para1: JLString; para2: Arr1JLObject); overload;
    constructor create(para1: JLString; const para2: array of JLObject); overload;
    function getKey(): JLString; overload; virtual;
    function getTarget(): Arr1JLObject; overload; virtual;
    procedure setTarget(para1: JLObject); overload; virtual;
    procedure setTarget(para1: Arr1JLObject); overload; virtual;
    procedure setTarget(var para1: array of JLObject); overload; virtual;
  end;

  JAAccessibleRole = class external 'javax.accessibility' name 'AccessibleRole' (JAAccessibleBundle)
  public
    final class var
      fALERT: JAAccessibleRole; external name 'ALERT';
      fCOLUMN_HEADER: JAAccessibleRole; external name 'COLUMN_HEADER';
      fCANVAS: JAAccessibleRole; external name 'CANVAS';
      fCOMBO_BOX: JAAccessibleRole; external name 'COMBO_BOX';
      fDESKTOP_ICON: JAAccessibleRole; external name 'DESKTOP_ICON';
      fHTML_CONTAINER: JAAccessibleRole; external name 'HTML_CONTAINER';
      fINTERNAL_FRAME: JAAccessibleRole; external name 'INTERNAL_FRAME';
      fDESKTOP_PANE: JAAccessibleRole; external name 'DESKTOP_PANE';
      fOPTION_PANE: JAAccessibleRole; external name 'OPTION_PANE';
      fWINDOW: JAAccessibleRole; external name 'WINDOW';
      fFRAME: JAAccessibleRole; external name 'FRAME';
      fDIALOG: JAAccessibleRole; external name 'DIALOG';
      fCOLOR_CHOOSER: JAAccessibleRole; external name 'COLOR_CHOOSER';
      fDIRECTORY_PANE: JAAccessibleRole; external name 'DIRECTORY_PANE';
      fFILE_CHOOSER: JAAccessibleRole; external name 'FILE_CHOOSER';
      fFILLER: JAAccessibleRole; external name 'FILLER';
      fHYPERLINK: JAAccessibleRole; external name 'HYPERLINK';
      fICON: JAAccessibleRole; external name 'ICON';
      fLABEL: JAAccessibleRole; external name 'LABEL';
      fROOT_PANE: JAAccessibleRole; external name 'ROOT_PANE';
      fGLASS_PANE: JAAccessibleRole; external name 'GLASS_PANE';
      fLAYERED_PANE: JAAccessibleRole; external name 'LAYERED_PANE';
      fLIST: JAAccessibleRole; external name 'LIST';
      fLIST_ITEM: JAAccessibleRole; external name 'LIST_ITEM';
      fMENU_BAR: JAAccessibleRole; external name 'MENU_BAR';
      fPOPUP_MENU: JAAccessibleRole; external name 'POPUP_MENU';
      fMENU: JAAccessibleRole; external name 'MENU';
      fMENU_ITEM: JAAccessibleRole; external name 'MENU_ITEM';
      fSEPARATOR: JAAccessibleRole; external name 'SEPARATOR';
      fPAGE_TAB_LIST: JAAccessibleRole; external name 'PAGE_TAB_LIST';
      fPAGE_TAB: JAAccessibleRole; external name 'PAGE_TAB';
      fPANEL: JAAccessibleRole; external name 'PANEL';
      fPROGRESS_BAR: JAAccessibleRole; external name 'PROGRESS_BAR';
      fPASSWORD_TEXT: JAAccessibleRole; external name 'PASSWORD_TEXT';
      fPUSH_BUTTON: JAAccessibleRole; external name 'PUSH_BUTTON';
      fTOGGLE_BUTTON: JAAccessibleRole; external name 'TOGGLE_BUTTON';
      fCHECK_BOX: JAAccessibleRole; external name 'CHECK_BOX';
      fRADIO_BUTTON: JAAccessibleRole; external name 'RADIO_BUTTON';
      fROW_HEADER: JAAccessibleRole; external name 'ROW_HEADER';
      fSCROLL_PANE: JAAccessibleRole; external name 'SCROLL_PANE';
      fSCROLL_BAR: JAAccessibleRole; external name 'SCROLL_BAR';
      fVIEWPORT: JAAccessibleRole; external name 'VIEWPORT';
      fSLIDER: JAAccessibleRole; external name 'SLIDER';
      fSPLIT_PANE: JAAccessibleRole; external name 'SPLIT_PANE';
      fTABLE: JAAccessibleRole; external name 'TABLE';
      fTEXT: JAAccessibleRole; external name 'TEXT';
      fTREE: JAAccessibleRole; external name 'TREE';
      fTOOL_BAR: JAAccessibleRole; external name 'TOOL_BAR';
      fTOOL_TIP: JAAccessibleRole; external name 'TOOL_TIP';
      fAWT_COMPONENT: JAAccessibleRole; external name 'AWT_COMPONENT';
      fSWING_COMPONENT: JAAccessibleRole; external name 'SWING_COMPONENT';
      fUNKNOWN: JAAccessibleRole; external name 'UNKNOWN';
      fSTATUS_BAR: JAAccessibleRole; external name 'STATUS_BAR';
      fDATE_EDITOR: JAAccessibleRole; external name 'DATE_EDITOR';
      fSPIN_BOX: JAAccessibleRole; external name 'SPIN_BOX';
      fFONT_CHOOSER: JAAccessibleRole; external name 'FONT_CHOOSER';
      fGROUP_BOX: JAAccessibleRole; external name 'GROUP_BOX';
      fHEADER: JAAccessibleRole; external name 'HEADER';
      fFOOTER: JAAccessibleRole; external name 'FOOTER';
      fPARAGRAPH: JAAccessibleRole; external name 'PARAGRAPH';
      fRULER: JAAccessibleRole; external name 'RULER';
      fEDITBAR: JAAccessibleRole; external name 'EDITBAR';
      fPROGRESS_MONITOR: JAAccessibleRole; external name 'PROGRESS_MONITOR';
  strict protected
    constructor create(para1: JLString); overload;
  end;

  JAAccessibleState = class external 'javax.accessibility' name 'AccessibleState' (JAAccessibleBundle)
  public
    final class var
      fACTIVE: JAAccessibleState; external name 'ACTIVE';
      fPRESSED: JAAccessibleState; external name 'PRESSED';
      fARMED: JAAccessibleState; external name 'ARMED';
      fBUSY: JAAccessibleState; external name 'BUSY';
      fCHECKED: JAAccessibleState; external name 'CHECKED';
      fEDITABLE: JAAccessibleState; external name 'EDITABLE';
      fEXPANDABLE: JAAccessibleState; external name 'EXPANDABLE';
      fCOLLAPSED: JAAccessibleState; external name 'COLLAPSED';
      fEXPANDED: JAAccessibleState; external name 'EXPANDED';
      fENABLED: JAAccessibleState; external name 'ENABLED';
      fFOCUSABLE: JAAccessibleState; external name 'FOCUSABLE';
      fFOCUSED: JAAccessibleState; external name 'FOCUSED';
      fICONIFIED: JAAccessibleState; external name 'ICONIFIED';
      fMODAL: JAAccessibleState; external name 'MODAL';
      fOPAQUE: JAAccessibleState; external name 'OPAQUE';
      fRESIZABLE: JAAccessibleState; external name 'RESIZABLE';
      fMULTISELECTABLE: JAAccessibleState; external name 'MULTISELECTABLE';
      fSELECTABLE: JAAccessibleState; external name 'SELECTABLE';
      fSELECTED: JAAccessibleState; external name 'SELECTED';
      fSHOWING: JAAccessibleState; external name 'SHOWING';
      fVISIBLE: JAAccessibleState; external name 'VISIBLE';
      fVERTICAL: JAAccessibleState; external name 'VERTICAL';
      fHORIZONTAL: JAAccessibleState; external name 'HORIZONTAL';
      fSINGLE_LINE: JAAccessibleState; external name 'SINGLE_LINE';
      fMULTI_LINE: JAAccessibleState; external name 'MULTI_LINE';
      fTRANSIENT: JAAccessibleState; external name 'TRANSIENT';
      fMANAGES_DESCENDANTS: JAAccessibleState; external name 'MANAGES_DESCENDANTS';
      fINDETERMINATE: JAAccessibleState; external name 'INDETERMINATE';
      fTRUNCATED: JAAccessibleState; external name 'TRUNCATED';
  strict protected
    constructor create(para1: JLString); overload;
  end;

  JAAccessibleExtendedComponent = interface external 'javax.accessibility' name 'AccessibleExtendedComponent' (JAAccessibleComponent)
    function getToolTipText(): JLString; overload;
    function getTitledBorderText(): JLString; overload;
    function getAccessibleKeyBinding(): JAAccessibleKeyBinding; overload;
  end;

  JAAccessibleExtendedTable = interface external 'javax.accessibility' name 'AccessibleExtendedTable' (JAAccessibleTable)
    function getAccessibleRow(para1: jint): jint; overload;
    function getAccessibleColumn(para1: jint): jint; overload;
    function getAccessibleIndex(para1: jint; para2: jint): jint; overload;
  end;

  JAAccessibleEditableText = interface external 'javax.accessibility' name 'AccessibleEditableText' (JAAccessibleText)
    procedure setTextContents(para1: JLString); overload;
    procedure insertTextAtIndex(para1: jint; para2: JLString); overload;
    function getTextRange(para1: jint; para2: jint): JLString; overload;
    procedure delete(para1: jint; para2: jint); overload;
    procedure cut(para1: jint; para2: jint); overload;
    procedure paste(para1: jint); overload;
    procedure replaceText(para1: jint; para2: jint; para3: JLString); overload;
    procedure selectText(para1: jint; para2: jint); overload;
    procedure setAttributes(para1: jint; para2: jint; para3: JSTAttributeSet); overload;
  end;

  JAAccessibleHypertext = interface external 'javax.accessibility' name 'AccessibleHypertext' (JAAccessibleText)
    function getLinkCount(): jint; overload;
    function getLink(para1: jint): JAAccessibleHyperlink; overload;
    function getLinkIndex(para1: jint): jint; overload;
  end;

  JAMailcapCommandMap = class external 'javax.activation' name 'MailcapCommandMap' (JACommandMap)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;  // throws java.io.IOException
    constructor create(para1: JIInputStream); overload;
    function getPreferredCommands(para1: JLString): Arr1JACommandInfo; overload; virtual;
    function getAllCommands(para1: JLString): Arr1JACommandInfo; overload; virtual;
    function getCommand(para1: JLString; para2: JLString): JACommandInfo; overload; virtual;
    procedure addMailcap(para1: JLString); overload; virtual;
    function createDataContentHandler(para1: JLString): JADataContentHandler; overload; virtual;
    function getMimeTypes(): Arr1JLString; overload; virtual;
    function getNativeCommands(para1: JLString): Arr1JLString; overload; virtual;
  end;

  JADataSourceDataContentHandler = class external 'javax.activation' name 'DataSourceDataContentHandler' (JLObject, JADataContentHandler)
  public
    constructor create(para1: JADataContentHandler; para2: JADataSource); overload;
    function getTransferDataFlavors(): Arr1JADDataFlavor; overload; virtual;
    function getTransferData(para1: JADDataFlavor; para2: JADataSource): JLObject; overload; virtual;  // throws java.awt.datatransfer.UnsupportedFlavorException, java.io.IOException
    function getContent(para1: JADataSource): JLObject; overload; virtual;  // throws java.io.IOException
    procedure writeTo(para1: JLObject; para2: JLString; para3: JIOutputStream); overload; virtual;  // throws java.io.IOException
  end;

  JAObjectDataContentHandler = class external 'javax.activation' name 'ObjectDataContentHandler' (JLObject, JADataContentHandler)
  public
    constructor create(para1: JADataContentHandler; para2: JLObject; para3: JLString); overload;
    function getDCH(): JADataContentHandler; overload; virtual;
    function getTransferDataFlavors(): Arr1JADDataFlavor; overload; virtual;
    function getTransferData(para1: JADDataFlavor; para2: JADataSource): JLObject; overload; virtual;  // throws java.awt.datatransfer.UnsupportedFlavorException, java.io.IOException
    function getContent(para1: JADataSource): JLObject; overload; virtual;
    procedure writeTo(para1: JLObject; para2: JLString; para3: JIOutputStream); overload; virtual;  // throws java.io.IOException
  end;

  JADataHandlerDataSource = class external 'javax.activation' name 'DataHandlerDataSource' (JLObject, JADataSource)
  public
    constructor create(para1: JADataHandler); overload;
    function getInputStream(): JIInputStream; overload; virtual;  // throws java.io.IOException
    function getOutputStream(): JIOutputStream; overload; virtual;  // throws java.io.IOException
    function getContentType(): JLString; overload; virtual;
    function getName(): JLString; overload; virtual;
  end;

  JAFileDataSource = class external 'javax.activation' name 'FileDataSource' (JLObject, JADataSource)
  public
    constructor create(para1: JIFile); overload;
    constructor create(para1: JLString); overload;
    function getInputStream(): JIInputStream; overload; virtual;  // throws java.io.IOException
    function getOutputStream(): JIOutputStream; overload; virtual;  // throws java.io.IOException
    function getContentType(): JLString; overload; virtual;
    function getName(): JLString; overload; virtual;
    function getFile(): JIFile; overload; virtual;
    procedure setFileTypeMap(para1: JAFileTypeMap); overload; virtual;
  end;

  JAURLDataSource = class external 'javax.activation' name 'URLDataSource' (JLObject, JADataSource)
  public
    constructor create(para1: JNURL); overload;
    function getContentType(): JLString; overload; virtual;
    function getName(): JLString; overload; virtual;
    function getInputStream(): JIInputStream; overload; virtual;  // throws java.io.IOException
    function getOutputStream(): JIOutputStream; overload; virtual;  // throws java.io.IOException
    function getURL(): JNURL; overload; virtual;
  end;

  JAMimetypesFileTypeMap = class external 'javax.activation' name 'MimetypesFileTypeMap' (JAFileTypeMap)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;  // throws java.io.IOException
    constructor create(para1: JIInputStream); overload;
    procedure addMimeTypes(para1: JLString); overload; virtual;
    function getContentType(para1: JIFile): JLString; overload; virtual;
    function getContentType(para1: JLString): JLString; overload; virtual;
  end;

  JAPAbstractProcessor = class abstract external 'javax.annotation.processing' name 'AbstractProcessor' (JLObject, JAPProcessor)
  strict protected
    var
      fprocessingEnv: JAPProcessingEnvironment; external name 'processingEnv';
  strict protected
    constructor create(); overload;
  public
    function getSupportedOptions(): JUSet; overload; virtual;
    function getSupportedAnnotationTypes(): JUSet; overload; virtual;
    function getSupportedSourceVersion(): JLMSourceVersion; overload; virtual;
    procedure init(para1: JAPProcessingEnvironment); overload; virtual;
    function process(para1: JUSet; para2: JAPRoundEnvironment): jboolean; overload; virtual; abstract;
    function getCompletions(para1: JLMEElement; para2: JLMEAnnotationMirror; para3: JLMEExecutableElement; para4: JLString): JLIterable; overload; virtual;
  strict protected
    function isInitialized(): jboolean; overload; virtual;
  end;

  JCNullCipher = class external 'javax.crypto' name 'NullCipher' (JCCipher)
  public
    constructor create(); overload;
  end;

  JCNullCipherSpi = class sealed external 'javax.crypto' name 'NullCipherSpi' (JCCipherSpi)
  strict protected
    constructor create(); overload;
  public
    procedure engineSetMode(para1: JLString); overload; virtual;
    procedure engineSetPadding(para1: JLString); overload; virtual;
  strict protected
    function engineGetBlockSize(): jint; overload; virtual;
    function engineGetOutputSize(para1: jint): jint; overload; virtual;
    function engineGetIV(): Arr1jbyte; overload; virtual;
    function engineGetParameters(): JSAlgorithmParameters; overload; virtual;
    procedure engineInit(para1: jint; para2: JSKey; para3: JSSecureRandom); overload; virtual;
    procedure engineInit(para1: jint; para2: JSKey; para3: JSSAlgorithmParameterSpec; para4: JSSecureRandom); overload; virtual;
    procedure engineInit(para1: jint; para2: JSKey; para3: JSAlgorithmParameters; para4: JSSecureRandom); overload; virtual;
    function engineUpdate(para1: Arr1jbyte; para2: jint; para3: jint): Arr1jbyte; overload; virtual;
    function engineUpdate(var para1: array of jbyte; para2: jint; para3: jint): Arr1jbyte; overload; virtual;
    function engineUpdate(para1: Arr1jbyte; para2: jint; para3: jint; para4: Arr1jbyte; para5: jint): jint; overload; virtual;
    function engineUpdate(var para1: array of jbyte; para2: jint; para3: jint; var para4: array of jbyte; para5: jint): jint; overload; virtual;
    function engineDoFinal(para1: Arr1jbyte; para2: jint; para3: jint): Arr1jbyte; overload; virtual;
    function engineDoFinal(var para1: array of jbyte; para2: jint; para3: jint): Arr1jbyte; overload; virtual;
    function engineDoFinal(para1: Arr1jbyte; para2: jint; para3: jint; para4: Arr1jbyte; para5: jint): jint; overload; virtual;
    function engineDoFinal(var para1: array of jbyte; para2: jint; para3: jint; var para4: array of jbyte; para5: jint): jint; overload; virtual;
    function engineGetKeySize(para1: JSKey): jint; overload; virtual;
  end;

  JIImageReadParam = class external 'javax.imageio' name 'ImageReadParam' (JIIIOParam)
  strict protected
    var
      fcanSetSourceRenderSize: jboolean; external name 'canSetSourceRenderSize';
      fsourceRenderSize: JADimension; external name 'sourceRenderSize';
      fdestination: JAIBufferedImage; external name 'destination';
      fdestinationBands: Arr1jint; external name 'destinationBands';
      fminProgressivePass: jint; external name 'minProgressivePass';
      fnumProgressivePasses: jint; external name 'numProgressivePasses';
  public
    constructor create(); overload;
    procedure setDestinationType(para1: JIImageTypeSpecifier); overload; virtual;
    procedure setDestination(para1: JAIBufferedImage); overload; virtual;
    function getDestination(): JAIBufferedImage; overload; virtual;
    procedure setDestinationBands(para1: Arr1jint); overload; virtual;
    procedure setDestinationBands(var para1: array of jint); overload; virtual;
    function getDestinationBands(): Arr1jint; overload; virtual;
    function canSetSourceRenderSize(): jboolean; overload; virtual;
    procedure setSourceRenderSize(para1: JADimension); overload; virtual;  // throws java.lang.UnsupportedOperationException
    function getSourceRenderSize(): JADimension; overload; virtual;
    procedure setSourceProgressivePasses(para1: jint; para2: jint); overload; virtual;
    function getSourceMinProgressivePass(): jint; overload; virtual;
    function getSourceMaxProgressivePass(): jint; overload; virtual;
    function getSourceNumProgressivePasses(): jint; overload; virtual;
  end;

  JIImageWriteParam = class external 'javax.imageio' name 'ImageWriteParam' (JIIIOParam)
  public
    const
      MODE_DISABLED = 0;
      MODE_DEFAULT = 1;
      MODE_EXPLICIT = 2;
      MODE_COPY_FROM_METADATA = 3;
  strict protected
    var
      fcanWriteTiles: jboolean; external name 'canWriteTiles';
      ftilingMode: jint; external name 'tilingMode';
      fpreferredTileSizes: Arr1JADimension; external name 'preferredTileSizes';
      ftilingSet: jboolean; external name 'tilingSet';
      ftileWidth: jint; external name 'tileWidth';
      ftileHeight: jint; external name 'tileHeight';
      fcanOffsetTiles: jboolean; external name 'canOffsetTiles';
      ftileGridXOffset: jint; external name 'tileGridXOffset';
      ftileGridYOffset: jint; external name 'tileGridYOffset';
      fcanWriteProgressive: jboolean; external name 'canWriteProgressive';
      fprogressiveMode: jint; external name 'progressiveMode';
      fcanWriteCompressed: jboolean; external name 'canWriteCompressed';
      fcompressionMode: jint; external name 'compressionMode';
      fcompressionTypes: Arr1JLString; external name 'compressionTypes';
      fcompressionType: JLString; external name 'compressionType';
      fcompressionQuality: jfloat; external name 'compressionQuality';
      flocale: JULocale; external name 'locale';
  strict protected
    constructor create(); overload;
  public
    constructor create(para1: JULocale); overload;
    function getLocale(): JULocale; overload; virtual;
    function canWriteTiles(): jboolean; overload; virtual;
    function canOffsetTiles(): jboolean; overload; virtual;
    procedure setTilingMode(para1: jint); overload; virtual;
    function getTilingMode(): jint; overload; virtual;
    function getPreferredTileSizes(): Arr1JADimension; overload; virtual;
    procedure setTiling(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure unsetTiling(); overload; virtual;
    function getTileWidth(): jint; overload; virtual;
    function getTileHeight(): jint; overload; virtual;
    function getTileGridXOffset(): jint; overload; virtual;
    function getTileGridYOffset(): jint; overload; virtual;
    function canWriteProgressive(): jboolean; overload; virtual;
    procedure setProgressiveMode(para1: jint); overload; virtual;
    function getProgressiveMode(): jint; overload; virtual;
    function canWriteCompressed(): jboolean; overload; virtual;
    procedure setCompressionMode(para1: jint); overload; virtual;
    function getCompressionMode(): jint; overload; virtual;
    function getCompressionTypes(): Arr1JLString; overload; virtual;
    procedure setCompressionType(para1: JLString); overload; virtual;
    function getCompressionType(): JLString; overload; virtual;
    procedure unsetCompression(); overload; virtual;
    function getLocalizedCompressionTypeName(): JLString; overload; virtual;
    function isCompressionLossless(): jboolean; overload; virtual;
    procedure setCompressionQuality(para1: jfloat); overload; virtual;
    function getCompressionQuality(): jfloat; overload; virtual;
    function getBitRate(para1: jfloat): jfloat; overload; virtual;
    function getCompressionQualityDescriptions(): Arr1JLString; overload; virtual;
    function getCompressionQualityValues(): Arr1jfloat; overload; virtual;
  end;

  JIImageWriter = class abstract external 'javax.imageio' name 'ImageWriter' (JLObject, JIImageTranscoder)
  strict protected
    var
      foriginatingProvider: JISImageWriterSpi; external name 'originatingProvider';
      foutput: JLObject; external name 'output';
      favailableLocales: Arr1JULocale; external name 'availableLocales';
      flocale: JULocale; external name 'locale';
      fwarningListeners: JUList; external name 'warningListeners';
      fwarningLocales: JUList; external name 'warningLocales';
      fprogressListeners: JUList; external name 'progressListeners';
  strict protected
    constructor create(para1: JISImageWriterSpi); overload;
  public
    function getOriginatingProvider(): JISImageWriterSpi; overload; virtual;
    procedure setOutput(para1: JLObject); overload; virtual;
    function getOutput(): JLObject; overload; virtual;
    function getAvailableLocales(): Arr1JULocale; overload; virtual;
    procedure setLocale(para1: JULocale); overload; virtual;
    function getLocale(): JULocale; overload; virtual;
    function getDefaultWriteParam(): JIImageWriteParam; overload; virtual;
    function getDefaultStreamMetadata(para1: JIImageWriteParam): JIMIIOMetadata; overload; virtual; abstract;
    function getDefaultImageMetadata(para1: JIImageTypeSpecifier; para2: JIImageWriteParam): JIMIIOMetadata; overload; virtual; abstract;
    function convertStreamMetadata(para1: JIMIIOMetadata; para2: JIImageWriteParam): JIMIIOMetadata; overload; virtual; abstract;
    function convertImageMetadata(para1: JIMIIOMetadata; para2: JIImageTypeSpecifier; para3: JIImageWriteParam): JIMIIOMetadata; overload; virtual; abstract;
    function getNumThumbnailsSupported(para1: JIImageTypeSpecifier; para2: JIImageWriteParam; para3: JIMIIOMetadata; para4: JIMIIOMetadata): jint; overload; virtual;
    function getPreferredThumbnailSizes(para1: JIImageTypeSpecifier; para2: JIImageWriteParam; para3: JIMIIOMetadata; para4: JIMIIOMetadata): Arr1JADimension; overload; virtual;
    function canWriteRasters(): jboolean; overload; virtual;
    procedure write(para1: JIMIIOMetadata; para2: JIIIOImage; para3: JIImageWriteParam); overload; virtual; abstract;  // throws java.io.IOException
    procedure write(para1: JIIIOImage); overload; virtual;  // throws java.io.IOException
    procedure write(para1: JAIRenderedImage); overload; virtual;  // throws java.io.IOException
    function canWriteSequence(): jboolean; overload; virtual;
    procedure prepareWriteSequence(para1: JIMIIOMetadata); overload; virtual;  // throws java.io.IOException
    procedure writeToSequence(para1: JIIIOImage; para2: JIImageWriteParam); overload; virtual;  // throws java.io.IOException
    procedure endWriteSequence(); overload; virtual;  // throws java.io.IOException
    function canReplaceStreamMetadata(): jboolean; overload; virtual;  // throws java.io.IOException
    procedure replaceStreamMetadata(para1: JIMIIOMetadata); overload; virtual;  // throws java.io.IOException
    function canReplaceImageMetadata(para1: jint): jboolean; overload; virtual;  // throws java.io.IOException
    procedure replaceImageMetadata(para1: jint; para2: JIMIIOMetadata); overload; virtual;  // throws java.io.IOException
    function canInsertImage(para1: jint): jboolean; overload; virtual;  // throws java.io.IOException
    procedure writeInsert(para1: jint; para2: JIIIOImage; para3: JIImageWriteParam); overload; virtual;  // throws java.io.IOException
    function canRemoveImage(para1: jint): jboolean; overload; virtual;  // throws java.io.IOException
    procedure removeImage(para1: jint); overload; virtual;  // throws java.io.IOException
    function canWriteEmpty(): jboolean; overload; virtual;  // throws java.io.IOException
    procedure prepareWriteEmpty(para1: JIMIIOMetadata; para2: JIImageTypeSpecifier; para3: jint; para4: jint; para5: JIMIIOMetadata; para6: JUList; para7: JIImageWriteParam); overload; virtual;  // throws java.io.IOException
    procedure endWriteEmpty(); overload; virtual;  // throws java.io.IOException
    function canInsertEmpty(para1: jint): jboolean; overload; virtual;  // throws java.io.IOException
    procedure prepareInsertEmpty(para1: jint; para2: JIImageTypeSpecifier; para3: jint; para4: jint; para5: JIMIIOMetadata; para6: JUList; para7: JIImageWriteParam); overload; virtual;  // throws java.io.IOException
    procedure endInsertEmpty(); overload; virtual;  // throws java.io.IOException
    function canReplacePixels(para1: jint): jboolean; overload; virtual;  // throws java.io.IOException
    procedure prepareReplacePixels(para1: jint; para2: JARectangle); overload; virtual;  // throws java.io.IOException
    procedure replacePixels(para1: JAIRenderedImage; para2: JIImageWriteParam); overload; virtual;  // throws java.io.IOException
    procedure replacePixels(para1: JAIRaster; para2: JIImageWriteParam); overload; virtual;  // throws java.io.IOException
    procedure endReplacePixels(); overload; virtual;  // throws java.io.IOException
    procedure abort(); overload; virtual;
  strict protected
    function abortRequested(): jboolean; overload; virtual;
    procedure clearAbortRequest(); overload; virtual;
  public
    procedure addIIOWriteWarningListener(para1: JIEIIOWriteWarningListener); overload; virtual;
    procedure removeIIOWriteWarningListener(para1: JIEIIOWriteWarningListener); overload; virtual;
    procedure removeAllIIOWriteWarningListeners(); overload; virtual;
    procedure addIIOWriteProgressListener(para1: JIEIIOWriteProgressListener); overload; virtual;
    procedure removeIIOWriteProgressListener(para1: JIEIIOWriteProgressListener); overload; virtual;
    procedure removeAllIIOWriteProgressListeners(); overload; virtual;
  strict protected
    procedure processImageStarted(para1: jint); overload; virtual;
    procedure processImageProgress(para1: jfloat); overload; virtual;
    procedure processImageComplete(); overload; virtual;
    procedure processThumbnailStarted(para1: jint; para2: jint); overload; virtual;
    procedure processThumbnailProgress(para1: jfloat); overload; virtual;
    procedure processThumbnailComplete(); overload; virtual;
    procedure processWriteAborted(); overload; virtual;
    procedure processWarningOccurred(para1: jint; para2: JLString); overload; virtual;
    procedure processWarningOccurred(para1: jint; para2: JLString; para3: JLString); overload; virtual;
  public
    procedure reset(); overload; virtual;
    procedure dispose(); overload; virtual;
  end;

  JIMIIOMetadataFormatImpl = class abstract external 'javax.imageio.metadata' name 'IIOMetadataFormatImpl' (JLObject, JIMIIOMetadataFormat)
  public
    type
      InnerAttribute = class;
      Arr1InnerAttribute = array of InnerAttribute;
      Arr2InnerAttribute = array of Arr1InnerAttribute;
      Arr3InnerAttribute = array of Arr2InnerAttribute;
      InnerElement = class;
      Arr1InnerElement = array of InnerElement;
      Arr2InnerElement = array of Arr1InnerElement;
      Arr3InnerElement = array of Arr2InnerElement;
      InnerObjectValue = class;
      Arr1InnerObjectValue = array of InnerObjectValue;
      Arr2InnerObjectValue = array of Arr1InnerObjectValue;
      Arr3InnerObjectValue = array of Arr2InnerObjectValue;
      InnerAttribute = class external 'javax.imageio.metadata' name 'Attribute' 
      end;

      InnerElement = class external 'javax.imageio.metadata' name 'Element' 
      end;

      InnerObjectValue = class external 'javax.imageio.metadata' name 'ObjectValue' 
      end;

  public
    const
      standardMetadataFormatName = 'javax_imageio_1.0';
  public
    constructor create(para1: JLString; para2: jint); overload;
    constructor create(para1: JLString; para2: jint; para3: jint); overload;
  strict protected
    procedure setResourceBaseName(para1: JLString); overload; virtual;
    function getResourceBaseName(): JLString; overload; virtual;
    procedure addElement(para1: JLString; para2: JLString; para3: jint); overload; virtual;
    procedure addElement(para1: JLString; para2: JLString; para3: jint; para4: jint); overload; virtual;
    procedure addChildElement(para1: JLString; para2: JLString); overload; virtual;
    procedure removeElement(para1: JLString); overload; virtual;
    procedure addAttribute(para1: JLString; para2: JLString; para3: jint; para4: jboolean; para5: JLString); overload; virtual;
    procedure addAttribute(para1: JLString; para2: JLString; para3: jint; para4: jboolean; para5: JLString; para6: JUList); overload; virtual;
    procedure addAttribute(para1: JLString; para2: JLString; para3: jint; para4: jboolean; para5: JLString; para6: JLString; para7: JLString; para8: jboolean; para9: jboolean); overload; virtual;
    procedure addAttribute(para1: JLString; para2: JLString; para3: jint; para4: jboolean; para5: jint; para6: jint); overload; virtual;
    procedure addBooleanAttribute(para1: JLString; para2: JLString; para3: jboolean; para4: jboolean); overload; virtual;
    procedure removeAttribute(para1: JLString; para2: JLString); overload; virtual;
    procedure addObjectValue(para1: JLString; para2: JLClass; para3: jboolean; para4: JLObject); overload; virtual;
    procedure addObjectValue(para1: JLString; para2: JLClass; para3: jboolean; para4: JLObject; para5: JUList); overload; virtual;
    procedure addObjectValue(para1: JLString; para2: JLClass; para3: JLObject; para4: JLComparable; para5: JLComparable; para6: jboolean; para7: jboolean); overload; virtual;
    procedure addObjectValue(para1: JLString; para2: JLClass; para3: jint; para4: jint); overload; virtual;
    procedure removeObjectValue(para1: JLString); overload; virtual;
  public
    function getRootName(): JLString; overload; virtual;
    function canNodeAppear(para1: JLString; para2: JIImageTypeSpecifier): jboolean; overload; virtual; abstract;
    function getElementMinChildren(para1: JLString): jint; overload; virtual;
    function getElementMaxChildren(para1: JLString): jint; overload; virtual;
    function getElementDescription(para1: JLString; para2: JULocale): JLString; overload; virtual;
    function getChildPolicy(para1: JLString): jint; overload; virtual;
    function getChildNames(para1: JLString): Arr1JLString; overload; virtual;
    function getAttributeNames(para1: JLString): Arr1JLString; overload; virtual;
    function getAttributeValueType(para1: JLString; para2: JLString): jint; overload; virtual;
    function getAttributeDataType(para1: JLString; para2: JLString): jint; overload; virtual;
    function isAttributeRequired(para1: JLString; para2: JLString): jboolean; overload; virtual;
    function getAttributeDefaultValue(para1: JLString; para2: JLString): JLString; overload; virtual;
    function getAttributeEnumerations(para1: JLString; para2: JLString): Arr1JLString; overload; virtual;
    function getAttributeMinValue(para1: JLString; para2: JLString): JLString; overload; virtual;
    function getAttributeMaxValue(para1: JLString; para2: JLString): JLString; overload; virtual;
    function getAttributeListMinLength(para1: JLString; para2: JLString): jint; overload; virtual;
    function getAttributeListMaxLength(para1: JLString; para2: JLString): jint; overload; virtual;
    function getAttributeDescription(para1: JLString; para2: JLString; para3: JULocale): JLString; overload; virtual;
    function getObjectValueType(para1: JLString): jint; overload; virtual;
    function getObjectClass(para1: JLString): JLClass; overload; virtual;
    function getObjectDefaultValue(para1: JLString): JLObject; overload; virtual;
    function getObjectEnumerations(para1: JLString): Arr1JLObject; overload; virtual;
    function getObjectMinValue(para1: JLString): JLComparable; overload; virtual;
    function getObjectMaxValue(para1: JLString): JLComparable; overload; virtual;
    function getObjectArrayMinLength(para1: JLString): jint; overload; virtual;
    function getObjectArrayMaxLength(para1: JLString): jint; overload; virtual;
    class function getStandardFormatInstance(): JIMIIOMetadataFormat; static; overload;
  end;

  JISIIOServiceProvider = class abstract external 'javax.imageio.spi' name 'IIOServiceProvider' (JLObject, JISRegisterableService)
  strict protected
    var
      fvendorName: JLString; external name 'vendorName';
      fversion: JLString; external name 'version';
  public
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(); overload;
    procedure onRegistration(para1: JISServiceRegistry; para2: JLClass); overload; virtual;
    procedure onDeregistration(para1: JISServiceRegistry; para2: JLClass); overload; virtual;
    function getVendorName(): JLString; overload; virtual;
    function getVersion(): JLString; overload; virtual;
    function getDescription(para1: JULocale): JLString; overload; virtual; abstract;
  end;

  JISFilterIterator = class external 'javax.imageio.spi' name 'FilterIterator' (JLObject, JUIterator)
  public
    constructor create(para1: JUIterator; para2: JISServiceRegistry.InnerFilter); overload;
    function hasNext(): jboolean; overload; virtual;
    function next(): JLObject; overload; virtual;
    procedure remove(); overload; virtual;
  end;

  JISIIORegistry = class sealed external 'javax.imageio.spi' name 'IIORegistry' (JISServiceRegistry)
  public
    class function getDefaultInstance(): JISIIORegistry; static; overload;
    procedure registerApplicationClasspathSpis(); overload; virtual;
  end;

  JLMUAbstractAnnotationValueVisitor6 = class abstract external 'javax.lang.model.util' name 'AbstractAnnotationValueVisitor6' (JLObject, JLMEAnnotationValueVisitor)
  strict protected
    constructor create(); overload;
  public
    function visit(para1: JLMEAnnotationValue; para2: JLObject): JLObject; overload; virtual; final;
    function visit(para1: JLMEAnnotationValue): JLObject; overload; virtual; final;
    function visitUnknown(para1: JLMEAnnotationValue; para2: JLObject): JLObject; overload; virtual;
  end;

  JLMEExecutableElement = interface external 'javax.lang.model.element' name 'ExecutableElement' (JLMEElement)
    function getTypeParameters(): JUList; overload;
    function getReturnType(): JLMTTypeMirror; overload;
    function getParameters(): JUList; overload;
    function isVarArgs(): jboolean; overload;
    function getThrownTypes(): JUList; overload;
    function getDefaultValue(): JLMEAnnotationValue; overload;
  end;

  JLMEPackageElement = interface external 'javax.lang.model.element' name 'PackageElement' (JLMEElement)
    function getQualifiedName(): JLMEName; overload;
    function isUnnamed(): jboolean; overload;
  end;

  JLMETypeElement = interface external 'javax.lang.model.element' name 'TypeElement' (JLMEElement)
    function getNestingKind(): JLMENestingKind; overload;
    function getQualifiedName(): JLMEName; overload;
    function getSuperclass(): JLMTTypeMirror; overload;
    function getInterfaces(): JUList; overload;
    function getTypeParameters(): JUList; overload;
  end;

  JLMETypeParameterElement = interface external 'javax.lang.model.element' name 'TypeParameterElement' (JLMEElement)
    function getGenericElement(): JLMEElement; overload;
    function getBounds(): JUList; overload;
  end;

  JLMEVariableElement = interface external 'javax.lang.model.element' name 'VariableElement' (JLMEElement)
    function getConstantValue(): JLObject; overload;
  end;

  JLMUAbstractElementVisitor6 = class abstract external 'javax.lang.model.util' name 'AbstractElementVisitor6' (JLObject, JLMEElementVisitor)
  strict protected
    constructor create(); overload;
  public
    function visit(para1: JLMEElement; para2: JLObject): JLObject; overload; virtual; final;
    function visit(para1: JLMEElement): JLObject; overload; virtual; final;
    function visitUnknown(para1: JLMEElement; para2: JLObject): JLObject; overload; virtual;
  end;

  JLMTExecutableType = interface external 'javax.lang.model.type' name 'ExecutableType' (JLMTTypeMirror)
    function getTypeVariables(): JUList; overload;
    function getReturnType(): JLMTTypeMirror; overload;
    function getParameterTypes(): JUList; overload;
    function getThrownTypes(): JUList; overload;
  end;

  JLMTNoType = interface external 'javax.lang.model.type' name 'NoType' (JLMTTypeMirror)
  end;

  JLMTPrimitiveType = interface external 'javax.lang.model.type' name 'PrimitiveType' (JLMTTypeMirror)
  end;

  JLMTReferenceType = interface external 'javax.lang.model.type' name 'ReferenceType' (JLMTTypeMirror)
  end;

  JLMTWildcardType = interface external 'javax.lang.model.type' name 'WildcardType' (JLMTTypeMirror)
    function getExtendsBound(): JLMTTypeMirror; overload;
    function getSuperBound(): JLMTTypeMirror; overload;
  end;

  JLMUAbstractTypeVisitor6 = class abstract external 'javax.lang.model.util' name 'AbstractTypeVisitor6' (JLObject, JLMTTypeVisitor)
  strict protected
    constructor create(); overload;
  public
    function visit(para1: JLMTTypeMirror; para2: JLObject): JLObject; overload; virtual; final;
    function visit(para1: JLMTTypeMirror): JLObject; overload; virtual; final;
    function visitUnknown(para1: JLMTTypeMirror; para2: JLObject): JLObject; overload; virtual;
  end;

  JMDescriptorAccess = interface external 'javax.management' name 'DescriptorAccess' (JMDescriptorRead)
    procedure setDescriptor(para1: JMDescriptor); overload;
  end;

  JMMBeanFeatureInfo = class external 'javax.management' name 'MBeanFeatureInfo' (JLObject, JISerializable, JMDescriptorRead)
  strict protected
    var
      fname: JLString; external name 'name';
      fdescription: JLString; external name 'description';
  public
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: JMDescriptor); overload;
    function getName(): JLString; overload; virtual;
    function getDescription(): JLString; overload; virtual;
    function getDescriptor(): JMDescriptor; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JMMBeanInfo = class external 'javax.management' name 'MBeanInfo' (JLObject, JLCloneable, JISerializable, JMDescriptorRead)
  public
    type
      InnerArrayGettersSafeAction = class;
      Arr1InnerArrayGettersSafeAction = array of InnerArrayGettersSafeAction;
      Arr2InnerArrayGettersSafeAction = array of Arr1InnerArrayGettersSafeAction;
      Arr3InnerArrayGettersSafeAction = array of Arr2InnerArrayGettersSafeAction;
      InnerArrayGettersSafeAction = class external 'javax.management' name 'ArrayGettersSafeAction' 
      end;

  public
    constructor create(para1: JLString; para2: JLString; para3: Arr1JMMBeanAttributeInfo; para4: Arr1JMMBeanConstructorInfo; para5: Arr1JMMBeanOperationInfo; para6: Arr1JMMBeanNotificationInfo); overload;  // throws java.lang.IllegalArgumentException
    constructor create(para1: JLString; para2: JLString; const para3: array of JMMBeanAttributeInfo; const para4: array of JMMBeanConstructorInfo; const para5: array of JMMBeanOperationInfo; const para6: array of JMMBeanNotificationInfo); overload;  // throws java.lang.IllegalArgumentException
    constructor create(para1: JLString; para2: JLString; para3: Arr1JMMBeanAttributeInfo; para4: Arr1JMMBeanConstructorInfo; para5: Arr1JMMBeanOperationInfo; para6: Arr1JMMBeanNotificationInfo; para7: JMDescriptor); overload;  // throws java.lang.IllegalArgumentException
    constructor create(para1: JLString; para2: JLString; const para3: array of JMMBeanAttributeInfo; const para4: array of JMMBeanConstructorInfo; const para5: array of JMMBeanOperationInfo; const para6: array of JMMBeanNotificationInfo; para7: JMDescriptor); overload;  // throws java.lang.IllegalArgumentException
    function clone(): JLObject; overload; virtual;
    function getClassName(): JLString; overload; virtual;
    function getDescription(): JLString; overload; virtual;
    function getAttributes(): Arr1JMMBeanAttributeInfo; overload; virtual;
    function getOperations(): Arr1JMMBeanOperationInfo; overload; virtual;
    function getConstructors(): Arr1JMMBeanConstructorInfo; overload; virtual;
    function getNotifications(): Arr1JMMBeanNotificationInfo; overload; virtual;
    function getDescriptor(): JMDescriptor; overload; virtual;
    function toString(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JMStandardMBean = class external 'javax.management' name 'StandardMBean' (JLObject, JMDynamicMBean, JMMBeanRegistration)
  public
    type
      InnerMBeanInfoSafeAction = class;
      Arr1InnerMBeanInfoSafeAction = array of InnerMBeanInfoSafeAction;
      Arr2InnerMBeanInfoSafeAction = array of Arr1InnerMBeanInfoSafeAction;
      Arr3InnerMBeanInfoSafeAction = array of Arr2InnerMBeanInfoSafeAction;
      InnerMBeanInfoSafeAction = class external 'javax.management' name 'MBeanInfoSafeAction' 
      end;

  public
    constructor create(para1: JLObject; para2: JLClass); overload;  // throws javax.management.NotCompliantMBeanException
  strict protected
    constructor create(para1: JLClass); overload;  // throws javax.management.NotCompliantMBeanException
  public
    constructor create(para1: JLObject; para2: JLClass; para3: jboolean); overload;
  strict protected
    constructor create(para1: JLClass; para2: jboolean); overload;
  public
    procedure setImplementation(para1: JLObject); overload; virtual;  // throws javax.management.NotCompliantMBeanException
    function getImplementation(): JLObject; overload; virtual;
    function getMBeanInterface(): JLClass; overload; virtual; final;
    function getImplementationClass(): JLClass; overload; virtual;
    function getAttribute(para1: JLString): JLObject; overload; virtual;  // throws javax.management.AttributeNotFoundException, javax.management.MBeanException, javax.management.ReflectionException
    procedure setAttribute(para1: JMAttribute); overload; virtual;  // throws javax.management.AttributeNotFoundException, javax.management.InvalidAttributeValueException, javax.management.MBeanException, javax.management.ReflectionException
    function getAttributes(para1: Arr1JLString): JMAttributeList; overload; virtual;
    function getAttributes(var para1: array of JLString): JMAttributeList; overload; virtual;
    function setAttributes(para1: JMAttributeList): JMAttributeList; overload; virtual;
    function invoke(para1: JLString; para2: Arr1JLObject; para3: Arr1JLString): JLObject; overload; virtual;  // throws javax.management.MBeanException, javax.management.ReflectionException
    function invoke(para1: JLString; var para2: array of JLObject; var para3: array of JLString): JLObject; overload; virtual;  // throws javax.management.MBeanException, javax.management.ReflectionException
    function getMBeanInfo(): JMMBeanInfo; overload; virtual;
  strict protected
    function getClassName(para1: JMMBeanInfo): JLString; overload; virtual;
    function getDescription(para1: JMMBeanInfo): JLString; overload; virtual;
    function getDescription(para1: JMMBeanFeatureInfo): JLString; overload; virtual;
    function getDescription(para1: JMMBeanAttributeInfo): JLString; overload; virtual;
    function getDescription(para1: JMMBeanConstructorInfo): JLString; overload; virtual;
    function getDescription(para1: JMMBeanConstructorInfo; para2: JMMBeanParameterInfo; para3: jint): JLString; overload; virtual;
    function getParameterName(para1: JMMBeanConstructorInfo; para2: JMMBeanParameterInfo; para3: jint): JLString; overload; virtual;
    function getDescription(para1: JMMBeanOperationInfo): JLString; overload; virtual;
    function getImpact(para1: JMMBeanOperationInfo): jint; overload; virtual;
    function getParameterName(para1: JMMBeanOperationInfo; para2: JMMBeanParameterInfo; para3: jint): JLString; overload; virtual;
    function getDescription(para1: JMMBeanOperationInfo; para2: JMMBeanParameterInfo; para3: jint): JLString; overload; virtual;
    function getConstructors(para1: Arr1JMMBeanConstructorInfo; para2: JLObject): Arr1JMMBeanConstructorInfo; overload; virtual;
    function getConstructors(var para1: array of JMMBeanConstructorInfo; para2: JLObject): Arr1JMMBeanConstructorInfo; overload; virtual;
    function getCachedMBeanInfo(): JMMBeanInfo; overload; virtual;
    procedure cacheMBeanInfo(para1: JMMBeanInfo); overload; virtual;
  public
    function preRegister(para1: JMMBeanServer; para2: JMObjectName): JMObjectName; overload; virtual;  // throws java.lang.Exception
    procedure postRegister(para1: JLBoolean); overload; virtual;
    procedure preDeregister(); overload; virtual;  // throws java.lang.Exception
    procedure postDeregister(); overload; virtual;
  end;

  JMMBeanServer = interface external 'javax.management' name 'MBeanServer' (JMMBeanServerConnection)
    function createMBean(para1: JLString; para2: JMObjectName): JMObjectInstance; overload;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JMObjectName): JMObjectInstance; overload;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, javax.management.InstanceNotFoundException
    function createMBean(para1: JLString; para2: JMObjectName; para3: Arr1JLObject; para4: Arr1JLString): JMObjectInstance; overload;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException
    function createMBean(para1: JLString; para2: JMObjectName; var para3: array of JLObject; var para4: array of JLString): JMObjectInstance; overload;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JMObjectName; para4: Arr1JLObject; para5: Arr1JLString): JMObjectInstance; overload;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, javax.management.InstanceNotFoundException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JMObjectName; var para4: array of JLObject; var para5: array of JLString): JMObjectInstance; overload;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, javax.management.InstanceNotFoundException
    function registerMBean(para1: JLObject; para2: JMObjectName): JMObjectInstance; overload;  // throws javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.NotCompliantMBeanException
    procedure unregisterMBean(para1: JMObjectName); overload;  // throws javax.management.InstanceNotFoundException, javax.management.MBeanRegistrationException
    function getObjectInstance(para1: JMObjectName): JMObjectInstance; overload;  // throws javax.management.InstanceNotFoundException
    function queryMBeans(para1: JMObjectName; para2: JMQueryExp): JUSet; overload;
    function queryNames(para1: JMObjectName; para2: JMQueryExp): JUSet; overload;
    function isRegistered(para1: JMObjectName): jboolean; overload;
    function getMBeanCount(): JLInteger; overload;
    function getAttribute(para1: JMObjectName; para2: JLString): JLObject; overload;  // throws javax.management.MBeanException, javax.management.AttributeNotFoundException, javax.management.InstanceNotFoundException, javax.management.ReflectionException
    function getAttributes(para1: JMObjectName; para2: Arr1JLString): JMAttributeList; overload;  // throws javax.management.InstanceNotFoundException, javax.management.ReflectionException
    function getAttributes(para1: JMObjectName; var para2: array of JLString): JMAttributeList; overload;  // throws javax.management.InstanceNotFoundException, javax.management.ReflectionException
    procedure setAttribute(para1: JMObjectName; para2: JMAttribute); overload;  // throws javax.management.InstanceNotFoundException, javax.management.AttributeNotFoundException, javax.management.InvalidAttributeValueException, javax.management.MBeanException, javax.management.ReflectionException
    function setAttributes(para1: JMObjectName; para2: JMAttributeList): JMAttributeList; overload;  // throws javax.management.InstanceNotFoundException, javax.management.ReflectionException
    function invoke(para1: JMObjectName; para2: JLString; para3: Arr1JLObject; para4: Arr1JLString): JLObject; overload;  // throws javax.management.InstanceNotFoundException, javax.management.MBeanException, javax.management.ReflectionException
    function invoke(para1: JMObjectName; para2: JLString; var para3: array of JLObject; var para4: array of JLString): JLObject; overload;  // throws javax.management.InstanceNotFoundException, javax.management.MBeanException, javax.management.ReflectionException
    function getDefaultDomain(): JLString; overload;
    function getDomains(): Arr1JLString; overload;
    procedure addNotificationListener(para1: JMObjectName; para2: JMNotificationListener; para3: JMNotificationFilter; para4: JLObject); overload;  // throws javax.management.InstanceNotFoundException
    procedure addNotificationListener(para1: JMObjectName; para2: JMObjectName; para3: JMNotificationFilter; para4: JLObject); overload;  // throws javax.management.InstanceNotFoundException
    procedure removeNotificationListener(para1: JMObjectName; para2: JMObjectName); overload;  // throws javax.management.InstanceNotFoundException, javax.management.ListenerNotFoundException
    procedure removeNotificationListener(para1: JMObjectName; para2: JMObjectName; para3: JMNotificationFilter; para4: JLObject); overload;  // throws javax.management.InstanceNotFoundException, javax.management.ListenerNotFoundException
    procedure removeNotificationListener(para1: JMObjectName; para2: JMNotificationListener); overload;  // throws javax.management.InstanceNotFoundException, javax.management.ListenerNotFoundException
    procedure removeNotificationListener(para1: JMObjectName; para2: JMNotificationListener; para3: JMNotificationFilter; para4: JLObject); overload;  // throws javax.management.InstanceNotFoundException, javax.management.ListenerNotFoundException
    function getMBeanInfo(para1: JMObjectName): JMMBeanInfo; overload;  // throws javax.management.InstanceNotFoundException, javax.management.IntrospectionException, javax.management.ReflectionException
    function isInstanceOf(para1: JMObjectName; para2: JLString): jboolean; overload;  // throws javax.management.InstanceNotFoundException
    function instantiate(para1: JLString): JLObject; overload;  // throws javax.management.ReflectionException, javax.management.MBeanException
    function instantiate(para1: JLString; para2: JMObjectName): JLObject; overload;  // throws javax.management.ReflectionException, javax.management.MBeanException, javax.management.InstanceNotFoundException
    function instantiate(para1: JLString; para2: Arr1JLObject; para3: Arr1JLString): JLObject; overload;  // throws javax.management.ReflectionException, javax.management.MBeanException
    function instantiate(para1: JLString; var para2: array of JLObject; var para3: array of JLString): JLObject; overload;  // throws javax.management.ReflectionException, javax.management.MBeanException
    function instantiate(para1: JLString; para2: JMObjectName; para3: Arr1JLObject; para4: Arr1JLString): JLObject; overload;  // throws javax.management.ReflectionException, javax.management.MBeanException, javax.management.InstanceNotFoundException
    function instantiate(para1: JLString; para2: JMObjectName; var para3: array of JLObject; var para4: array of JLString): JLObject; overload;  // throws javax.management.ReflectionException, javax.management.MBeanException, javax.management.InstanceNotFoundException
    function deserialize(para1: JMObjectName; para2: Arr1jbyte): JIObjectInputStream; overload;  // throws javax.management.InstanceNotFoundException, javax.management.OperationsException
    function deserialize(para1: JMObjectName; var para2: array of jbyte): JIObjectInputStream; overload;  // throws javax.management.InstanceNotFoundException, javax.management.OperationsException
    function deserialize(para1: JLString; para2: Arr1jbyte): JIObjectInputStream; overload;  // throws javax.management.OperationsException, javax.management.ReflectionException
    function deserialize(para1: JLString; var para2: array of jbyte): JIObjectInputStream; overload;  // throws javax.management.OperationsException, javax.management.ReflectionException
    function deserialize(para1: JLString; para2: JMObjectName; para3: Arr1jbyte): JIObjectInputStream; overload;  // throws javax.management.InstanceNotFoundException, javax.management.OperationsException, javax.management.ReflectionException
    function deserialize(para1: JLString; para2: JMObjectName; var para3: array of jbyte): JIObjectInputStream; overload;  // throws javax.management.InstanceNotFoundException, javax.management.OperationsException, javax.management.ReflectionException
    function getClassLoaderFor(para1: JMObjectName): JLClassLoader; overload;  // throws javax.management.InstanceNotFoundException
    function getClassLoader(para1: JMObjectName): JLClassLoader; overload;  // throws javax.management.InstanceNotFoundException
    function getClassLoaderRepository(): JMLClassLoaderRepository; overload;
  end;

  JMNotificationEmitter = interface external 'javax.management' name 'NotificationEmitter' (JMNotificationBroadcaster)
    procedure removeNotificationListener(para1: JMNotificationListener; para2: JMNotificationFilter; para3: JLObject); overload;  // throws javax.management.ListenerNotFoundException
  end;

  JMMModelMBeanNotificationBroadcaster = interface external 'javax.management.modelmbean' name 'ModelMBeanNotificationBroadcaster' (JMNotificationBroadcaster)
    procedure sendNotification(para1: JMNotification); overload;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
    procedure sendNotification(para1: JLString); overload;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
    procedure sendAttributeChangeNotification(para1: JMAttributeChangeNotification); overload;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
    procedure sendAttributeChangeNotification(para1: JMAttribute; para2: JMAttribute); overload;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
    procedure addAttributeChangeNotificationListener(para1: JMNotificationListener; para2: JLString; para3: JLObject); overload;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException, java.lang.IllegalArgumentException
    procedure removeAttributeChangeNotificationListener(para1: JMNotificationListener; para2: JLString); overload;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException, javax.management.ListenerNotFoundException
  end;

  JMMCounterMonitorMBean = interface external 'javax.management.monitor' name 'CounterMonitorMBean' (JMMMonitorMBean)
    function getDerivedGauge(): JLNumber; overload;
    function getDerivedGaugeTimeStamp(): jlong; overload;
    function getThreshold(): JLNumber; overload;
    procedure setThreshold(para1: JLNumber); overload;  // throws java.lang.IllegalArgumentException
    function getDerivedGauge(para1: JMObjectName): JLNumber; overload;
    function getDerivedGaugeTimeStamp(para1: JMObjectName): jlong; overload;
    function getThreshold(para1: JMObjectName): JLNumber; overload;
    function getInitThreshold(): JLNumber; overload;
    procedure setInitThreshold(para1: JLNumber); overload;  // throws java.lang.IllegalArgumentException
    function getOffset(): JLNumber; overload;
    procedure setOffset(para1: JLNumber); overload;  // throws java.lang.IllegalArgumentException
    function getModulus(): JLNumber; overload;
    procedure setModulus(para1: JLNumber); overload;  // throws java.lang.IllegalArgumentException
    function getNotify(): jboolean; overload;
    procedure setNotify(para1: jboolean); overload;
    function getDifferenceMode(): jboolean; overload;
    procedure setDifferenceMode(para1: jboolean); overload;
  end;

  JMMGaugeMonitorMBean = interface external 'javax.management.monitor' name 'GaugeMonitorMBean' (JMMMonitorMBean)
    function getDerivedGauge(): JLNumber; overload;
    function getDerivedGaugeTimeStamp(): jlong; overload;
    function getDerivedGauge(para1: JMObjectName): JLNumber; overload;
    function getDerivedGaugeTimeStamp(para1: JMObjectName): jlong; overload;
    function getHighThreshold(): JLNumber; overload;
    function getLowThreshold(): JLNumber; overload;
    procedure setThresholds(para1: JLNumber; para2: JLNumber); overload;  // throws java.lang.IllegalArgumentException
    function getNotifyHigh(): jboolean; overload;
    procedure setNotifyHigh(para1: jboolean); overload;
    function getNotifyLow(): jboolean; overload;
    procedure setNotifyLow(para1: jboolean); overload;
    function getDifferenceMode(): jboolean; overload;
    procedure setDifferenceMode(para1: jboolean); overload;
  end;

  JMMStringMonitorMBean = interface external 'javax.management.monitor' name 'StringMonitorMBean' (JMMMonitorMBean)
    function getDerivedGauge(): JLString; overload;
    function getDerivedGaugeTimeStamp(): jlong; overload;
    function getDerivedGauge(para1: JMObjectName): JLString; overload;
    function getDerivedGaugeTimeStamp(para1: JMObjectName): jlong; overload;
    function getStringToCompare(): JLString; overload;
    procedure setStringToCompare(para1: JLString); overload;  // throws java.lang.IllegalArgumentException
    function getNotifyMatch(): jboolean; overload;
    procedure setNotifyMatch(para1: jboolean); overload;
    function getNotifyDiffer(): jboolean; overload;
    procedure setNotifyDiffer(para1: jboolean); overload;
  end;

  JMOCompositeDataSupport = class external 'javax.management.openmbean' name 'CompositeDataSupport' (JLObject, JMOCompositeData, JISerializable)
  public
    constructor create(para1: JMOCompositeType; para2: Arr1JLString; para3: Arr1JLObject); overload;  // throws javax.management.openmbean.OpenDataException
    constructor create(para1: JMOCompositeType; const para2: array of JLString; const para3: array of JLObject); overload;  // throws javax.management.openmbean.OpenDataException
    constructor create(para1: JMOCompositeType; para2: JUMap); overload;  // throws javax.management.openmbean.OpenDataException
    function getCompositeType(): JMOCompositeType; overload; virtual;
    function get(para1: JLString): JLObject; overload; virtual;
    function getAll(para1: Arr1JLString): Arr1JLObject; overload; virtual;
    function getAll(var para1: array of JLString): Arr1JLObject; overload; virtual;
    function containsKey(para1: JLString): jboolean; overload; virtual;
    function containsValue(para1: JLObject): jboolean; overload; virtual;
    function values(): JUCollection; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JMOOpenMBeanAttributeInfo = interface external 'javax.management.openmbean' name 'OpenMBeanAttributeInfo' (JMOOpenMBeanParameterInfo)
    function isReadable(): jboolean; overload;
    function isWritable(): jboolean; overload;
    function isIs(): jboolean; overload;
    function equals(para1: JLObject): jboolean; overload;
    function hashCode(): jint; overload;
    function toString(): JLString; overload;
  end;

  JMOTabularDataSupport = class external 'javax.management.openmbean' name 'TabularDataSupport' (JLObject, JMOTabularData, JUMap, JLCloneable, JISerializable)
  public
    constructor create(para1: JMOTabularType); overload;
    constructor create(para1: JMOTabularType; para2: jint; para3: jfloat); overload;
    function getTabularType(): JMOTabularType; overload; virtual;
    function calculateIndex(para1: JMOCompositeData): Arr1JLObject; overload; virtual;
    function containsKey(para1: JLObject): jboolean; overload; virtual;
    function containsKey(para1: Arr1JLObject): jboolean; overload; virtual;
    function containsKey(var para1: array of JLObject): jboolean; overload; virtual;
    function containsValue(para1: JMOCompositeData): jboolean; overload; virtual;
    function containsValue(para1: JLObject): jboolean; overload; virtual;
    function get(para1: JLObject): JLObject; overload; virtual;
    function get(para1: Arr1JLObject): JMOCompositeData; overload; virtual;
    function get(var para1: array of JLObject): JMOCompositeData; overload; virtual;
    function put(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
    procedure put(para1: JMOCompositeData); overload; virtual;
    function remove(para1: JLObject): JLObject; overload; virtual;
    function remove(para1: Arr1JLObject): JMOCompositeData; overload; virtual;
    function remove(var para1: array of JLObject): JMOCompositeData; overload; virtual;
    procedure putAll(para1: JUMap); overload; virtual;
    procedure putAll(para1: Arr1JMOCompositeData); overload; virtual;
    procedure putAll(var para1: array of JMOCompositeData); overload; virtual;
    procedure clear(); overload; virtual;
    function size(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function keySet(): JUSet; overload; virtual;
    function values(): JUCollection; overload; virtual;
    function entrySet(): JUSet; overload; virtual;
    function clone(): JLObject; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JMRRelationSupportMBean = interface external 'javax.management.relation' name 'RelationSupportMBean' (JMRRelation)
    function isInRelationService(): JLBoolean; overload;
    procedure setRelationServiceManagementFlag(para1: JLBoolean); overload;  // throws java.lang.IllegalArgumentException
  end;

  JNInitialContext = class external 'javax.naming' name 'InitialContext' (JLObject, JNContext)
  strict protected
    var
      fmyProps: JUHashtable; external name 'myProps';
      fdefaultInitCtx: JNContext; external name 'defaultInitCtx';
      fgotDefault: jboolean; external name 'gotDefault';
  strict protected
    constructor create(para1: jboolean); overload;  // throws javax.naming.NamingException
  public
    constructor create(); overload;  // throws javax.naming.NamingException
    constructor create(para1: JUHashtable); overload;  // throws javax.naming.NamingException
  strict protected
    procedure init(para1: JUHashtable); overload; virtual;  // throws javax.naming.NamingException
  public
    class function doLookup(para1: JNName): JLObject; static; overload;  // throws javax.naming.NamingException
    class function doLookup(para1: JLString): JLObject; static; overload;  // throws javax.naming.NamingException
  strict protected
    function getDefaultInitCtx(): JNContext; overload; virtual;  // throws javax.naming.NamingException
    function getURLOrDefaultInitCtx(para1: JLString): JNContext; overload; virtual;  // throws javax.naming.NamingException
    function getURLOrDefaultInitCtx(para1: JNName): JNContext; overload; virtual;  // throws javax.naming.NamingException
  public
    function lookup(para1: JLString): JLObject; overload; virtual;  // throws javax.naming.NamingException
    function lookup(para1: JNName): JLObject; overload; virtual;  // throws javax.naming.NamingException
    procedure bind(para1: JLString; para2: JLObject); overload; virtual;  // throws javax.naming.NamingException
    procedure bind(para1: JNName; para2: JLObject); overload; virtual;  // throws javax.naming.NamingException
    procedure rebind(para1: JLString; para2: JLObject); overload; virtual;  // throws javax.naming.NamingException
    procedure rebind(para1: JNName; para2: JLObject); overload; virtual;  // throws javax.naming.NamingException
    procedure unbind(para1: JLString); overload; virtual;  // throws javax.naming.NamingException
    procedure unbind(para1: JNName); overload; virtual;  // throws javax.naming.NamingException
    procedure rename(para1: JLString; para2: JLString); overload; virtual;  // throws javax.naming.NamingException
    procedure rename(para1: JNName; para2: JNName); overload; virtual;  // throws javax.naming.NamingException
    function list(para1: JLString): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
    function list(para1: JNName): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
    function listBindings(para1: JLString): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
    function listBindings(para1: JNName): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
    procedure destroySubcontext(para1: JLString); overload; virtual;  // throws javax.naming.NamingException
    procedure destroySubcontext(para1: JNName); overload; virtual;  // throws javax.naming.NamingException
    function createSubcontext(para1: JLString): JNContext; overload; virtual;  // throws javax.naming.NamingException
    function createSubcontext(para1: JNName): JNContext; overload; virtual;  // throws javax.naming.NamingException
    function lookupLink(para1: JLString): JLObject; overload; virtual;  // throws javax.naming.NamingException
    function lookupLink(para1: JNName): JLObject; overload; virtual;  // throws javax.naming.NamingException
    function getNameParser(para1: JLString): JNNameParser; overload; virtual;  // throws javax.naming.NamingException
    function getNameParser(para1: JNName): JNNameParser; overload; virtual;  // throws javax.naming.NamingException
    function composeName(para1: JLString; para2: JLString): JLString; overload; virtual;  // throws javax.naming.NamingException
    function composeName(para1: JNName; para2: JNName): JNName; overload; virtual;  // throws javax.naming.NamingException
    function addToEnvironment(para1: JLString; para2: JLObject): JLObject; overload; virtual;  // throws javax.naming.NamingException
    function removeFromEnvironment(para1: JLString): JLObject; overload; virtual;  // throws javax.naming.NamingException
    function getEnvironment(): JUHashtable; overload; virtual;  // throws javax.naming.NamingException
    procedure close(); overload; virtual;  // throws javax.naming.NamingException
    function getNameInNamespace(): JLString; overload; virtual;  // throws javax.naming.NamingException
  end;

  JNDDirContext = interface external 'javax.naming.directory' name 'DirContext' (JNContext)
    const
      ADD_ATTRIBUTE = 1;
      REPLACE_ATTRIBUTE = 2;
      REMOVE_ATTRIBUTE = 3;
    function getAttributes(para1: JNName): JNDAttributes; overload;  // throws javax.naming.NamingException
    function getAttributes(para1: JLString): JNDAttributes; overload;  // throws javax.naming.NamingException
    function getAttributes(para1: JNName; para2: Arr1JLString): JNDAttributes; overload;  // throws javax.naming.NamingException
    function getAttributes(para1: JNName; var para2: array of JLString): JNDAttributes; overload;  // throws javax.naming.NamingException
    function getAttributes(para1: JLString; para2: Arr1JLString): JNDAttributes; overload;  // throws javax.naming.NamingException
    function getAttributes(para1: JLString; var para2: array of JLString): JNDAttributes; overload;  // throws javax.naming.NamingException
    procedure modifyAttributes(para1: JNName; para2: jint; para3: JNDAttributes); overload;  // throws javax.naming.NamingException
    procedure modifyAttributes(para1: JLString; para2: jint; para3: JNDAttributes); overload;  // throws javax.naming.NamingException
    procedure modifyAttributes(para1: JNName; para2: Arr1JNDModificationItem); overload;  // throws javax.naming.NamingException
    procedure modifyAttributes(para1: JNName; var para2: array of JNDModificationItem); overload;  // throws javax.naming.NamingException
    procedure modifyAttributes(para1: JLString; para2: Arr1JNDModificationItem); overload;  // throws javax.naming.NamingException
    procedure modifyAttributes(para1: JLString; var para2: array of JNDModificationItem); overload;  // throws javax.naming.NamingException
    procedure bind(para1: JNName; para2: JLObject; para3: JNDAttributes); overload;  // throws javax.naming.NamingException
    procedure bind(para1: JLString; para2: JLObject; para3: JNDAttributes); overload;  // throws javax.naming.NamingException
    procedure rebind(para1: JNName; para2: JLObject; para3: JNDAttributes); overload;  // throws javax.naming.NamingException
    procedure rebind(para1: JLString; para2: JLObject; para3: JNDAttributes); overload;  // throws javax.naming.NamingException
    function createSubcontext(para1: JNName; para2: JNDAttributes): JNDDirContext; overload;  // throws javax.naming.NamingException
    function createSubcontext(para1: JLString; para2: JNDAttributes): JNDDirContext; overload;  // throws javax.naming.NamingException
    function getSchema(para1: JNName): JNDDirContext; overload;  // throws javax.naming.NamingException
    function getSchema(para1: JLString): JNDDirContext; overload;  // throws javax.naming.NamingException
    function getSchemaClassDefinition(para1: JNName): JNDDirContext; overload;  // throws javax.naming.NamingException
    function getSchemaClassDefinition(para1: JLString): JNDDirContext; overload;  // throws javax.naming.NamingException
    function search(para1: JNName; para2: JNDAttributes; para3: Arr1JLString): JNNamingEnumeration; overload;  // throws javax.naming.NamingException
    function search(para1: JNName; para2: JNDAttributes; var para3: array of JLString): JNNamingEnumeration; overload;  // throws javax.naming.NamingException
    function search(para1: JLString; para2: JNDAttributes; para3: Arr1JLString): JNNamingEnumeration; overload;  // throws javax.naming.NamingException
    function search(para1: JLString; para2: JNDAttributes; var para3: array of JLString): JNNamingEnumeration; overload;  // throws javax.naming.NamingException
    function search(para1: JNName; para2: JNDAttributes): JNNamingEnumeration; overload;  // throws javax.naming.NamingException
    function search(para1: JLString; para2: JNDAttributes): JNNamingEnumeration; overload;  // throws javax.naming.NamingException
    function search(para1: JNName; para2: JLString; para3: JNDSearchControls): JNNamingEnumeration; overload;  // throws javax.naming.NamingException
    function search(para1: JLString; para2: JLString; para3: JNDSearchControls): JNNamingEnumeration; overload;  // throws javax.naming.NamingException
    function search(para1: JNName; para2: JLString; para3: Arr1JLObject; para4: JNDSearchControls): JNNamingEnumeration; overload;  // throws javax.naming.NamingException
    function search(para1: JNName; para2: JLString; var para3: array of JLObject; para4: JNDSearchControls): JNNamingEnumeration; overload;  // throws javax.naming.NamingException
    function search(para1: JLString; para2: JLString; para3: Arr1JLObject; para4: JNDSearchControls): JNNamingEnumeration; overload;  // throws javax.naming.NamingException
    function search(para1: JLString; para2: JLString; var para3: array of JLObject; para4: JNDSearchControls): JNNamingEnumeration; overload;  // throws javax.naming.NamingException
  end;

  JNEEventContext = interface external 'javax.naming.event' name 'EventContext' (JNContext)
    const
      OBJECT_SCOPE = 0;
      ONELEVEL_SCOPE = 1;
      SUBTREE_SCOPE = 2;
    procedure addNamingListener(para1: JNName; para2: jint; para3: JNENamingListener); overload;  // throws javax.naming.NamingException
    procedure addNamingListener(para1: JLString; para2: jint; para3: JNENamingListener); overload;  // throws javax.naming.NamingException
    procedure removeNamingListener(para1: JNENamingListener); overload;  // throws javax.naming.NamingException
    function targetMustExist(): jboolean; overload;  // throws javax.naming.NamingException
  end;

  JNSDirObjectFactory = interface external 'javax.naming.spi' name 'DirObjectFactory' (JNSObjectFactory)
    function getObjectInstance(para1: JLObject; para2: JNName; para3: JNContext; para4: JUHashtable; para5: JNDAttributes): JLObject; overload;  // throws java.lang.Exception
  end;

  JNSContinuationContext = class external 'javax.naming.spi' name 'ContinuationContext' (JLObject, JNContext, JNSResolver)
  strict protected
    var
      fcpe: JNCannotProceedException; external name 'cpe';
      fenv: JUHashtable; external name 'env';
      fcontCtx: JNContext; external name 'contCtx';
  strict protected
    constructor create(para1: JNCannotProceedException; para2: JUHashtable); overload;
    function getTargetContext(): JNContext; overload; virtual;  // throws javax.naming.NamingException
  public
    function lookup(para1: JNName): JLObject; overload; virtual;  // throws javax.naming.NamingException
    function lookup(para1: JLString): JLObject; overload; virtual;  // throws javax.naming.NamingException
    procedure bind(para1: JNName; para2: JLObject); overload; virtual;  // throws javax.naming.NamingException
    procedure bind(para1: JLString; para2: JLObject); overload; virtual;  // throws javax.naming.NamingException
    procedure rebind(para1: JNName; para2: JLObject); overload; virtual;  // throws javax.naming.NamingException
    procedure rebind(para1: JLString; para2: JLObject); overload; virtual;  // throws javax.naming.NamingException
    procedure unbind(para1: JNName); overload; virtual;  // throws javax.naming.NamingException
    procedure unbind(para1: JLString); overload; virtual;  // throws javax.naming.NamingException
    procedure rename(para1: JNName; para2: JNName); overload; virtual;  // throws javax.naming.NamingException
    procedure rename(para1: JLString; para2: JLString); overload; virtual;  // throws javax.naming.NamingException
    function list(para1: JNName): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
    function list(para1: JLString): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
    function listBindings(para1: JNName): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
    function listBindings(para1: JLString): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
    procedure destroySubcontext(para1: JNName); overload; virtual;  // throws javax.naming.NamingException
    procedure destroySubcontext(para1: JLString); overload; virtual;  // throws javax.naming.NamingException
    function createSubcontext(para1: JNName): JNContext; overload; virtual;  // throws javax.naming.NamingException
    function createSubcontext(para1: JLString): JNContext; overload; virtual;  // throws javax.naming.NamingException
    function lookupLink(para1: JNName): JLObject; overload; virtual;  // throws javax.naming.NamingException
    function lookupLink(para1: JLString): JLObject; overload; virtual;  // throws javax.naming.NamingException
    function getNameParser(para1: JNName): JNNameParser; overload; virtual;  // throws javax.naming.NamingException
    function getNameParser(para1: JLString): JNNameParser; overload; virtual;  // throws javax.naming.NamingException
    function composeName(para1: JNName; para2: JNName): JNName; overload; virtual;  // throws javax.naming.NamingException
    function composeName(para1: JLString; para2: JLString): JLString; overload; virtual;  // throws javax.naming.NamingException
    function addToEnvironment(para1: JLString; para2: JLObject): JLObject; overload; virtual;  // throws javax.naming.NamingException
    function removeFromEnvironment(para1: JLString): JLObject; overload; virtual;  // throws javax.naming.NamingException
    function getEnvironment(): JUHashtable; overload; virtual;  // throws javax.naming.NamingException
    function getNameInNamespace(): JLString; overload; virtual;  // throws javax.naming.NamingException
    function resolveToClass(para1: JNName; para2: JLClass): JNSResolveResult; overload; virtual;  // throws javax.naming.NamingException
    function resolveToClass(para1: JLString; para2: JLClass): JNSResolveResult; overload; virtual;  // throws javax.naming.NamingException
    procedure close(); overload; virtual;  // throws javax.naming.NamingException
  end;

  JNSDirStateFactory = interface external 'javax.naming.spi' name 'DirStateFactory' (JNSStateFactory)
    type
      InnerResult = class;
      Arr1InnerResult = array of InnerResult;
      Arr2InnerResult = array of Arr1InnerResult;
      Arr3InnerResult = array of Arr2InnerResult;
      InnerResult = class external 'javax.naming.spi' name 'Result' (JLObject)
      public
        constructor create(para1: JLObject; para2: JNDAttributes); overload;
        function getObject(): JLObject; overload; virtual;
        function getAttributes(): JNDAttributes; overload; virtual;
      end;

    function getStateToBind(para1: JLObject; para2: JNName; para3: JNContext; para4: JUHashtable; para5: JNDAttributes): JNSDirStateFactory.InnerResult; overload;  // throws javax.naming.NamingException
  end;

  JNDefaultServerSocketFactory = class external 'javax.net' name 'DefaultServerSocketFactory' (JNServerSocketFactory)
  public
    function createServerSocket(): JNServerSocket; overload; virtual;  // throws java.io.IOException
    function createServerSocket(para1: jint): JNServerSocket; overload; virtual;  // throws java.io.IOException
    function createServerSocket(para1: jint; para2: jint): JNServerSocket; overload; virtual;  // throws java.io.IOException
    function createServerSocket(para1: jint; para2: jint; para3: JNInetAddress): JNServerSocket; overload; virtual;  // throws java.io.IOException
  end;

  JNSSSLServerSocketFactory = class abstract external 'javax.net.ssl' name 'SSLServerSocketFactory' (JNServerSocketFactory)
  strict protected
    constructor create(); overload;
  public
    class function getDefault(): JNServerSocketFactory; static; overload;
    function getDefaultCipherSuites(): Arr1JLString; overload; virtual; abstract;
    function getSupportedCipherSuites(): Arr1JLString; overload; virtual; abstract;
  end;

  JNDefaultSocketFactory = class external 'javax.net' name 'DefaultSocketFactory' (JNSocketFactory)
  public
    function createSocket(): JNSocket; overload; virtual;
    function createSocket(para1: JLString; para2: jint): JNSocket; overload; virtual;  // throws java.io.IOException, java.net.UnknownHostException
    function createSocket(para1: JNInetAddress; para2: jint): JNSocket; overload; virtual;  // throws java.io.IOException
    function createSocket(para1: JLString; para2: jint; para3: JNInetAddress; para4: jint): JNSocket; overload; virtual;  // throws java.io.IOException, java.net.UnknownHostException
    function createSocket(para1: JNInetAddress; para2: jint; para3: JNInetAddress; para4: jint): JNSocket; overload; virtual;  // throws java.io.IOException
  end;

  JNSSSLSocketFactory = class abstract external 'javax.net.ssl' name 'SSLSocketFactory' (JNSocketFactory)
  public
    constructor create(); overload;
    class function getDefault(): JNSocketFactory; static; overload;
    function getDefaultCipherSuites(): Arr1JLString; overload; virtual; abstract;
    function getSupportedCipherSuites(): Arr1JLString; overload; virtual; abstract;
    function createSocket(para1: JNSocket; para2: JLString; para3: jint; para4: jboolean): JNSocket; overload; virtual; abstract;  // throws java.io.IOException
  end;

  JNSX509KeyManager = interface external 'javax.net.ssl' name 'X509KeyManager' (JNSKeyManager)
    function getClientAliases(para1: JLString; para2: Arr1JSPrincipal): Arr1JLString; overload;
    function getClientAliases(para1: JLString; var para2: array of JSPrincipal): Arr1JLString; overload;
    function chooseClientAlias(para1: Arr1JLString; para2: Arr1JSPrincipal; para3: JNSocket): JLString; overload;
    function chooseClientAlias(var para1: array of JLString; var para2: array of JSPrincipal; para3: JNSocket): JLString; overload;
    function getServerAliases(para1: JLString; para2: Arr1JSPrincipal): Arr1JLString; overload;
    function getServerAliases(para1: JLString; var para2: array of JSPrincipal): Arr1JLString; overload;
    function chooseServerAlias(para1: JLString; para2: Arr1JSPrincipal; para3: JNSocket): JLString; overload;
    function chooseServerAlias(para1: JLString; var para2: array of JSPrincipal; para3: JNSocket): JLString; overload;
    function getCertificateChain(para1: JLString): Arr1JSCX509Certificate; overload;
    function getPrivateKey(para1: JLString): JSPrivateKey; overload;
  end;

  JNSCertPathTrustManagerParameters = class external 'javax.net.ssl' name 'CertPathTrustManagerParameters' (JLObject, JNSManagerFactoryParameters)
  public
    constructor create(para1: JSCCertPathParameters); overload;
    function getParameters(): JSCCertPathParameters; overload; virtual;
  end;

  JNSX509TrustManager = interface external 'javax.net.ssl' name 'X509TrustManager' (JNSTrustManager)
    procedure checkClientTrusted(para1: Arr1JSCX509Certificate; para2: JLString); overload;  // throws java.security.cert.CertificateException
    procedure checkClientTrusted(var para1: array of JSCX509Certificate; para2: JLString); overload;  // throws java.security.cert.CertificateException
    procedure checkServerTrusted(para1: Arr1JSCX509Certificate; para2: JLString); overload;  // throws java.security.cert.CertificateException
    procedure checkServerTrusted(var para1: array of JSCX509Certificate; para2: JLString); overload;  // throws java.security.cert.CertificateException
    function getAcceptedIssuers(): Arr1JSCX509Certificate; overload;
  end;

  JPSimpleDoc = class sealed external 'javax.print' name 'SimpleDoc' (JLObject, JPDoc)
  public
    constructor create(para1: JLObject; para2: JPDocFlavor; para3: JPADocAttributeSet); overload;
    function getDocFlavor(): JPDocFlavor; overload; virtual;
    function getAttributes(): JPADocAttributeSet; overload; virtual;
    function getPrintData(): JLObject; overload; virtual;  // throws java.io.IOException
    function getReaderForText(): JIReader; overload; virtual;  // throws java.io.IOException
    function getStreamForBytes(): JIInputStream; overload; virtual;  // throws java.io.IOException
  end;

  JPCancelablePrintJob = interface external 'javax.print' name 'CancelablePrintJob' (JPDocPrintJob)
    procedure cancel(); overload;  // throws javax.print.PrintException
  end;

  JPMultiDocPrintJob = interface external 'javax.print' name 'MultiDocPrintJob' (JPDocPrintJob)
    procedure print(para1: JPMultiDoc; para2: JPAPrintRequestAttributeSet); overload;  // throws javax.print.PrintException
  end;

  JPMultiDocPrintService = interface external 'javax.print' name 'MultiDocPrintService' (JPPrintService)
    function createMultiDocPrintJob(): JPMultiDocPrintJob; overload;
  end;

  JPStreamPrintService = class abstract external 'javax.print' name 'StreamPrintService' (JLObject, JPPrintService)
  strict protected
    constructor create(para1: JIOutputStream); overload;
  public
    function getOutputStream(): JIOutputStream; overload; virtual;
    function getOutputFormat(): JLString; overload; virtual; abstract;
    procedure dispose(); overload; virtual;
    function isDisposed(): jboolean; overload; virtual;
  end;

  JPADocAttributeSet = interface external 'javax.print.attribute' name 'DocAttributeSet' (JPAAttributeSet)
    function add(para1: JPAAttribute): jboolean; overload;
    function addAll(para1: JPAAttributeSet): jboolean; overload;
  end;

  JPAHashAttributeSet = class external 'javax.print.attribute' name 'HashAttributeSet' (JLObject, JPAAttributeSet, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: JPAAttribute); overload;
    constructor create(para1: Arr1JPAAttribute); overload;
    constructor create(const para1: array of JPAAttribute); overload;
    constructor create(para1: JPAAttributeSet); overload;
  strict protected
    constructor create(para1: JLClass); overload;
    constructor create(para1: JPAAttribute; para2: JLClass); overload;
    constructor create(para1: Arr1JPAAttribute; para2: JLClass); overload;
    constructor create(const para1: array of JPAAttribute; para2: JLClass); overload;
    constructor create(para1: JPAAttributeSet; para2: JLClass); overload;
  public
    function get(para1: JLClass): JPAAttribute; overload; virtual;
    function add(para1: JPAAttribute): jboolean; overload; virtual;
    function remove(para1: JLClass): jboolean; overload; virtual;
    function remove(para1: JPAAttribute): jboolean; overload; virtual;
    function containsKey(para1: JLClass): jboolean; overload; virtual;
    function containsValue(para1: JPAAttribute): jboolean; overload; virtual;
    function addAll(para1: JPAAttributeSet): jboolean; overload; virtual;
    function size(): jint; overload; virtual;
    function toArray(): Arr1JPAAttribute; overload; virtual;
    procedure clear(); overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JPAPrintJobAttributeSet = interface external 'javax.print.attribute' name 'PrintJobAttributeSet' (JPAAttributeSet)
    function add(para1: JPAAttribute): jboolean; overload;
    function addAll(para1: JPAAttributeSet): jboolean; overload;
  end;

  JPAPrintRequestAttributeSet = interface external 'javax.print.attribute' name 'PrintRequestAttributeSet' (JPAAttributeSet)
    function add(para1: JPAAttribute): jboolean; overload;
    function addAll(para1: JPAAttributeSet): jboolean; overload;
  end;

  JPAPrintServiceAttributeSet = interface external 'javax.print.attribute' name 'PrintServiceAttributeSet' (JPAAttributeSet)
    function add(para1: JPAAttribute): jboolean; overload;
    function addAll(para1: JPAAttributeSet): jboolean; overload;
  end;

  JPEPrintJobAdapter = class abstract external 'javax.print.event' name 'PrintJobAdapter' (JLObject, JPEPrintJobListener)
  public
    constructor create(); overload;
    procedure printDataTransferCompleted(para1: JPEPrintJobEvent); overload; virtual;
    procedure printJobCompleted(para1: JPEPrintJobEvent); overload; virtual;
    procedure printJobFailed(para1: JPEPrintJobEvent); overload; virtual;
    procedure printJobCanceled(para1: JPEPrintJobEvent); overload; virtual;
    procedure printJobNoMoreEvents(para1: JPEPrintJobEvent); overload; virtual;
    procedure printJobRequiresAttention(para1: JPEPrintJobEvent); overload; virtual;
  end;

  JRCValueHandlerMultiFormat = interface external 'javax.rmi.CORBA' name 'ValueHandlerMultiFormat' (JRCValueHandler)
    function getMaximumStreamFormatVersion(): jbyte; overload;
    procedure writeValue(para1: OOCPOutputStream; para2: JISerializable; para3: jbyte); overload;
  end;

  JSSimpleScriptContext = class external 'javax.script' name 'SimpleScriptContext' (JLObject, JSScriptContext)
  strict protected
    var
      fwriter: JIWriter; external name 'writer';
      ferrorWriter: JIWriter; external name 'errorWriter';
      freader: JIReader; external name 'reader';
      fengineScope: JSBindings; external name 'engineScope';
      fglobalScope: JSBindings; external name 'globalScope';
  public
    constructor create(); overload;
    procedure setBindings(para1: JSBindings; para2: jint); overload; virtual;
    function getAttribute(para1: JLString): JLObject; overload; virtual;
    function getAttribute(para1: JLString; para2: jint): JLObject; overload; virtual;
    function removeAttribute(para1: JLString; para2: jint): JLObject; overload; virtual;
    procedure setAttribute(para1: JLString; para2: JLObject; para3: jint); overload; virtual;
    function getWriter(): JIWriter; overload; virtual;
    function getReader(): JIReader; overload; virtual;
    procedure setReader(para1: JIReader); overload; virtual;
    procedure setWriter(para1: JIWriter); overload; virtual;
    function getErrorWriter(): JIWriter; overload; virtual;
    procedure setErrorWriter(para1: JIWriter); overload; virtual;
    function getAttributesScope(para1: JLString): jint; overload; virtual;
    function getBindings(para1: jint): JSBindings; overload; virtual;
    function getScopes(): JUList; overload; virtual;
  end;

  JSAbstractScriptEngine = class abstract external 'javax.script' name 'AbstractScriptEngine' (JLObject, JSScriptEngine)
  strict protected
    var
      fcontext: JSScriptContext; external name 'context';
  public
    constructor create(); overload;
    constructor create(para1: JSBindings); overload;
    procedure setContext(para1: JSScriptContext); overload; virtual;
    function getContext(): JSScriptContext; overload; virtual;
    function getBindings(para1: jint): JSBindings; overload; virtual;
    procedure setBindings(para1: JSBindings; para2: jint); overload; virtual;
    procedure put(para1: JLString; para2: JLObject); overload; virtual;
    function get(para1: JLString): JLObject; overload; virtual;
    function eval(para1: JIReader; para2: JSBindings): JLObject; overload; virtual;  // throws javax.script.ScriptException
    function eval(para1: JLString; para2: JSBindings): JLObject; overload; virtual;  // throws javax.script.ScriptException
    function eval(para1: JIReader): JLObject; overload; virtual;  // throws javax.script.ScriptException
    function eval(para1: JLString): JLObject; overload; virtual;  // throws javax.script.ScriptException
  strict protected
    function getScriptContext(para1: JSBindings): JSScriptContext; overload; virtual;
  end;

  JSKeyStore = class external 'java.security' name 'KeyStore' (JLObject)
  public
    type
      InnerSimpleLoadStoreParameter = class;
      Arr1InnerSimpleLoadStoreParameter = array of InnerSimpleLoadStoreParameter;
      Arr2InnerSimpleLoadStoreParameter = array of Arr1InnerSimpleLoadStoreParameter;
      Arr3InnerSimpleLoadStoreParameter = array of Arr2InnerSimpleLoadStoreParameter;
      InnerSimpleLoadStoreParameter = class external 'java.security' name 'SimpleLoadStoreParameter' 
      end;

  public
    type
      InnerEntry = interface;
      Arr1InnerEntry = array of InnerEntry;
      Arr2InnerEntry = array of Arr1InnerEntry;
      Arr3InnerEntry = array of Arr2InnerEntry;
      InnerProtectionParameter = interface;
      Arr1InnerProtectionParameter = array of InnerProtectionParameter;
      Arr2InnerProtectionParameter = array of Arr1InnerProtectionParameter;
      Arr3InnerProtectionParameter = array of Arr2InnerProtectionParameter;
      InnerBuilder = class;
      Arr1InnerBuilder = array of InnerBuilder;
      Arr2InnerBuilder = array of Arr1InnerBuilder;
      Arr3InnerBuilder = array of Arr2InnerBuilder;
      InnerLoadStoreParameter = interface;
      Arr1InnerLoadStoreParameter = array of InnerLoadStoreParameter;
      Arr2InnerLoadStoreParameter = array of Arr1InnerLoadStoreParameter;
      Arr3InnerLoadStoreParameter = array of Arr2InnerLoadStoreParameter;
      InnerPrivateKeyEntry = class;
      Arr1InnerPrivateKeyEntry = array of InnerPrivateKeyEntry;
      Arr2InnerPrivateKeyEntry = array of Arr1InnerPrivateKeyEntry;
      Arr3InnerPrivateKeyEntry = array of Arr2InnerPrivateKeyEntry;
      InnerSecretKeyEntry = class;
      Arr1InnerSecretKeyEntry = array of InnerSecretKeyEntry;
      Arr2InnerSecretKeyEntry = array of Arr1InnerSecretKeyEntry;
      Arr3InnerSecretKeyEntry = array of Arr2InnerSecretKeyEntry;
      InnerTrustedCertificateEntry = class;
      Arr1InnerTrustedCertificateEntry = array of InnerTrustedCertificateEntry;
      Arr2InnerTrustedCertificateEntry = array of Arr1InnerTrustedCertificateEntry;
      Arr3InnerTrustedCertificateEntry = array of Arr2InnerTrustedCertificateEntry;
      InnerCallbackHandlerProtection = class;
      Arr1InnerCallbackHandlerProtection = array of InnerCallbackHandlerProtection;
      Arr2InnerCallbackHandlerProtection = array of Arr1InnerCallbackHandlerProtection;
      Arr3InnerCallbackHandlerProtection = array of Arr2InnerCallbackHandlerProtection;
      InnerPasswordProtection = class;
      Arr1InnerPasswordProtection = array of InnerPasswordProtection;
      Arr2InnerPasswordProtection = array of Arr1InnerPasswordProtection;
      Arr3InnerPasswordProtection = array of Arr2InnerPasswordProtection;
      InnerEntry = interface external 'java.security' name 'Entry' 
      end;

      InnerProtectionParameter = interface external 'java.security' name 'ProtectionParameter' 
      end;

      InnerBuilder = class abstract external 'java.security' name 'Builder' (JLObject)
      public
        type
          InnerFileBuilder = class;
          Arr1InnerFileBuilder = array of InnerFileBuilder;
          Arr2InnerFileBuilder = array of Arr1InnerFileBuilder;
          Arr3InnerFileBuilder = array of Arr2InnerFileBuilder;
          InnerFileBuilder = class sealed external 'java.security' name 'FileBuilder' 
          end;

      strict protected
        constructor create(); overload;
      public
        function getKeyStore(): JSKeyStore; overload; virtual; abstract;  // throws java.security.KeyStoreException
        function getProtectionParameter(para1: JLString): JSKeyStore.InnerProtectionParameter; overload; virtual; abstract;  // throws java.security.KeyStoreException
        class function newInstance(para1: JSKeyStore; para2: JSKeyStore.InnerProtectionParameter): JSKeyStore.InnerBuilder; static; overload;
        class function newInstance(para1: JLString; para2: JSProvider; para3: JIFile; para4: JSKeyStore.InnerProtectionParameter): JSKeyStore.InnerBuilder; static; overload;
        class function newInstance(para1: JLString; para2: JSProvider; para3: JSKeyStore.InnerProtectionParameter): JSKeyStore.InnerBuilder; static; overload;
      end;

      InnerLoadStoreParameter = interface external 'java.security' name 'LoadStoreParameter' 
        function getProtectionParameter(): JSKeyStore.InnerProtectionParameter; overload;
      end;

      InnerPrivateKeyEntry = class sealed external 'java.security' name 'PrivateKeyEntry' (JLObject, JSKeyStore.InnerEntry)
      public
        constructor create(para1: JSPrivateKey; para2: Arr1JSCCertificate); overload;
        constructor create(para1: JSPrivateKey; const para2: array of JSCCertificate); overload;
        function getPrivateKey(): JSPrivateKey; overload; virtual;
        function getCertificateChain(): Arr1JSCCertificate; overload; virtual;
        function getCertificate(): JSCCertificate; overload; virtual;
        function toString(): JLString; overload; virtual;
      end;

      InnerSecretKeyEntry = class sealed external 'java.security' name 'SecretKeyEntry' (JLObject, JSKeyStore.InnerEntry)
      public
        constructor create(para1: JCSecretKey); overload;
        function getSecretKey(): JCSecretKey; overload; virtual;
        function toString(): JLString; overload; virtual;
      end;

      InnerTrustedCertificateEntry = class sealed external 'java.security' name 'TrustedCertificateEntry' (JLObject, JSKeyStore.InnerEntry)
      public
        constructor create(para1: JSCCertificate); overload;
        function getTrustedCertificate(): JSCCertificate; overload; virtual;
        function toString(): JLString; overload; virtual;
      end;

      InnerCallbackHandlerProtection = class external 'java.security' name 'CallbackHandlerProtection' (JLObject, JSKeyStore.InnerProtectionParameter)
      public
        constructor create(para1: JSACCallbackHandler); overload;
        function getCallbackHandler(): JSACCallbackHandler; overload; virtual;
      end;

      InnerPasswordProtection = class external 'java.security' name 'PasswordProtection' (JLObject, JSKeyStore.InnerProtectionParameter, JSADestroyable)
      public
        constructor create(para1: Arr1jchar); overload;
        constructor create(const para1: array of jchar); overload;
        function getPassword(): Arr1jchar; overload; virtual;
        procedure destroy(); overload; virtual;  // throws javax.security.auth.DestroyFailedException
        function isDestroyed(): jboolean; overload; virtual;
      end;

  strict protected
    constructor create(para1: JSKeyStoreSpi; para2: JSProvider; para3: JLString); overload;
  public
    class function getInstance(para1: JLString): JSKeyStore; static; overload;  // throws java.security.KeyStoreException
    class function getInstance(para1: JLString; para2: JLString): JSKeyStore; static; overload;  // throws java.security.KeyStoreException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JSKeyStore; static; overload;  // throws java.security.KeyStoreException
    class function getDefaultType(): JLString; static; overload; final;
    function getProvider(): JSProvider; overload; virtual; final;
    function getType(): JLString; overload; virtual; final;
    function getKey(para1: JLString; para2: Arr1jchar): JSKey; overload; virtual; final;  // throws java.security.KeyStoreException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException
    function getKey(para1: JLString; var para2: array of jchar): JSKey; overload; virtual; final;  // throws java.security.KeyStoreException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException
    function getCertificateChain(para1: JLString): Arr1JSCCertificate; overload; virtual; final;  // throws java.security.KeyStoreException
    function getCertificate(para1: JLString): JSCCertificate; overload; virtual; final;  // throws java.security.KeyStoreException
    function getCreationDate(para1: JLString): JUDate; overload; virtual; final;  // throws java.security.KeyStoreException
    procedure setKeyEntry(para1: JLString; para2: JSKey; para3: Arr1jchar; para4: Arr1JSCCertificate); overload; virtual; final;  // throws java.security.KeyStoreException
    procedure setKeyEntry(para1: JLString; para2: JSKey; var para3: array of jchar; var para4: array of JSCCertificate); overload; virtual; final;  // throws java.security.KeyStoreException
    procedure setKeyEntry(para1: JLString; para2: Arr1jbyte; para3: Arr1JSCCertificate); overload; virtual; final;  // throws java.security.KeyStoreException
    procedure setKeyEntry(para1: JLString; var para2: array of jbyte; var para3: array of JSCCertificate); overload; virtual; final;  // throws java.security.KeyStoreException
    procedure setCertificateEntry(para1: JLString; para2: JSCCertificate); overload; virtual; final;  // throws java.security.KeyStoreException
    procedure deleteEntry(para1: JLString); overload; virtual; final;  // throws java.security.KeyStoreException
    function aliases(): JUEnumeration; overload; virtual; final;  // throws java.security.KeyStoreException
    function containsAlias(para1: JLString): jboolean; overload; virtual; final;  // throws java.security.KeyStoreException
    function size(): jint; overload; virtual; final;  // throws java.security.KeyStoreException
    function isKeyEntry(para1: JLString): jboolean; overload; virtual; final;  // throws java.security.KeyStoreException
    function isCertificateEntry(para1: JLString): jboolean; overload; virtual; final;  // throws java.security.KeyStoreException
    function getCertificateAlias(para1: JSCCertificate): JLString; overload; virtual; final;  // throws java.security.KeyStoreException
    procedure store(para1: JIOutputStream; para2: Arr1jchar); overload; virtual; final;  // throws java.security.KeyStoreException, java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
    procedure store(para1: JIOutputStream; var para2: array of jchar); overload; virtual; final;  // throws java.security.KeyStoreException, java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
    procedure store(para1: JSKeyStore.InnerLoadStoreParameter); overload; virtual; final;  // throws java.security.KeyStoreException, java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
    procedure load(para1: JIInputStream; para2: Arr1jchar); overload; virtual; final;  // throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
    procedure load(para1: JIInputStream; var para2: array of jchar); overload; virtual; final;  // throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
    procedure load(para1: JSKeyStore.InnerLoadStoreParameter); overload; virtual; final;  // throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
    function getEntry(para1: JLString; para2: JSKeyStore.InnerProtectionParameter): JSKeyStore.InnerEntry; overload; virtual; final;  // throws java.security.NoSuchAlgorithmException, java.security.UnrecoverableEntryException, java.security.KeyStoreException
    procedure setEntry(para1: JLString; para2: JSKeyStore.InnerEntry; para3: JSKeyStore.InnerProtectionParameter); overload; virtual; final;  // throws java.security.KeyStoreException
    function entryInstanceOf(para1: JLString; para2: JLClass): jboolean; overload; virtual; final;  // throws java.security.KeyStoreException
  end;

  JSAXX500PrivateCredential = class sealed external 'javax.security.auth.x500' name 'X500PrivateCredential' (JLObject, JSADestroyable)
  public
    constructor create(para1: JSCX509Certificate; para2: JSPrivateKey); overload;
    constructor create(para1: JSCX509Certificate; para2: JSPrivateKey; para3: JLString); overload;
    function getCertificate(): JSCX509Certificate; overload; virtual;
    function getPrivateKey(): JSPrivateKey; overload; virtual;
    function getAlias(): JLString; overload; virtual;
    procedure destroy(); overload; virtual;
    function isDestroyed(): jboolean; overload; virtual;
  end;

  JSAKKerberosTicket = class external 'javax.security.auth.kerberos' name 'KerberosTicket' (JLObject, JSADestroyable, JSARefreshable, JISerializable)
  public
    constructor create(para1: Arr1jbyte; para2: JSAKKerberosPrincipal; para3: JSAKKerberosPrincipal; para4: Arr1jbyte; para5: jint; para6: Arr1jboolean; para7: JUDate; para8: JUDate; para9: JUDate; para10: JUDate; para11: Arr1JNInetAddress); overload;
    constructor create(const para1: array of jbyte; para2: JSAKKerberosPrincipal; para3: JSAKKerberosPrincipal; const para4: array of jbyte; para5: jint; const para6: array of jboolean; para7: JUDate; para8: JUDate; para9: JUDate; para10: JUDate; const para11: array of JNInetAddress); overload;
    function getClient(): JSAKKerberosPrincipal; overload; virtual; final;
    function getServer(): JSAKKerberosPrincipal; overload; virtual; final;
    function getSessionKey(): JCSecretKey; overload; virtual; final;
    function getSessionKeyType(): jint; overload; virtual; final;
    function isForwardable(): jboolean; overload; virtual; final;
    function isForwarded(): jboolean; overload; virtual; final;
    function isProxiable(): jboolean; overload; virtual; final;
    function isProxy(): jboolean; overload; virtual; final;
    function isPostdated(): jboolean; overload; virtual; final;
    function isRenewable(): jboolean; overload; virtual; final;
    function isInitial(): jboolean; overload; virtual; final;
    function getFlags(): Arr1jboolean; overload; virtual; final;
    function getAuthTime(): JUDate; overload; virtual; final;
    function getStartTime(): JUDate; overload; virtual; final;
    function getEndTime(): JUDate; overload; virtual; final;
    function getRenewTill(): JUDate; overload; virtual; final;
    function getClientAddresses(): Arr1JNInetAddress; overload; virtual; final;
    function getEncoded(): Arr1jbyte; overload; virtual; final;
    function isCurrent(): jboolean; overload; virtual;
    procedure refresh(); overload; virtual;  // throws javax.security.auth.RefreshFailedException
    procedure destroy(); overload; virtual;  // throws javax.security.auth.DestroyFailedException
    function isDestroyed(): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JSACChoiceCallback = class external 'javax.security.auth.callback' name 'ChoiceCallback' (JLObject, JSACCallback, JISerializable)
  public
    constructor create(para1: JLString; para2: Arr1JLString; para3: jint; para4: jboolean); overload;
    constructor create(para1: JLString; const para2: array of JLString; para3: jint; para4: jboolean); overload;
    function getPrompt(): JLString; overload; virtual;
    function getChoices(): Arr1JLString; overload; virtual;
    function getDefaultChoice(): jint; overload; virtual;
    function allowMultipleSelections(): jboolean; overload; virtual;
    procedure setSelectedIndex(para1: jint); overload; virtual;
    procedure setSelectedIndexes(para1: Arr1jint); overload; virtual;
    procedure setSelectedIndexes(var para1: array of jint); overload; virtual;
    function getSelectedIndexes(): Arr1jint; overload; virtual;
  end;

  JSACConfirmationCallback = class external 'javax.security.auth.callback' name 'ConfirmationCallback' (JLObject, JSACCallback, JISerializable)
  public
    const
      UNSPECIFIED_OPTION = -1;
      YES_NO_OPTION = 0;
      YES_NO_CANCEL_OPTION = 1;
      OK_CANCEL_OPTION = 2;
      YES = 0;
      NO = 1;
      CANCEL = 2;
      OK = 3;
      INFORMATION = 0;
      WARNING = 1;
      ERROR = 2;
  public
    constructor create(para1: jint; para2: jint; para3: jint); overload;
    constructor create(para1: jint; para2: Arr1JLString; para3: jint); overload;
    constructor create(para1: jint; const para2: array of JLString; para3: jint); overload;
    constructor create(para1: JLString; para2: jint; para3: jint; para4: jint); overload;
    constructor create(para1: JLString; para2: jint; para3: Arr1JLString; para4: jint); overload;
    constructor create(para1: JLString; para2: jint; const para3: array of JLString; para4: jint); overload;
    function getPrompt(): JLString; overload; virtual;
    function getMessageType(): jint; overload; virtual;
    function getOptionType(): jint; overload; virtual;
    function getOptions(): Arr1JLString; overload; virtual;
    function getDefaultOption(): jint; overload; virtual;
    procedure setSelectedIndex(para1: jint); overload; virtual;
    function getSelectedIndex(): jint; overload; virtual;
  end;

  JSACLanguageCallback = class external 'javax.security.auth.callback' name 'LanguageCallback' (JLObject, JSACCallback, JISerializable)
  public
    constructor create(); overload;
    procedure setLocale(para1: JULocale); overload; virtual;
    function getLocale(): JULocale; overload; virtual;
  end;

  JSACNameCallback = class external 'javax.security.auth.callback' name 'NameCallback' (JLObject, JSACCallback, JISerializable)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    function getPrompt(): JLString; overload; virtual;
    function getDefaultName(): JLString; overload; virtual;
    procedure setName(para1: JLString); overload; virtual;
    function getName(): JLString; overload; virtual;
  end;

  JSACPasswordCallback = class external 'javax.security.auth.callback' name 'PasswordCallback' (JLObject, JSACCallback, JISerializable)
  public
    constructor create(para1: JLString; para2: jboolean); overload;
    function getPrompt(): JLString; overload; virtual;
    function isEchoOn(): jboolean; overload; virtual;
    procedure setPassword(para1: Arr1jchar); overload; virtual;
    procedure setPassword(var para1: array of jchar); overload; virtual;
    function getPassword(): Arr1jchar; overload; virtual;
    procedure clearPassword(); overload; virtual;
  end;

  JSACTextInputCallback = class external 'javax.security.auth.callback' name 'TextInputCallback' (JLObject, JSACCallback, JISerializable)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    function getPrompt(): JLString; overload; virtual;
    function getDefaultText(): JLString; overload; virtual;
    procedure setText(para1: JLString); overload; virtual;
    function getText(): JLString; overload; virtual;
  end;

  JSACTextOutputCallback = class external 'javax.security.auth.callback' name 'TextOutputCallback' (JLObject, JSACCallback, JISerializable)
  public
    const
      INFORMATION = 0;
      WARNING = 1;
      ERROR = 2;
  public
    constructor create(para1: jint; para2: JLString); overload;
    function getMessageType(): jint; overload; virtual;
    function getMessage(): JLString; overload; virtual;
  end;

  JSSAuthorizeCallback = class external 'javax.security.sasl' name 'AuthorizeCallback' (JLObject, JSACCallback, JISerializable)
  public
    constructor create(para1: JLString; para2: JLString); overload;
    function getAuthenticationID(): JLString; overload; virtual;
    function getAuthorizationID(): JLString; overload; virtual;
    function isAuthorized(): jboolean; overload; virtual;
    procedure setAuthorized(para1: jboolean); overload; virtual;
    function getAuthorizedID(): JLString; overload; virtual;
    procedure setAuthorizedID(para1: JLString); overload; virtual;
  end;

  JSURIParameter = class external 'java.security' name 'URIParameter' (JLObject, JSPolicy.InnerParameters, JSALConfiguration.InnerParameters)
  public
    constructor create(para1: JNURI); overload;
    function getURI(): JNURI; overload; virtual;
  end;

  JxSCX509Certificate = class abstract external 'javax.security.cert' name 'X509Certificate' (JxSCCertificate)
  public
    constructor create(); overload;
    class function getInstance(para1: JIInputStream): JxSCX509Certificate; static; overload; final;  // throws javax.security.cert.CertificateException
    class function getInstance(para1: Arr1jbyte): JxSCX509Certificate; static; overload; final;  // throws javax.security.cert.CertificateException
    class function getInstance(var para1: array of jbyte): JxSCX509Certificate; static; overload; final;  // throws javax.security.cert.CertificateException
    procedure checkValidity(); overload; virtual; abstract;  // throws javax.security.cert.CertificateExpiredException, javax.security.cert.CertificateNotYetValidException
    procedure checkValidity(para1: JUDate); overload; virtual; abstract;  // throws javax.security.cert.CertificateExpiredException, javax.security.cert.CertificateNotYetValidException
    function getVersion(): jint; overload; virtual; abstract;
    function getSerialNumber(): JMBigInteger; overload; virtual; abstract;
    function getIssuerDN(): JSPrincipal; overload; virtual; abstract;
    function getSubjectDN(): JSPrincipal; overload; virtual; abstract;
    function getNotBefore(): JUDate; overload; virtual; abstract;
    function getNotAfter(): JUDate; overload; virtual; abstract;
    function getSigAlgName(): JLString; overload; virtual; abstract;
    function getSigAlgOID(): JLString; overload; virtual; abstract;
    function getSigAlgParams(): Arr1jbyte; overload; virtual; abstract;
  end;

  JSMMidiSystem = class external 'javax.sound.midi' name 'MidiSystem' (JLObject)
  public
    class function getMidiDeviceInfo(): JSMMidiDevice.Arr1InnerInfo; static; overload;
    class function getMidiDevice(para1: JSMMidiDevice.InnerInfo): JSMMidiDevice; static; overload;  // throws javax.sound.midi.MidiUnavailableException
    class function getReceiver(): JSMReceiver; static; overload;  // throws javax.sound.midi.MidiUnavailableException
    class function getTransmitter(): JSMTransmitter; static; overload;  // throws javax.sound.midi.MidiUnavailableException
    class function getSynthesizer(): JSMSynthesizer; static; overload;  // throws javax.sound.midi.MidiUnavailableException
    class function getSequencer(): JSMSequencer; static; overload;  // throws javax.sound.midi.MidiUnavailableException
    class function getSequencer(para1: jboolean): JSMSequencer; static; overload;  // throws javax.sound.midi.MidiUnavailableException
    class function getSoundbank(para1: JIInputStream): JSMSoundbank; static; overload;  // throws javax.sound.midi.InvalidMidiDataException, java.io.IOException
    class function getSoundbank(para1: JNURL): JSMSoundbank; static; overload;  // throws javax.sound.midi.InvalidMidiDataException, java.io.IOException
    class function getSoundbank(para1: JIFile): JSMSoundbank; static; overload;  // throws javax.sound.midi.InvalidMidiDataException, java.io.IOException
    class function getMidiFileFormat(para1: JIInputStream): JSMMidiFileFormat; static; overload;  // throws javax.sound.midi.InvalidMidiDataException, java.io.IOException
    class function getMidiFileFormat(para1: JNURL): JSMMidiFileFormat; static; overload;  // throws javax.sound.midi.InvalidMidiDataException, java.io.IOException
    class function getMidiFileFormat(para1: JIFile): JSMMidiFileFormat; static; overload;  // throws javax.sound.midi.InvalidMidiDataException, java.io.IOException
    class function getSequence(para1: JIInputStream): JSMSequence; static; overload;  // throws javax.sound.midi.InvalidMidiDataException, java.io.IOException
    class function getSequence(para1: JNURL): JSMSequence; static; overload;  // throws javax.sound.midi.InvalidMidiDataException, java.io.IOException
    class function getSequence(para1: JIFile): JSMSequence; static; overload;  // throws javax.sound.midi.InvalidMidiDataException, java.io.IOException
    class function getMidiFileTypes(): Arr1jint; static; overload;
    class function isFileTypeSupported(para1: jint): jboolean; static; overload;
    class function getMidiFileTypes(para1: JSMSequence): Arr1jint; static; overload;
    class function isFileTypeSupported(para1: jint; para2: JSMSequence): jboolean; static; overload;
    class function write(para1: JSMSequence; para2: jint; para3: JIOutputStream): jint; static; overload;  // throws java.io.IOException
    class function write(para1: JSMSequence; para2: jint; para3: JIFile): jint; static; overload;  // throws java.io.IOException
  end;

  JSMSequencer = interface external 'javax.sound.midi' name 'Sequencer' (JSMMidiDevice)
    type
      InnerSyncMode = class;
      Arr1InnerSyncMode = array of InnerSyncMode;
      Arr2InnerSyncMode = array of Arr1InnerSyncMode;
      Arr3InnerSyncMode = array of Arr2InnerSyncMode;
      InnerSyncMode = class external 'javax.sound.midi' name 'SyncMode' (JLObject)
      public
        final class var
          fINTERNAL_CLOCK: JSMSequencer.InnerSyncMode; external name 'INTERNAL_CLOCK';
          fMIDI_SYNC: JSMSequencer.InnerSyncMode; external name 'MIDI_SYNC';
          fMIDI_TIME_CODE: JSMSequencer.InnerSyncMode; external name 'MIDI_TIME_CODE';
          fNO_SYNC: JSMSequencer.InnerSyncMode; external name 'NO_SYNC';
      strict protected
        constructor create(para1: JLString); overload;
      public
        function equals(para1: JLObject): jboolean; overload; virtual; final;
        function hashCode(): jint; overload; virtual; final;
        function toString(): JLString; overload; virtual; final;
      end;

    const
      LOOP_CONTINUOUSLY = -1;
    procedure setSequence(para1: JSMSequence); overload;  // throws javax.sound.midi.InvalidMidiDataException
    procedure setSequence(para1: JIInputStream); overload;  // throws java.io.IOException, javax.sound.midi.InvalidMidiDataException
    function getSequence(): JSMSequence; overload;
    procedure start(); overload;
    procedure stop(); overload;
    function isRunning(): jboolean; overload;
    procedure startRecording(); overload;
    procedure stopRecording(); overload;
    function isRecording(): jboolean; overload;
    procedure recordEnable(para1: JSMTrack; para2: jint); overload;
    procedure recordDisable(para1: JSMTrack); overload;
    function getTempoInBPM(): jfloat; overload;
    procedure setTempoInBPM(para1: jfloat); overload;
    function getTempoInMPQ(): jfloat; overload;
    procedure setTempoInMPQ(para1: jfloat); overload;
    procedure setTempoFactor(para1: jfloat); overload;
    function getTempoFactor(): jfloat; overload;
    function getTickLength(): jlong; overload;
    function getTickPosition(): jlong; overload;
    procedure setTickPosition(para1: jlong); overload;
    function getMicrosecondLength(): jlong; overload;
    function getMicrosecondPosition(): jlong; overload;
    procedure setMicrosecondPosition(para1: jlong); overload;
    procedure setMasterSyncMode(para1: JSMSequencer.InnerSyncMode); overload;
    function getMasterSyncMode(): JSMSequencer.InnerSyncMode; overload;
    function getMasterSyncModes(): JSMSequencer.Arr1InnerSyncMode; overload;
    procedure setSlaveSyncMode(para1: JSMSequencer.InnerSyncMode); overload;
    function getSlaveSyncMode(): JSMSequencer.InnerSyncMode; overload;
    function getSlaveSyncModes(): JSMSequencer.Arr1InnerSyncMode; overload;
    procedure setTrackMute(para1: jint; para2: jboolean); overload;
    function getTrackMute(para1: jint): jboolean; overload;
    procedure setTrackSolo(para1: jint; para2: jboolean); overload;
    function getTrackSolo(para1: jint): jboolean; overload;
    function addMetaEventListener(para1: JSMMetaEventListener): jboolean; overload;
    procedure removeMetaEventListener(para1: JSMMetaEventListener); overload;
    function addControllerEventListener(para1: JSMControllerEventListener; para2: Arr1jint): Arr1jint; overload;
    function addControllerEventListener(para1: JSMControllerEventListener; var para2: array of jint): Arr1jint; overload;
    function removeControllerEventListener(para1: JSMControllerEventListener; para2: Arr1jint): Arr1jint; overload;
    function removeControllerEventListener(para1: JSMControllerEventListener; var para2: array of jint): Arr1jint; overload;
    procedure setLoopStartPoint(para1: jlong); overload;
    function getLoopStartPoint(): jlong; overload;
    procedure setLoopEndPoint(para1: jlong); overload;
    function getLoopEndPoint(): jlong; overload;
    procedure setLoopCount(para1: jint); overload;
    function getLoopCount(): jint; overload;
  end;

  JSMSynthesizer = interface external 'javax.sound.midi' name 'Synthesizer' (JSMMidiDevice)
    function getMaxPolyphony(): jint; overload;
    function getLatency(): jlong; overload;
    function getChannels(): Arr1JSMMidiChannel; overload;
    function getVoiceStatus(): Arr1JSMVoiceStatus; overload;
    function isSoundbankSupported(para1: JSMSoundbank): jboolean; overload;
    function loadInstrument(para1: JSMInstrument): jboolean; overload;
    procedure unloadInstrument(para1: JSMInstrument); overload;
    function remapInstrument(para1: JSMInstrument; para2: JSMInstrument): jboolean; overload;
    function getDefaultSoundbank(): JSMSoundbank; overload;
    function getAvailableInstruments(): Arr1JSMInstrument; overload;
    function getLoadedInstruments(): Arr1JSMInstrument; overload;
    function loadAllInstruments(para1: JSMSoundbank): jboolean; overload;
    procedure unloadAllInstruments(para1: JSMSoundbank); overload;
    function loadInstruments(para1: JSMSoundbank; para2: Arr1JSMPatch): jboolean; overload;
    function loadInstruments(para1: JSMSoundbank; var para2: array of JSMPatch): jboolean; overload;
    procedure unloadInstruments(para1: JSMSoundbank; para2: Arr1JSMPatch); overload;
    procedure unloadInstruments(para1: JSMSoundbank; var para2: array of JSMPatch); overload;
  end;

  JSMSMidiDeviceProvider = class abstract external 'javax.sound.midi.spi' name 'MidiDeviceProvider' (JLObject)
  public
    constructor create(); overload;
    function isDeviceSupported(para1: JSMMidiDevice.InnerInfo): jboolean; overload; virtual;
    function getDeviceInfo(): JSMMidiDevice.Arr1InnerInfo; overload; virtual; abstract;
    function getDevice(para1: JSMMidiDevice.InnerInfo): JSMMidiDevice; overload; virtual; abstract;
  end;

  JSMInstrument = class abstract external 'javax.sound.midi' name 'Instrument' (JSMSoundbankResource)
  strict protected
    constructor create(para1: JSMSoundbank; para2: JSMPatch; para3: JLString; para4: JLClass); overload;
  public
    function getPatch(): JSMPatch; overload; virtual;
  end;

  JSSSAudioFileWriter = class abstract external 'javax.sound.sampled.spi' name 'AudioFileWriter' (JLObject)
  public
    constructor create(); overload;
    function getAudioFileTypes(): JSSAudioFileFormat.Arr1InnerType; overload; virtual; abstract;
    function isFileTypeSupported(para1: JSSAudioFileFormat.InnerType): jboolean; overload; virtual;
    function getAudioFileTypes(para1: JSSAudioInputStream): JSSAudioFileFormat.Arr1InnerType; overload; virtual; abstract;
    function isFileTypeSupported(para1: JSSAudioFileFormat.InnerType; para2: JSSAudioInputStream): jboolean; overload; virtual;
    function write(para1: JSSAudioInputStream; para2: JSSAudioFileFormat.InnerType; para3: JIOutputStream): jint; overload; virtual; abstract;  // throws java.io.IOException
    function write(para1: JSSAudioInputStream; para2: JSSAudioFileFormat.InnerType; para3: JIFile): jint; overload; virtual; abstract;  // throws java.io.IOException
  end;

  JSSSFormatConversionProvider = class abstract external 'javax.sound.sampled.spi' name 'FormatConversionProvider' (JLObject)
  public
    constructor create(); overload;
    function getSourceEncodings(): JSSAudioFormat.Arr1InnerEncoding; overload; virtual; abstract;
    function getTargetEncodings(): JSSAudioFormat.Arr1InnerEncoding; overload; virtual; abstract;
    function isSourceEncodingSupported(para1: JSSAudioFormat.InnerEncoding): jboolean; overload; virtual;
    function isTargetEncodingSupported(para1: JSSAudioFormat.InnerEncoding): jboolean; overload; virtual;
    function getTargetEncodings(para1: JSSAudioFormat): JSSAudioFormat.Arr1InnerEncoding; overload; virtual; abstract;
    function isConversionSupported(para1: JSSAudioFormat.InnerEncoding; para2: JSSAudioFormat): jboolean; overload; virtual;
    function getTargetFormats(para1: JSSAudioFormat.InnerEncoding; para2: JSSAudioFormat): Arr1JSSAudioFormat; overload; virtual; abstract;
    function isConversionSupported(para1: JSSAudioFormat; para2: JSSAudioFormat): jboolean; overload; virtual;
    function getAudioInputStream(para1: JSSAudioFormat.InnerEncoding; para2: JSSAudioInputStream): JSSAudioInputStream; overload; virtual; abstract;
    function getAudioInputStream(para1: JSSAudioFormat; para2: JSSAudioInputStream): JSSAudioInputStream; overload; virtual; abstract;
  end;

  JSSBooleanControl = class abstract external 'javax.sound.sampled' name 'BooleanControl' (JSSControl)
  public
    type
      InnerType = class;
      Arr1InnerType = array of InnerType;
      Arr2InnerType = array of Arr1InnerType;
      Arr3InnerType = array of Arr2InnerType;
      InnerType = class external 'javax.sound.sampled' name 'Type' (JSSControl.InnerType)
      public
        final class var
          fMUTE: JSSBooleanControl.InnerType; external name 'MUTE';
          fAPPLY_REVERB: JSSBooleanControl.InnerType; external name 'APPLY_REVERB';
      strict protected
        constructor create(para1: JLString); overload;
      end;

  strict protected
    constructor create(para1: JSSBooleanControl.InnerType; para2: jboolean; para3: JLString; para4: JLString); overload;
    constructor create(para1: JSSBooleanControl.InnerType; para2: jboolean); overload;
  public
    procedure setValue(para1: jboolean); overload; virtual;
    function getValue(): jboolean; overload; virtual;
    function getStateLabel(para1: jboolean): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSSCompoundControl = class abstract external 'javax.sound.sampled' name 'CompoundControl' (JSSControl)
  public
    type
      InnerType = class;
      Arr1InnerType = array of InnerType;
      Arr2InnerType = array of Arr1InnerType;
      Arr3InnerType = array of Arr2InnerType;
      InnerType = class external 'javax.sound.sampled' name 'Type' (JSSControl.InnerType)
      strict protected
        constructor create(para1: JLString); overload;
      end;

  strict protected
    constructor create(para1: JSSCompoundControl.InnerType; para2: Arr1JSSControl); overload;
    constructor create(para1: JSSCompoundControl.InnerType; const para2: array of JSSControl); overload;
  public
    function getMemberControls(): Arr1JSSControl; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSSEnumControl = class abstract external 'javax.sound.sampled' name 'EnumControl' (JSSControl)
  public
    type
      InnerType = class;
      Arr1InnerType = array of InnerType;
      Arr2InnerType = array of Arr1InnerType;
      Arr3InnerType = array of Arr2InnerType;
      InnerType = class external 'javax.sound.sampled' name 'Type' (JSSControl.InnerType)
      public
        final class var
          fREVERB: JSSEnumControl.InnerType; external name 'REVERB';
      strict protected
        constructor create(para1: JLString); overload;
      end;

  strict protected
    constructor create(para1: JSSEnumControl.InnerType; para2: Arr1JLObject; para3: JLObject); overload;
    constructor create(para1: JSSEnumControl.InnerType; const para2: array of JLObject; para3: JLObject); overload;
  public
    procedure setValue(para1: JLObject); overload; virtual;
    function getValue(): JLObject; overload; virtual;
    function getValues(): Arr1JLObject; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSSFloatControl = class abstract external 'javax.sound.sampled' name 'FloatControl' (JSSControl)
  public
    type
      InnerType = class;
      Arr1InnerType = array of InnerType;
      Arr2InnerType = array of Arr1InnerType;
      Arr3InnerType = array of Arr2InnerType;
      InnerType = class external 'javax.sound.sampled' name 'Type' (JSSControl.InnerType)
      public
        final class var
          fMASTER_GAIN: JSSFloatControl.InnerType; external name 'MASTER_GAIN';
          fAUX_SEND: JSSFloatControl.InnerType; external name 'AUX_SEND';
          fAUX_RETURN: JSSFloatControl.InnerType; external name 'AUX_RETURN';
          fREVERB_SEND: JSSFloatControl.InnerType; external name 'REVERB_SEND';
          fREVERB_RETURN: JSSFloatControl.InnerType; external name 'REVERB_RETURN';
          fVOLUME: JSSFloatControl.InnerType; external name 'VOLUME';
          fPAN: JSSFloatControl.InnerType; external name 'PAN';
          fBALANCE: JSSFloatControl.InnerType; external name 'BALANCE';
          fSAMPLE_RATE: JSSFloatControl.InnerType; external name 'SAMPLE_RATE';
      strict protected
        constructor create(para1: JLString); overload;
      end;

  strict protected
    constructor create(para1: JSSFloatControl.InnerType; para2: jfloat; para3: jfloat; para4: jfloat; para5: jint; para6: jfloat; para7: JLString; para8: JLString; para9: JLString; para10: JLString); overload;
    constructor create(para1: JSSFloatControl.InnerType; para2: jfloat; para3: jfloat; para4: jfloat; para5: jint; para6: jfloat; para7: JLString); overload;
  public
    procedure setValue(para1: jfloat); overload; virtual;
    function getValue(): jfloat; overload; virtual;
    function getMaximum(): jfloat; overload; virtual;
    function getMinimum(): jfloat; overload; virtual;
    function getUnits(): JLString; overload; virtual;
    function getMinLabel(): JLString; overload; virtual;
    function getMidLabel(): JLString; overload; virtual;
    function getMaxLabel(): JLString; overload; virtual;
    function getPrecision(): jfloat; overload; virtual;
    function getUpdatePeriod(): jint; overload; virtual;
    procedure shift(para1: jfloat; para2: jfloat; para3: jint); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSSLine = interface external 'javax.sound.sampled' name 'Line' 
    type
      InnerInfo = class;
      Arr1InnerInfo = array of InnerInfo;
      Arr2InnerInfo = array of Arr1InnerInfo;
      Arr3InnerInfo = array of Arr2InnerInfo;
      InnerInfo = class external 'javax.sound.sampled' name 'Info' (JLObject)
      public
        constructor create(para1: JLClass); overload;
        function getLineClass(): JLClass; overload; virtual;
        function matches(para1: JSSLine.InnerInfo): jboolean; overload; virtual;
        function toString(): JLString; overload; virtual;
      end;

    function getLineInfo(): JSSLine.InnerInfo; overload;
    procedure open(); overload;  // throws javax.sound.sampled.LineUnavailableException
    procedure close(); overload;
    function isOpen(): jboolean; overload;
    function getControls(): Arr1JSSControl; overload;
    function isControlSupported(para1: JSSControl.InnerType): jboolean; overload;
    function getControl(para1: JSSControl.InnerType): JSSControl; overload;
    procedure addLineListener(para1: JSSLineListener); overload;
    procedure removeLineListener(para1: JSSLineListener); overload;
  end;

  JSConnectionPoolDataSource = interface external 'javax.sql' name 'ConnectionPoolDataSource' (JSCommonDataSource)
    function getPooledConnection(): JSPooledConnection; overload;  // throws java.sql.SQLException
    function getPooledConnection(para1: JLString; para2: JLString): JSPooledConnection; overload;  // throws java.sql.SQLException
  end;

  JSDataSource = interface external 'javax.sql' name 'DataSource' (JSCommonDataSource, JSWrapper)
    function getConnection(): JSConnection; overload;  // throws java.sql.SQLException
    function getConnection(para1: JLString; para2: JLString): JSConnection; overload;  // throws java.sql.SQLException
  end;

  JSXADataSource = interface external 'javax.sql' name 'XADataSource' (JSCommonDataSource)
    function getXAConnection(): JSXAConnection; overload;  // throws java.sql.SQLException
    function getXAConnection(para1: JLString; para2: JLString): JSXAConnection; overload;  // throws java.sql.SQLException
  end;

  JSXAConnection = interface external 'javax.sql' name 'XAConnection' (JSPooledConnection)
    function getXAResource(): JTXXAResource; overload;  // throws java.sql.SQLException
  end;

  JSRSXmlReader = interface external 'javax.sql.rowset.spi' name 'XmlReader' (JSRowSetReader)
    procedure readXML(para1: JSRWebRowSet; para2: JIReader); overload;  // throws java.sql.SQLException
  end;

  JSRSTransactionalWriter = interface external 'javax.sql.rowset.spi' name 'TransactionalWriter' (JSRowSetWriter)
    procedure commit(); overload;  // throws java.sql.SQLException
    procedure rollback(); overload;  // throws java.sql.SQLException
    procedure rollback(para1: JSSavepoint); overload;  // throws java.sql.SQLException
  end;

  JSRSXmlWriter = interface external 'javax.sql.rowset.spi' name 'XmlWriter' (JSRowSetWriter)
    procedure writeXML(para1: JSRWebRowSet; para2: JIWriter); overload;  // throws java.sql.SQLException
  end;

  JSRSProviderImpl = class external 'javax.sql.rowset.spi' name 'ProviderImpl' (JSRSSyncProvider)
  public
    procedure setClassname(para1: JLString); overload; virtual;
    function getClassname(): JLString; overload; virtual;
    procedure setVendor(para1: JLString); overload; virtual;
    function getVendor(): JLString; overload; virtual;
    procedure setVersion(para1: JLString); overload; virtual;
    function getVersion(): JLString; overload; virtual;
    procedure setIndex(para1: jint); overload; virtual;
    function getIndex(): jint; overload; virtual;
    function getDataSourceLock(): jint; overload; virtual;  // throws javax.sql.rowset.spi.SyncProviderException
    function getProviderGrade(): jint; overload; virtual;
    function getProviderID(): JLString; overload; virtual;
    function getRowSetReader(): JSRowSetReader; overload; virtual;
    function getRowSetWriter(): JSRowSetWriter; overload; virtual;
    procedure setDataSourceLock(para1: jint); overload; virtual;  // throws javax.sql.rowset.spi.SyncProviderException
    function supportsUpdatableView(): jint; overload; virtual;
  end;

  JSDefaultBoundedRangeModel = class external 'javax.swing' name 'DefaultBoundedRangeModel' (JLObject, JSBoundedRangeModel, JISerializable)
  strict protected
    var
      fchangeEvent: JSEChangeEvent; external name 'changeEvent';
      flistenerList: JSEEventListenerList; external name 'listenerList';
  public
    constructor create(); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint); overload;
    function getValue(): jint; overload; virtual;
    function getExtent(): jint; overload; virtual;
    function getMinimum(): jint; overload; virtual;
    function getMaximum(): jint; overload; virtual;
    procedure setValue(para1: jint); overload; virtual;
    procedure setExtent(para1: jint); overload; virtual;
    procedure setMinimum(para1: jint); overload; virtual;
    procedure setMaximum(para1: jint); overload; virtual;
    procedure setValueIsAdjusting(para1: jboolean); overload; virtual;
    function getValueIsAdjusting(): jboolean; overload; virtual;
    procedure setRangeProperties(para1: jint; para2: jint; para3: jint; para4: jint; para5: jboolean); overload; virtual;
    procedure addChangeListener(para1: JSEChangeListener); overload; virtual;
    procedure removeChangeListener(para1: JSEChangeListener); overload; virtual;
    function getChangeListeners(): Arr1JSEChangeListener; overload; virtual;
  strict protected
    procedure fireStateChanged(); overload; virtual;
  public
    function toString(): JLString; overload; virtual;
    function getListeners(para1: JLClass): Arr1JUEventListener; overload; virtual;
  end;

  JSAbstractCellEditor = class abstract external 'javax.swing' name 'AbstractCellEditor' (JLObject, JSCellEditor, JISerializable)
  strict protected
    var
      flistenerList: JSEEventListenerList; external name 'listenerList';
      fchangeEvent: JSEChangeEvent; external name 'changeEvent';
  public
    constructor create(); overload;
    function isCellEditable(para1: JUEventObject): jboolean; overload; virtual;
    function shouldSelectCell(para1: JUEventObject): jboolean; overload; virtual;
    function stopCellEditing(): jboolean; overload; virtual;
    procedure cancelCellEditing(); overload; virtual;
    procedure addCellEditorListener(para1: JSECellEditorListener); overload; virtual;
    procedure removeCellEditorListener(para1: JSECellEditorListener); overload; virtual;
    function getCellEditorListeners(): Arr1JSECellEditorListener; overload; virtual;
  strict protected
    procedure fireEditingStopped(); overload; virtual;
    procedure fireEditingCanceled(); overload; virtual;
  end;

  JSTTableCellEditor = interface external 'javax.swing.table' name 'TableCellEditor' (JSCellEditor)
    function getTableCellEditorComponent(para1: JSJTable; para2: JLObject; para3: jboolean; para4: jint; para5: jint): JAComponent; overload;
  end;

  JSTTreeCellEditor = interface external 'javax.swing.tree' name 'TreeCellEditor' (JSCellEditor)
    function getTreeCellEditorComponent(para1: JSJTree; para2: JLObject; para3: jboolean; para4: jboolean; para5: jboolean; para6: jint): JAComponent; overload;
  end;

  JSDefaultDesktopManager = class external 'javax.swing' name 'DefaultDesktopManager' (JLObject, JSDesktopManager, JISerializable)
  public
    constructor create(); overload;
    procedure openFrame(para1: JSJInternalFrame); overload; virtual;
    procedure closeFrame(para1: JSJInternalFrame); overload; virtual;
    procedure maximizeFrame(para1: JSJInternalFrame); overload; virtual;
    procedure minimizeFrame(para1: JSJInternalFrame); overload; virtual;
    procedure iconifyFrame(para1: JSJInternalFrame); overload; virtual;
    procedure deiconifyFrame(para1: JSJInternalFrame); overload; virtual;
    procedure activateFrame(para1: JSJInternalFrame); overload; virtual;
    procedure deactivateFrame(para1: JSJInternalFrame); overload; virtual;
    procedure beginDraggingFrame(para1: JSJComponent); overload; virtual;
    procedure dragFrame(para1: JSJComponent; para2: jint; para3: jint); overload; virtual;
    procedure endDraggingFrame(para1: JSJComponent); overload; virtual;
    procedure beginResizingFrame(para1: JSJComponent; para2: jint); overload; virtual;
    procedure resizeFrame(para1: JSJComponent; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    procedure endResizingFrame(para1: JSJComponent); overload; virtual;
    procedure setBoundsForFrame(para1: JSJComponent; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
  strict protected
    procedure removeIconFor(para1: JSJInternalFrame); overload; virtual;
    function getBoundsForIconOf(para1: JSJInternalFrame): JARectangle; overload; virtual;
    procedure setPreviousBounds(para1: JSJInternalFrame; para2: JARectangle); overload; virtual;
    function getPreviousBounds(para1: JSJInternalFrame): JARectangle; overload; virtual;
    procedure setWasIcon(para1: JSJInternalFrame; para2: JLBoolean); overload; virtual;
    function wasIcon(para1: JSJInternalFrame): jboolean; overload; virtual;
  end;

  JSImageIcon = class external 'javax.swing' name 'ImageIcon' (JLObject, JSIcon, JISerializable, JAAccessible)
  public
    type
      InnerAccessibleImageIcon = class;
      Arr1InnerAccessibleImageIcon = array of InnerAccessibleImageIcon;
      Arr2InnerAccessibleImageIcon = array of Arr1InnerAccessibleImageIcon;
      Arr3InnerAccessibleImageIcon = array of Arr2InnerAccessibleImageIcon;
      InnerAccessibleImageIcon = class external 'javax.swing' name 'AccessibleImageIcon' 
      end;

  strict protected
    final class var
      fcomponent: JAComponent; external name 'component';
      ftracker: JAMediaTracker; external name 'tracker';
  public
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JNURL; para2: JLString); overload;
    constructor create(para1: JNURL); overload;
    constructor create(para1: JAImage; para2: JLString); overload;
    constructor create(para1: JAImage); overload;
    constructor create(para1: Arr1jbyte; para2: JLString); overload;
    constructor create(const para1: array of jbyte; para2: JLString); overload;
    constructor create(para1: Arr1jbyte); overload;
    constructor create(const para1: array of jbyte); overload;
    constructor create(); overload;
  strict protected
    procedure loadImage(para1: JAImage); overload; virtual;
  public
    function getImageLoadStatus(): jint; overload; virtual;
    function getImage(): JAImage; overload; virtual;
    procedure setImage(para1: JAImage); overload; virtual;
    function getDescription(): JLString; overload; virtual;
    procedure setDescription(para1: JLString); overload; virtual;
    procedure paintIcon(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint); overload; virtual;
    function getIconWidth(): jint; overload; virtual;
    function getIconHeight(): jint; overload; virtual;
    procedure setImageObserver(para1: JAIImageObserver); overload; virtual;
    function getImageObserver(): JAIImageObserver; overload; virtual;
    function toString(): JLString; overload; virtual;
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSPMMetalBumps = class external 'javax.swing.plaf.metal' name 'MetalBumps' (JLObject, JSIcon)
  strict protected
    var
      fxBumps: jint; external name 'xBumps';
      fyBumps: jint; external name 'yBumps';
      ftopColor: JAColor; external name 'topColor';
      fshadowColor: JAColor; external name 'shadowColor';
      fbackColor: JAColor; external name 'backColor';
      fbuffer: JSPMBumpBuffer; external name 'buffer';
  public
    constructor create(para1: jint; para2: jint; para3: JAColor; para4: JAColor; para5: JAColor); overload;
    procedure setBumpArea(para1: JADimension); overload; virtual;
    procedure setBumpArea(para1: jint; para2: jint); overload; virtual;
    procedure setBumpColors(para1: JAColor; para2: JAColor; para3: JAColor); overload; virtual;
    procedure paintIcon(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint); overload; virtual;
    function getIconWidth(): jint; overload; virtual;
    function getIconHeight(): jint; overload; virtual;
  end;

  JSPMMetalComboBoxIcon = class external 'javax.swing.plaf.metal' name 'MetalComboBoxIcon' (JLObject, JSIcon, JISerializable)
  public
    constructor create(); overload;
    procedure paintIcon(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint); overload; virtual;
    function getIconWidth(): jint; overload; virtual;
    function getIconHeight(): jint; overload; virtual;
  end;

  JSAbstractListModel = class abstract external 'javax.swing' name 'AbstractListModel' (JLObject, JSListModel, JISerializable)
  strict protected
    var
      flistenerList: JSEEventListenerList; external name 'listenerList';
  public
    constructor create(); overload;
    procedure addListDataListener(para1: JSEListDataListener); overload; virtual;
    procedure removeListDataListener(para1: JSEListDataListener); overload; virtual;
    function getListDataListeners(): Arr1JSEListDataListener; overload; virtual;
  strict protected
    procedure fireContentsChanged(para1: JLObject; para2: jint; para3: jint); overload; virtual;
    procedure fireIntervalAdded(para1: JLObject; para2: jint; para3: jint); overload; virtual;
    procedure fireIntervalRemoved(para1: JLObject; para2: jint; para3: jint); overload; virtual;
  public
    function getListeners(para1: JLClass): Arr1JUEventListener; overload; virtual;
  end;

  JSComboBoxModel = interface external 'javax.swing' name 'ComboBoxModel' (JSListModel)
    procedure setSelectedItem(para1: JLObject); overload;
    function getSelectedItem(): JLObject; overload;
  end;

  JSDefaultListSelectionModel = class external 'javax.swing' name 'DefaultListSelectionModel' (JLObject, JSListSelectionModel, JLCloneable, JISerializable)
  strict protected
    var
      flistenerList: JSEEventListenerList; external name 'listenerList';
      fleadAnchorNotificationEnabled: jboolean; external name 'leadAnchorNotificationEnabled';
  public
    constructor create(); overload;
    function getMinSelectionIndex(): jint; overload; virtual;
    function getMaxSelectionIndex(): jint; overload; virtual;
    function getValueIsAdjusting(): jboolean; overload; virtual;
    function getSelectionMode(): jint; overload; virtual;
    procedure setSelectionMode(para1: jint); overload; virtual;
    function isSelectedIndex(para1: jint): jboolean; overload; virtual;
    function isSelectionEmpty(): jboolean; overload; virtual;
    procedure addListSelectionListener(para1: JSEListSelectionListener); overload; virtual;
    procedure removeListSelectionListener(para1: JSEListSelectionListener); overload; virtual;
    function getListSelectionListeners(): Arr1JSEListSelectionListener; overload; virtual;
  strict protected
    procedure fireValueChanged(para1: jboolean); overload; virtual;
    procedure fireValueChanged(para1: jint; para2: jint); overload; virtual;
    procedure fireValueChanged(para1: jint; para2: jint; para3: jboolean); overload; virtual;
  public
    function getListeners(para1: JLClass): Arr1JUEventListener; overload; virtual;
    procedure setLeadAnchorNotificationEnabled(para1: jboolean); overload; virtual;
    function isLeadAnchorNotificationEnabled(): jboolean; overload; virtual;
    procedure clearSelection(); overload; virtual;
    procedure setSelectionInterval(para1: jint; para2: jint); overload; virtual;
    procedure addSelectionInterval(para1: jint; para2: jint); overload; virtual;
    procedure removeSelectionInterval(para1: jint; para2: jint); overload; virtual;
    procedure insertIndexInterval(para1: jint; para2: jint; para3: jboolean); overload; virtual;
    procedure removeIndexInterval(para1: jint; para2: jint); overload; virtual;
    procedure setValueIsAdjusting(para1: jboolean); overload; virtual;
    function toString(): JLString; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
    function getAnchorSelectionIndex(): jint; overload; virtual;
    function getLeadSelectionIndex(): jint; overload; virtual;
    procedure setAnchorSelectionIndex(para1: jint); overload; virtual;
    procedure moveLeadSelectionIndex(para1: jint); overload; virtual;
    procedure setLeadSelectionIndex(para1: jint); overload; virtual;
  end;

  JSBufferStrategyPaintManager = class external 'javax.swing' name 'BufferStrategyPaintManager' (JSRepaintManager.InnerPaintManager)
  public
    type
      InnerBufferInfo = class;
      Arr1InnerBufferInfo = array of InnerBufferInfo;
      Arr2InnerBufferInfo = array of Arr1InnerBufferInfo;
      Arr3InnerBufferInfo = array of Arr2InnerBufferInfo;
      InnerBufferInfo = class external 'javax.swing' name 'BufferInfo' 
      end;

  strict protected
    procedure dispose(); overload; virtual;
  public
    function show(para1: JAContainer; para2: jint; para3: jint; para4: jint; para5: jint): jboolean; overload; virtual;
    function paint(para1: JSJComponent; para2: JSJComponent; para3: JAGraphics; para4: jint; para5: jint; para6: jint; para7: jint): jboolean; overload; virtual;
    procedure copyArea(para1: JSJComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: jboolean); overload; virtual;
    procedure beginPaint(); overload; virtual;
    procedure endPaint(); overload; virtual;
    procedure doubleBufferingChanged(para1: JSJRootPane); overload; virtual;
  end;

  JSDefaultRowSorter = class abstract external 'javax.swing' name 'DefaultRowSorter' (JSRowSorter)
  public
    type
      InnerFilterEntry = class;
      Arr1InnerFilterEntry = array of InnerFilterEntry;
      Arr2InnerFilterEntry = array of Arr1InnerFilterEntry;
      Arr3InnerFilterEntry = array of Arr2InnerFilterEntry;
      InnerRow = class;
      Arr1InnerRow = array of InnerRow;
      Arr2InnerRow = array of Arr1InnerRow;
      Arr3InnerRow = array of Arr2InnerRow;
      InnerFilterEntry = class external 'javax.swing' name 'FilterEntry' 
      end;

      InnerRow = class external 'javax.swing' name 'Row' 
      end;

  public
    type
      InnerModelWrapper = class;
      Arr1InnerModelWrapper = array of InnerModelWrapper;
      Arr2InnerModelWrapper = array of Arr1InnerModelWrapper;
      Arr3InnerModelWrapper = array of Arr2InnerModelWrapper;
      InnerModelWrapper = class abstract external 'javax.swing' name 'ModelWrapper' (JLObject)
      strict protected
        constructor create(); overload;
      public
        function getModel(): JLObject; overload; virtual; abstract;
        function getColumnCount(): jint; overload; virtual; abstract;
        function getRowCount(): jint; overload; virtual; abstract;
        function getValueAt(para1: jint; para2: jint): JLObject; overload; virtual; abstract;
        function getStringValueAt(para1: jint; para2: jint): JLString; overload; virtual;
        function getIdentifier(para1: jint): JLObject; overload; virtual; abstract;
      end;

  public
    constructor create(); overload;
  strict protected
    procedure setModelWrapper(para1: JSDefaultRowSorter.InnerModelWrapper); overload; virtual; final;
    function getModelWrapper(): JSDefaultRowSorter.InnerModelWrapper; overload; virtual; final;
  public
    function getModel(): JLObject; overload; virtual; final;
    procedure setSortable(para1: jint; para2: jboolean); overload; virtual;
    function isSortable(para1: jint): jboolean; overload; virtual;
    procedure setSortKeys(para1: JUList); overload; virtual;
    function getSortKeys(): JUList; overload; virtual;
    procedure setMaxSortKeys(para1: jint); overload; virtual;
    function getMaxSortKeys(): jint; overload; virtual;
    procedure setSortsOnUpdates(para1: jboolean); overload; virtual;
    function getSortsOnUpdates(): jboolean; overload; virtual;
    procedure setRowFilter(para1: JSRowFilter); overload; virtual;
    function getRowFilter(): JSRowFilter; overload; virtual;
    procedure toggleSortOrder(para1: jint); overload; virtual;
    function convertRowIndexToView(para1: jint): jint; overload; virtual;
    function convertRowIndexToModel(para1: jint): jint; overload; virtual;
    procedure sort(); overload; virtual;
  strict protected
    function useToString(para1: jint): jboolean; overload; virtual;
  public
    procedure setComparator(para1: jint; para2: JUComparator); overload; virtual;
    function getComparator(para1: jint): JUComparator; overload; virtual;
    function getViewRowCount(): jint; overload; virtual;
    function getModelRowCount(): jint; overload; virtual;
    procedure modelStructureChanged(); overload; virtual;
    procedure allRowsChanged(); overload; virtual;
    procedure rowsInserted(para1: jint; para2: jint); overload; virtual;
    procedure rowsDeleted(para1: jint; para2: jint); overload; virtual;
    procedure rowsUpdated(para1: jint; para2: jint); overload; virtual;
    procedure rowsUpdated(para1: jint; para2: jint; para3: jint); overload; virtual;
  end;

  JSDefaultSingleSelectionModel = class external 'javax.swing' name 'DefaultSingleSelectionModel' (JLObject, JSSingleSelectionModel, JISerializable)
  strict protected
    var
      fchangeEvent: JSEChangeEvent; external name 'changeEvent';
      flistenerList: JSEEventListenerList; external name 'listenerList';
  public
    constructor create(); overload;
    function getSelectedIndex(): jint; overload; virtual;
    procedure setSelectedIndex(para1: jint); overload; virtual;
    procedure clearSelection(); overload; virtual;
    function isSelected(): jboolean; overload; virtual;
    procedure addChangeListener(para1: JSEChangeListener); overload; virtual;
    procedure removeChangeListener(para1: JSEChangeListener); overload; virtual;
    function getChangeListeners(): Arr1JSEChangeListener; overload; virtual;
  strict protected
    procedure fireStateChanged(); overload; virtual;
  public
    function getListeners(para1: JLClass): Arr1JUEventListener; overload; virtual;
  end;

  JSAbstractSpinnerModel = class abstract external 'javax.swing' name 'AbstractSpinnerModel' (JLObject, JSSpinnerModel)
  strict protected
    var
      flistenerList: JSEEventListenerList; external name 'listenerList';
  public
    constructor create(); overload;
    procedure addChangeListener(para1: JSEChangeListener); overload; virtual;
    procedure removeChangeListener(para1: JSEChangeListener); overload; virtual;
    function getChangeListeners(): Arr1JSEChangeListener; overload; virtual;
  strict protected
    procedure fireStateChanged(); overload; virtual;
  public
    function getListeners(para1: JLClass): Arr1JUEventListener; overload; virtual;
  end;

  JSSwingUtilities = class external 'javax.swing' name 'SwingUtilities' (JLObject, JSSwingConstants)
  public
    type
      InnerSharedOwnerFrame = class;
      Arr1InnerSharedOwnerFrame = array of InnerSharedOwnerFrame;
      Arr2InnerSharedOwnerFrame = array of Arr1InnerSharedOwnerFrame;
      Arr3InnerSharedOwnerFrame = array of Arr2InnerSharedOwnerFrame;
      InnerSharedOwnerFrame = class external 'javax.swing' name 'SharedOwnerFrame' 
      end;

  public
    class function isRectangleContainingRectangle(para1: JARectangle; para2: JARectangle): jboolean; static; overload; final;
    class function getLocalBounds(para1: JAComponent): JARectangle; static; overload;
    class function getWindowAncestor(para1: JAComponent): JAWindow; static; overload;
    class function convertPoint(para1: JAComponent; para2: JAPoint; para3: JAComponent): JAPoint; static; overload;
    class function convertPoint(para1: JAComponent; para2: jint; para3: jint; para4: JAComponent): JAPoint; static; overload;
    class function convertRectangle(para1: JAComponent; para2: JARectangle; para3: JAComponent): JARectangle; static; overload;
    class function getAncestorOfClass(para1: JLClass; para2: JAComponent): JAContainer; static; overload;
    class function getAncestorNamed(para1: JLString; para2: JAComponent): JAContainer; static; overload;
    class function getDeepestComponentAt(para1: JAComponent; para2: jint; para3: jint): JAComponent; static; overload;
    class function convertMouseEvent(para1: JAComponent; para2: JAEMouseEvent; para3: JAComponent): JAEMouseEvent; static; overload;
    class procedure convertPointToScreen(para1: JAPoint; para2: JAComponent); static; overload;
    class procedure convertPointFromScreen(para1: JAPoint; para2: JAComponent); static; overload;
    class function windowForComponent(para1: JAComponent): JAWindow; static; overload;
    class function isDescendingFrom(para1: JAComponent; para2: JAComponent): jboolean; static; overload;
    class function computeIntersection(para1: jint; para2: jint; para3: jint; para4: jint; para5: JARectangle): JARectangle; static; overload;
    class function computeUnion(para1: jint; para2: jint; para3: jint; para4: jint; para5: JARectangle): JARectangle; static; overload;
    class function computeDifference(para1: JARectangle; para2: JARectangle): Arr1JARectangle; static; overload;
    class function isLeftMouseButton(para1: JAEMouseEvent): jboolean; static; overload;
    class function isMiddleMouseButton(para1: JAEMouseEvent): jboolean; static; overload;
    class function isRightMouseButton(para1: JAEMouseEvent): jboolean; static; overload;
    class function computeStringWidth(para1: JAFontMetrics; para2: JLString): jint; static; overload;
    class function layoutCompoundLabel(para1: JSJComponent; para2: JAFontMetrics; para3: JLString; para4: JSIcon; para5: jint; para6: jint; para7: jint; para8: jint; para9: JARectangle; para10: JARectangle; para11: JARectangle; para12: jint): JLString; static; overload;
    class function layoutCompoundLabel(para1: JAFontMetrics; para2: JLString; para3: JSIcon; para4: jint; para5: jint; para6: jint; para7: jint; para8: JARectangle; para9: JARectangle; para10: JARectangle; para11: jint): JLString; static; overload;
    class procedure paintComponent(para1: JAGraphics; para2: JAComponent; para3: JAContainer; para4: jint; para5: jint; para6: jint; para7: jint); static; overload;
    class procedure paintComponent(para1: JAGraphics; para2: JAComponent; para3: JAContainer; para4: JARectangle); static; overload;
    class procedure updateComponentTreeUI(para1: JAComponent); static; overload;
    class procedure invokeLater(para1: JLRunnable); static; overload;
    class procedure invokeAndWait(para1: JLRunnable); static; overload;  // throws java.lang.InterruptedException, java.lang.reflect.InvocationTargetException
    class function isEventDispatchThread(): jboolean; static; overload;
    class function getAccessibleIndexInParent(para1: JAComponent): jint; static; overload;
    class function getAccessibleAt(para1: JAComponent; para2: JAPoint): JAAccessible; static; overload;
    class function getAccessibleStateSet(para1: JAComponent): JAAccessibleStateSet; static; overload;
    class function getAccessibleChildrenCount(para1: JAComponent): jint; static; overload;
    class function getAccessibleChild(para1: JAComponent; para2: jint): JAAccessible; static; overload;
    class function findFocusOwner(para1: JAComponent): JAComponent; static; overload;
    class function getRootPane(para1: JAComponent): JSJRootPane; static; overload;
    class function getRoot(para1: JAComponent): JAComponent; static; overload;
    class function processKeyBindings(para1: JAEKeyEvent): jboolean; static; overload;
    class function notifyAction(para1: JSAction; para2: JSKeyStroke; para3: JAEKeyEvent; para4: JLObject; para5: jint): jboolean; static; overload;
    class procedure replaceUIInputMap(para1: JSJComponent; para2: jint; para3: JSInputMap); static; overload;
    class procedure replaceUIActionMap(para1: JSJComponent; para2: JSActionMap); static; overload;
    class function getUIInputMap(para1: JSJComponent; para2: jint): JSInputMap; static; overload;
    class function getUIActionMap(para1: JSJComponent): JSActionMap; static; overload;
    class function calculateInnerArea(para1: JSJComponent; para2: JARectangle): JARectangle; static; overload;
  end;

  JSCDefaultColorSelectionModel = class external 'javax.swing.colorchooser' name 'DefaultColorSelectionModel' (JLObject, JSCColorSelectionModel, JISerializable)
  strict protected
    var
      fchangeEvent: JSEChangeEvent; external name 'changeEvent';
      flistenerList: JSEEventListenerList; external name 'listenerList';
  public
    constructor create(); overload;
    constructor create(para1: JAColor); overload;
    function getSelectedColor(): JAColor; overload; virtual;
    procedure setSelectedColor(para1: JAColor); overload; virtual;
    procedure addChangeListener(para1: JSEChangeListener); overload; virtual;
    procedure removeChangeListener(para1: JSEChangeListener); overload; virtual;
    function getChangeListeners(): Arr1JSEChangeListener; overload; virtual;
  strict protected
    procedure fireStateChanged(); overload; virtual;
  end;

  JSFFileNameExtensionFilter = class sealed external 'javax.swing.filechooser' name 'FileNameExtensionFilter' (JSFFileFilter)
  public
    constructor create(para1: JLString; para2: Arr1JLString); overload;
    constructor create(para1: JLString; const para2: array of JLString); overload;
    function accept(para1: JIFile): jboolean; overload; virtual;
    function getDescription(): JLString; overload; virtual;
    function getExtensions(): Arr1JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSFGenericFileSystemView = class external 'javax.swing.filechooser' name 'GenericFileSystemView' (JSFFileSystemView)
  public
    function createNewFolder(para1: JIFile): JIFile; overload; virtual;  // throws java.io.IOException
  end;

  JSFUnixFileSystemView = class external 'javax.swing.filechooser' name 'UnixFileSystemView' (JSFFileSystemView)
  public
    function createNewFolder(para1: JIFile): JIFile; overload; virtual;  // throws java.io.IOException
    function isFileSystemRoot(para1: JIFile): jboolean; overload; virtual;
    function isDrive(para1: JIFile): jboolean; overload; virtual;
    function isFloppyDrive(para1: JIFile): jboolean; overload; virtual;
    function isComputerNode(para1: JIFile): jboolean; overload; virtual;
  end;

  JSFWindowsFileSystemView = class external 'javax.swing.filechooser' name 'WindowsFileSystemView' (JSFFileSystemView)
  public
    function isTraversable(para1: JIFile): JLBoolean; overload; virtual;
    function getChild(para1: JIFile; para2: JLString): JIFile; overload; virtual;
    function getSystemTypeDescription(para1: JIFile): JLString; overload; virtual;
    function getHomeDirectory(): JIFile; overload; virtual;
    function createNewFolder(para1: JIFile): JIFile; overload; virtual;  // throws java.io.IOException
    function isDrive(para1: JIFile): jboolean; overload; virtual;
    function isFloppyDrive(para1: JIFile): jboolean; overload; virtual;
    function createFileObject(para1: JLString): JIFile; overload; virtual;
  strict protected
    function createFileSystemRoot(para1: JIFile): JIFile; overload; virtual;
  end;

  JSScrollPaneLayout = class external 'javax.swing' name 'ScrollPaneLayout' (JLObject, JALayoutManager, JSScrollPaneConstants, JISerializable)
  public
    type
      InnerUIResource = class;
      Arr1InnerUIResource = array of InnerUIResource;
      Arr2InnerUIResource = array of Arr1InnerUIResource;
      Arr3InnerUIResource = array of Arr2InnerUIResource;
      InnerUIResource = class external 'javax.swing' name 'UIResource' (JSScrollPaneLayout, JSPUIResource)
      public
        constructor create(); overload;
      end;

  strict protected
    var
      fviewport: JSJViewport; external name 'viewport';
      fvsb: JSJScrollBar; external name 'vsb';
      fhsb: JSJScrollBar; external name 'hsb';
      frowHead: JSJViewport; external name 'rowHead';
      fcolHead: JSJViewport; external name 'colHead';
      flowerLeft: JAComponent; external name 'lowerLeft';
      flowerRight: JAComponent; external name 'lowerRight';
      fupperLeft: JAComponent; external name 'upperLeft';
      fupperRight: JAComponent; external name 'upperRight';
      fvsbPolicy: jint; external name 'vsbPolicy';
      fhsbPolicy: jint; external name 'hsbPolicy';
  public
    constructor create(); overload;
    procedure syncWithScrollPane(para1: JSJScrollPane); overload; virtual;
  strict protected
    function addSingletonComponent(para1: JAComponent; para2: JAComponent): JAComponent; overload; virtual;
  public
    procedure addLayoutComponent(para1: JLString; para2: JAComponent); overload; virtual;
    procedure removeLayoutComponent(para1: JAComponent); overload; virtual;
    function getVerticalScrollBarPolicy(): jint; overload; virtual;
    procedure setVerticalScrollBarPolicy(para1: jint); overload; virtual;
    function getHorizontalScrollBarPolicy(): jint; overload; virtual;
    procedure setHorizontalScrollBarPolicy(para1: jint); overload; virtual;
    function getViewport(): JSJViewport; overload; virtual;
    function getHorizontalScrollBar(): JSJScrollBar; overload; virtual;
    function getVerticalScrollBar(): JSJScrollBar; overload; virtual;
    function getRowHeader(): JSJViewport; overload; virtual;
    function getColumnHeader(): JSJViewport; overload; virtual;
    function getCorner(para1: JLString): JAComponent; overload; virtual;
    function preferredLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    function minimumLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    procedure layoutContainer(para1: JAContainer); overload; virtual;
    function getViewportBorderBounds(para1: JSJScrollPane): JARectangle; overload; virtual;
  end;

  JSPIconUIResource = class external 'javax.swing.plaf' name 'IconUIResource' (JLObject, JSIcon, JSPUIResource, JISerializable)
  public
    constructor create(para1: JSIcon); overload;
    procedure paintIcon(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint); overload; virtual;
    function getIconWidth(): jint; overload; virtual;
    function getIconHeight(): jint; overload; virtual;
  end;

  JSPBBasicTransferable = class external 'javax.swing.plaf.basic' name 'BasicTransferable' (JLObject, JADTransferable, JSPUIResource)
  strict protected
    var
      fplainData: JLString; external name 'plainData';
      fhtmlData: JLString; external name 'htmlData';
  public
    constructor create(para1: JLString; para2: JLString); overload;
    function getTransferDataFlavors(): Arr1JADDataFlavor; overload; virtual;
    function isDataFlavorSupported(para1: JADDataFlavor): jboolean; overload; virtual;
    function getTransferData(para1: JADDataFlavor): JLObject; overload; virtual;  // throws java.awt.datatransfer.UnsupportedFlavorException, java.io.IOException
  strict protected
    function isRicherFlavor(para1: JADDataFlavor): jboolean; overload; virtual;
    function getRicherFlavors(): Arr1JADDataFlavor; overload; virtual;
    function getRicherData(para1: JADDataFlavor): JLObject; overload; virtual;  // throws java.awt.datatransfer.UnsupportedFlavorException
    function isHTMLFlavor(para1: JADDataFlavor): jboolean; overload; virtual;
    function isHTMLSupported(): jboolean; overload; virtual;
    function getHTMLData(): JLString; overload; virtual;
    function isPlainFlavor(para1: JADDataFlavor): jboolean; overload; virtual;
    function isPlainSupported(): jboolean; overload; virtual;
    function getPlainData(): JLString; overload; virtual;
    function isStringFlavor(para1: JADDataFlavor): jboolean; overload; virtual;
  end;

  JSPMMetalCheckBoxIcon = class external 'javax.swing.plaf.metal' name 'MetalCheckBoxIcon' (JLObject, JSIcon, JSPUIResource, JISerializable)
  public
    constructor create(); overload;
  strict protected
    function getControlSize(): jint; overload; virtual;
  public
    procedure paintIcon(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint); overload; virtual;
  strict protected
    procedure drawCheck(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint); overload; virtual;
  public
    function getIconWidth(): jint; overload; virtual;
    function getIconHeight(): jint; overload; virtual;
  end;

  JSPMMetalIconFactory = class external 'javax.swing.plaf.metal' name 'MetalIconFactory' (JLObject, JISerializable)
  public
    type
      InnerImageCacher = class;
      Arr1InnerImageCacher = array of InnerImageCacher;
      Arr2InnerImageCacher = array of Arr1InnerImageCacher;
      Arr3InnerImageCacher = array of Arr2InnerImageCacher;
      InnerCheckBoxIcon = class;
      Arr1InnerCheckBoxIcon = array of InnerCheckBoxIcon;
      Arr2InnerCheckBoxIcon = array of Arr1InnerCheckBoxIcon;
      Arr3InnerCheckBoxIcon = array of Arr2InnerCheckBoxIcon;
      InnerCheckBoxMenuItemIcon = class;
      Arr1InnerCheckBoxMenuItemIcon = array of InnerCheckBoxMenuItemIcon;
      Arr2InnerCheckBoxMenuItemIcon = array of Arr1InnerCheckBoxMenuItemIcon;
      Arr3InnerCheckBoxMenuItemIcon = array of Arr2InnerCheckBoxMenuItemIcon;
      InnerFileChooserDetailViewIcon = class;
      Arr1InnerFileChooserDetailViewIcon = array of InnerFileChooserDetailViewIcon;
      Arr2InnerFileChooserDetailViewIcon = array of Arr1InnerFileChooserDetailViewIcon;
      Arr3InnerFileChooserDetailViewIcon = array of Arr2InnerFileChooserDetailViewIcon;
      InnerFileChooserHomeFolderIcon = class;
      Arr1InnerFileChooserHomeFolderIcon = array of InnerFileChooserHomeFolderIcon;
      Arr2InnerFileChooserHomeFolderIcon = array of Arr1InnerFileChooserHomeFolderIcon;
      Arr3InnerFileChooserHomeFolderIcon = array of Arr2InnerFileChooserHomeFolderIcon;
      InnerFileChooserListViewIcon = class;
      Arr1InnerFileChooserListViewIcon = array of InnerFileChooserListViewIcon;
      Arr2InnerFileChooserListViewIcon = array of Arr1InnerFileChooserListViewIcon;
      Arr3InnerFileChooserListViewIcon = array of Arr2InnerFileChooserListViewIcon;
      InnerFileChooserNewFolderIcon = class;
      Arr1InnerFileChooserNewFolderIcon = array of InnerFileChooserNewFolderIcon;
      Arr2InnerFileChooserNewFolderIcon = array of Arr1InnerFileChooserNewFolderIcon;
      Arr3InnerFileChooserNewFolderIcon = array of Arr2InnerFileChooserNewFolderIcon;
      InnerFileChooserUpFolderIcon = class;
      Arr1InnerFileChooserUpFolderIcon = array of InnerFileChooserUpFolderIcon;
      Arr2InnerFileChooserUpFolderIcon = array of Arr1InnerFileChooserUpFolderIcon;
      Arr3InnerFileChooserUpFolderIcon = array of Arr2InnerFileChooserUpFolderIcon;
      InnerHorizontalSliderThumbIcon = class;
      Arr1InnerHorizontalSliderThumbIcon = array of InnerHorizontalSliderThumbIcon;
      Arr2InnerHorizontalSliderThumbIcon = array of Arr1InnerHorizontalSliderThumbIcon;
      Arr3InnerHorizontalSliderThumbIcon = array of Arr2InnerHorizontalSliderThumbIcon;
      InnerInternalFrameAltMaximizeIcon = class;
      Arr1InnerInternalFrameAltMaximizeIcon = array of InnerInternalFrameAltMaximizeIcon;
      Arr2InnerInternalFrameAltMaximizeIcon = array of Arr1InnerInternalFrameAltMaximizeIcon;
      Arr3InnerInternalFrameAltMaximizeIcon = array of Arr2InnerInternalFrameAltMaximizeIcon;
      InnerInternalFrameCloseIcon = class;
      Arr1InnerInternalFrameCloseIcon = array of InnerInternalFrameCloseIcon;
      Arr2InnerInternalFrameCloseIcon = array of Arr1InnerInternalFrameCloseIcon;
      Arr3InnerInternalFrameCloseIcon = array of Arr2InnerInternalFrameCloseIcon;
      InnerInternalFrameDefaultMenuIcon = class;
      Arr1InnerInternalFrameDefaultMenuIcon = array of InnerInternalFrameDefaultMenuIcon;
      Arr2InnerInternalFrameDefaultMenuIcon = array of Arr1InnerInternalFrameDefaultMenuIcon;
      Arr3InnerInternalFrameDefaultMenuIcon = array of Arr2InnerInternalFrameDefaultMenuIcon;
      InnerInternalFrameMaximizeIcon = class;
      Arr1InnerInternalFrameMaximizeIcon = array of InnerInternalFrameMaximizeIcon;
      Arr2InnerInternalFrameMaximizeIcon = array of Arr1InnerInternalFrameMaximizeIcon;
      Arr3InnerInternalFrameMaximizeIcon = array of Arr2InnerInternalFrameMaximizeIcon;
      InnerInternalFrameMinimizeIcon = class;
      Arr1InnerInternalFrameMinimizeIcon = array of InnerInternalFrameMinimizeIcon;
      Arr2InnerInternalFrameMinimizeIcon = array of Arr1InnerInternalFrameMinimizeIcon;
      Arr3InnerInternalFrameMinimizeIcon = array of Arr2InnerInternalFrameMinimizeIcon;
      InnerMenuArrowIcon = class;
      Arr1InnerMenuArrowIcon = array of InnerMenuArrowIcon;
      Arr2InnerMenuArrowIcon = array of Arr1InnerMenuArrowIcon;
      Arr3InnerMenuArrowIcon = array of Arr2InnerMenuArrowIcon;
      InnerMenuItemArrowIcon = class;
      Arr1InnerMenuItemArrowIcon = array of InnerMenuItemArrowIcon;
      Arr2InnerMenuItemArrowIcon = array of Arr1InnerMenuItemArrowIcon;
      Arr3InnerMenuItemArrowIcon = array of Arr2InnerMenuItemArrowIcon;
      InnerRadioButtonIcon = class;
      Arr1InnerRadioButtonIcon = array of InnerRadioButtonIcon;
      Arr2InnerRadioButtonIcon = array of Arr1InnerRadioButtonIcon;
      Arr3InnerRadioButtonIcon = array of Arr2InnerRadioButtonIcon;
      InnerRadioButtonMenuItemIcon = class;
      Arr1InnerRadioButtonMenuItemIcon = array of InnerRadioButtonMenuItemIcon;
      Arr2InnerRadioButtonMenuItemIcon = array of Arr1InnerRadioButtonMenuItemIcon;
      Arr3InnerRadioButtonMenuItemIcon = array of Arr2InnerRadioButtonMenuItemIcon;
      InnerTreeComputerIcon = class;
      Arr1InnerTreeComputerIcon = array of InnerTreeComputerIcon;
      Arr2InnerTreeComputerIcon = array of Arr1InnerTreeComputerIcon;
      Arr3InnerTreeComputerIcon = array of Arr2InnerTreeComputerIcon;
      InnerTreeFloppyDriveIcon = class;
      Arr1InnerTreeFloppyDriveIcon = array of InnerTreeFloppyDriveIcon;
      Arr2InnerTreeFloppyDriveIcon = array of Arr1InnerTreeFloppyDriveIcon;
      Arr3InnerTreeFloppyDriveIcon = array of Arr2InnerTreeFloppyDriveIcon;
      InnerTreeHardDriveIcon = class;
      Arr1InnerTreeHardDriveIcon = array of InnerTreeHardDriveIcon;
      Arr2InnerTreeHardDriveIcon = array of Arr1InnerTreeHardDriveIcon;
      Arr3InnerTreeHardDriveIcon = array of Arr2InnerTreeHardDriveIcon;
      InnerVerticalSliderThumbIcon = class;
      Arr1InnerVerticalSliderThumbIcon = array of InnerVerticalSliderThumbIcon;
      Arr2InnerVerticalSliderThumbIcon = array of Arr1InnerVerticalSliderThumbIcon;
      Arr3InnerVerticalSliderThumbIcon = array of Arr2InnerVerticalSliderThumbIcon;
      InnerOceanHorizontalSliderThumbIcon = class;
      Arr1InnerOceanHorizontalSliderThumbIcon = array of InnerOceanHorizontalSliderThumbIcon;
      Arr2InnerOceanHorizontalSliderThumbIcon = array of Arr1InnerOceanHorizontalSliderThumbIcon;
      Arr3InnerOceanHorizontalSliderThumbIcon = array of Arr2InnerOceanHorizontalSliderThumbIcon;
      InnerOceanVerticalSliderThumbIcon = class;
      Arr1InnerOceanVerticalSliderThumbIcon = array of InnerOceanVerticalSliderThumbIcon;
      Arr2InnerOceanVerticalSliderThumbIcon = array of Arr1InnerOceanVerticalSliderThumbIcon;
      Arr3InnerOceanVerticalSliderThumbIcon = array of Arr2InnerOceanVerticalSliderThumbIcon;
      InnerImageCacher = class external 'javax.swing.plaf.metal' name 'ImageCacher' 
      public
        type
          InnerImageGcPair = class;
          Arr1InnerImageGcPair = array of InnerImageGcPair;
          Arr2InnerImageGcPair = array of Arr1InnerImageGcPair;
          Arr3InnerImageGcPair = array of Arr2InnerImageGcPair;
          InnerImageGcPair = class external 'javax.swing.plaf.metal' name 'ImageGcPair' 
          end;

      end;

      InnerCheckBoxIcon = class external 'javax.swing.plaf.metal' name 'CheckBoxIcon' 
      end;

      InnerCheckBoxMenuItemIcon = class external 'javax.swing.plaf.metal' name 'CheckBoxMenuItemIcon' 
      end;

      InnerFileChooserDetailViewIcon = class external 'javax.swing.plaf.metal' name 'FileChooserDetailViewIcon' 
      end;

      InnerFileChooserHomeFolderIcon = class external 'javax.swing.plaf.metal' name 'FileChooserHomeFolderIcon' 
      end;

      InnerFileChooserListViewIcon = class external 'javax.swing.plaf.metal' name 'FileChooserListViewIcon' 
      end;

      InnerFileChooserNewFolderIcon = class external 'javax.swing.plaf.metal' name 'FileChooserNewFolderIcon' 
      end;

      InnerFileChooserUpFolderIcon = class external 'javax.swing.plaf.metal' name 'FileChooserUpFolderIcon' 
      end;

      InnerHorizontalSliderThumbIcon = class external 'javax.swing.plaf.metal' name 'HorizontalSliderThumbIcon' 
      end;

      InnerInternalFrameAltMaximizeIcon = class external 'javax.swing.plaf.metal' name 'InternalFrameAltMaximizeIcon' 
      end;

      InnerInternalFrameCloseIcon = class external 'javax.swing.plaf.metal' name 'InternalFrameCloseIcon' 
      end;

      InnerInternalFrameDefaultMenuIcon = class external 'javax.swing.plaf.metal' name 'InternalFrameDefaultMenuIcon' 
      end;

      InnerInternalFrameMaximizeIcon = class external 'javax.swing.plaf.metal' name 'InternalFrameMaximizeIcon' 
      end;

      InnerInternalFrameMinimizeIcon = class external 'javax.swing.plaf.metal' name 'InternalFrameMinimizeIcon' 
      end;

      InnerMenuArrowIcon = class external 'javax.swing.plaf.metal' name 'MenuArrowIcon' 
      end;

      InnerMenuItemArrowIcon = class external 'javax.swing.plaf.metal' name 'MenuItemArrowIcon' 
      end;

      InnerRadioButtonIcon = class external 'javax.swing.plaf.metal' name 'RadioButtonIcon' 
      end;

      InnerRadioButtonMenuItemIcon = class external 'javax.swing.plaf.metal' name 'RadioButtonMenuItemIcon' 
      end;

      InnerTreeComputerIcon = class external 'javax.swing.plaf.metal' name 'TreeComputerIcon' 
      end;

      InnerTreeFloppyDriveIcon = class external 'javax.swing.plaf.metal' name 'TreeFloppyDriveIcon' 
      end;

      InnerTreeHardDriveIcon = class external 'javax.swing.plaf.metal' name 'TreeHardDriveIcon' 
      end;

      InnerVerticalSliderThumbIcon = class external 'javax.swing.plaf.metal' name 'VerticalSliderThumbIcon' 
      end;

      InnerOceanHorizontalSliderThumbIcon = class external 'javax.swing.plaf.metal' name 'OceanHorizontalSliderThumbIcon' 
      end;

      InnerOceanVerticalSliderThumbIcon = class external 'javax.swing.plaf.metal' name 'OceanVerticalSliderThumbIcon' 
      end;

  public
    type
      InnerFileIcon16 = class;
      Arr1InnerFileIcon16 = array of InnerFileIcon16;
      Arr2InnerFileIcon16 = array of Arr1InnerFileIcon16;
      Arr3InnerFileIcon16 = array of Arr2InnerFileIcon16;
      InnerFolderIcon16 = class;
      Arr1InnerFolderIcon16 = array of InnerFolderIcon16;
      Arr2InnerFolderIcon16 = array of Arr1InnerFolderIcon16;
      Arr3InnerFolderIcon16 = array of Arr2InnerFolderIcon16;
      InnerTreeControlIcon = class;
      Arr1InnerTreeControlIcon = array of InnerTreeControlIcon;
      Arr2InnerTreeControlIcon = array of Arr1InnerTreeControlIcon;
      Arr3InnerTreeControlIcon = array of Arr2InnerTreeControlIcon;
      InnerPaletteCloseIcon = class;
      Arr1InnerPaletteCloseIcon = array of InnerPaletteCloseIcon;
      Arr2InnerPaletteCloseIcon = array of Arr1InnerPaletteCloseIcon;
      Arr3InnerPaletteCloseIcon = array of Arr2InnerPaletteCloseIcon;
      InnerTreeLeafIcon = class;
      Arr1InnerTreeLeafIcon = array of InnerTreeLeafIcon;
      Arr2InnerTreeLeafIcon = array of Arr1InnerTreeLeafIcon;
      Arr3InnerTreeLeafIcon = array of Arr2InnerTreeLeafIcon;
      InnerTreeFolderIcon = class;
      Arr1InnerTreeFolderIcon = array of InnerTreeFolderIcon;
      Arr2InnerTreeFolderIcon = array of Arr1InnerTreeFolderIcon;
      Arr3InnerTreeFolderIcon = array of Arr2InnerTreeFolderIcon;
      InnerFileIcon16 = class external 'javax.swing.plaf.metal' name 'FileIcon16' (JLObject, JSIcon, JISerializable)
      public
        constructor create(); overload;
        procedure paintIcon(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint); overload; virtual;
        function getShift(): jint; overload; virtual;
        function getAdditionalHeight(): jint; overload; virtual;
        function getIconWidth(): jint; overload; virtual;
        function getIconHeight(): jint; overload; virtual;
      end;

      InnerFolderIcon16 = class external 'javax.swing.plaf.metal' name 'FolderIcon16' (JLObject, JSIcon, JISerializable)
      public
        constructor create(); overload;
        procedure paintIcon(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint); overload; virtual;
        function getShift(): jint; overload; virtual;
        function getAdditionalHeight(): jint; overload; virtual;
        function getIconWidth(): jint; overload; virtual;
        function getIconHeight(): jint; overload; virtual;
      end;

      InnerTreeControlIcon = class external 'javax.swing.plaf.metal' name 'TreeControlIcon' (JLObject, JSIcon, JISerializable)
      strict protected
        var
          fisLight: jboolean; external name 'isLight';
      public
        constructor create(para1: jboolean); overload;
        procedure paintIcon(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint); overload; virtual;
        procedure paintMe(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint); overload; virtual;
        function getIconWidth(): jint; overload; virtual;
        function getIconHeight(): jint; overload; virtual;
      end;

      InnerPaletteCloseIcon = class external 'javax.swing.plaf.metal' name 'PaletteCloseIcon' (JLObject, JSIcon, JSPUIResource, JISerializable)
      public
        constructor create(); overload;
        procedure paintIcon(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint); overload; virtual;
        function getIconWidth(): jint; overload; virtual;
        function getIconHeight(): jint; overload; virtual;
      end;

      InnerTreeLeafIcon = class external 'javax.swing.plaf.metal' name 'TreeLeafIcon' (InnerFileIcon16)
      public
        constructor create(); overload;
        function getShift(): jint; overload; virtual;
        function getAdditionalHeight(): jint; overload; virtual;
      end;

      InnerTreeFolderIcon = class external 'javax.swing.plaf.metal' name 'TreeFolderIcon' (InnerFolderIcon16)
      public
        constructor create(); overload;
        function getShift(): jint; overload; virtual;
        function getAdditionalHeight(): jint; overload; virtual;
      end;

  public
    const
      DARK = 0;
      LIGHT = 1;
  public
    constructor create(); overload;
    class function getFileChooserDetailViewIcon(): JSIcon; static; overload;
    class function getFileChooserHomeFolderIcon(): JSIcon; static; overload;
    class function getFileChooserListViewIcon(): JSIcon; static; overload;
    class function getFileChooserNewFolderIcon(): JSIcon; static; overload;
    class function getFileChooserUpFolderIcon(): JSIcon; static; overload;
    class function getInternalFrameAltMaximizeIcon(para1: jint): JSIcon; static; overload;
    class function getInternalFrameCloseIcon(para1: jint): JSIcon; static; overload;
    class function getInternalFrameDefaultMenuIcon(): JSIcon; static; overload;
    class function getInternalFrameMaximizeIcon(para1: jint): JSIcon; static; overload;
    class function getInternalFrameMinimizeIcon(para1: jint): JSIcon; static; overload;
    class function getRadioButtonIcon(): JSIcon; static; overload;
    class function getCheckBoxIcon(): JSIcon; static; overload;
    class function getTreeComputerIcon(): JSIcon; static; overload;
    class function getTreeFloppyDriveIcon(): JSIcon; static; overload;
    class function getTreeFolderIcon(): JSIcon; static; overload;
    class function getTreeHardDriveIcon(): JSIcon; static; overload;
    class function getTreeLeafIcon(): JSIcon; static; overload;
    class function getTreeControlIcon(para1: jboolean): JSIcon; static; overload;
    class function getMenuArrowIcon(): JSIcon; static; overload;
    class function getMenuItemCheckIcon(): JSIcon; static; overload;
    class function getMenuItemArrowIcon(): JSIcon; static; overload;
    class function getCheckBoxMenuItemIcon(): JSIcon; static; overload;
    class function getRadioButtonMenuItemIcon(): JSIcon; static; overload;
    class function getHorizontalSliderThumbIcon(): JSIcon; static; overload;
    class function getVerticalSliderThumbIcon(): JSIcon; static; overload;
  end;

  JSPMDefaultMetalTheme = class external 'javax.swing.plaf.metal' name 'DefaultMetalTheme' (JSPMMetalTheme)
  public
    type
      InnerFontDelegate = class;
      Arr1InnerFontDelegate = array of InnerFontDelegate;
      Arr2InnerFontDelegate = array of Arr1InnerFontDelegate;
      Arr3InnerFontDelegate = array of Arr2InnerFontDelegate;
      InnerWindowsFontDelegate = class;
      Arr1InnerWindowsFontDelegate = array of InnerWindowsFontDelegate;
      Arr2InnerWindowsFontDelegate = array of Arr1InnerWindowsFontDelegate;
      Arr3InnerWindowsFontDelegate = array of Arr2InnerWindowsFontDelegate;
      InnerFontDelegate = class external 'javax.swing.plaf.metal' name 'FontDelegate' 
      end;

      InnerWindowsFontDelegate = class external 'javax.swing.plaf.metal' name 'WindowsFontDelegate' 
      end;

  public
    function getName(): JLString; overload; virtual;
    constructor create(); overload;
  strict protected
    function getPrimary1(): JSPColorUIResource; overload; virtual;
    function getPrimary2(): JSPColorUIResource; overload; virtual;
    function getPrimary3(): JSPColorUIResource; overload; virtual;
    function getSecondary1(): JSPColorUIResource; overload; virtual;
    function getSecondary2(): JSPColorUIResource; overload; virtual;
    function getSecondary3(): JSPColorUIResource; overload; virtual;
  public
    function getControlTextFont(): JSPFontUIResource; overload; virtual;
    function getSystemTextFont(): JSPFontUIResource; overload; virtual;
    function getUserTextFont(): JSPFontUIResource; overload; virtual;
    function getMenuTextFont(): JSPFontUIResource; overload; virtual;
    function getWindowTitleFont(): JSPFontUIResource; overload; virtual;
    function getSubTextFont(): JSPFontUIResource; overload; virtual;
  end;

  JSPSImagePainter = class external 'javax.swing.plaf.synth' name 'ImagePainter' (JSPSSynthPainter)
  public
    function getTiles(): jboolean; overload; virtual;
    function getPaintsCenter(): jboolean; overload; virtual;
    function getCenter(): jboolean; overload; virtual;
    function getInsets(para1: JAInsets): JAInsets; overload; virtual;
    function getImage(): JAImage; overload; virtual;
    procedure paintArrowButtonBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintArrowButtonBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintArrowButtonForeground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintButtonBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintButtonBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintCheckBoxMenuItemBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintCheckBoxMenuItemBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintCheckBoxBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintCheckBoxBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintColorChooserBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintColorChooserBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintComboBoxBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintComboBoxBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintDesktopIconBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintDesktopIconBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintDesktopPaneBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintDesktopPaneBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintEditorPaneBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintEditorPaneBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintFileChooserBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintFileChooserBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintFormattedTextFieldBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintFormattedTextFieldBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintInternalFrameTitlePaneBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintInternalFrameTitlePaneBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintInternalFrameBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintInternalFrameBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintLabelBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintLabelBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintListBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintListBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintMenuBarBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintMenuBarBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintMenuItemBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintMenuItemBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintMenuBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintMenuBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintOptionPaneBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintOptionPaneBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintPanelBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintPanelBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintPasswordFieldBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintPasswordFieldBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintPopupMenuBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintPopupMenuBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintProgressBarBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintProgressBarBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintProgressBarBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintProgressBarBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintProgressBarForeground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintRadioButtonMenuItemBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintRadioButtonMenuItemBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintRadioButtonBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintRadioButtonBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintRootPaneBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintRootPaneBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintScrollBarBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintScrollBarBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintScrollBarBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintScrollBarBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintScrollBarThumbBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintScrollBarThumbBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintScrollBarTrackBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintScrollBarTrackBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintScrollBarTrackBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintScrollBarTrackBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintScrollPaneBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintScrollPaneBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintSeparatorBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintSeparatorBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintSeparatorBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintSeparatorBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintSeparatorForeground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintSliderBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintSliderBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintSliderBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintSliderBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintSliderThumbBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintSliderThumbBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintSliderTrackBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintSliderTrackBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintSliderTrackBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintSliderTrackBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintSpinnerBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintSpinnerBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintSplitPaneDividerBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintSplitPaneDividerBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintSplitPaneDividerForeground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintSplitPaneDragDivider(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintSplitPaneBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintSplitPaneBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTabbedPaneBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTabbedPaneBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTabbedPaneTabAreaBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTabbedPaneTabAreaBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintTabbedPaneTabAreaBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTabbedPaneTabAreaBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintTabbedPaneTabBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintTabbedPaneTabBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint); overload; virtual;
    procedure paintTabbedPaneTabBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintTabbedPaneTabBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint); overload; virtual;
    procedure paintTabbedPaneContentBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTabbedPaneContentBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTableHeaderBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTableHeaderBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTableBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTableBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTextAreaBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTextAreaBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTextPaneBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTextPaneBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTextFieldBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTextFieldBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintToggleButtonBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintToggleButtonBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintToolBarBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintToolBarBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintToolBarBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintToolBarBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintToolBarContentBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintToolBarContentBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintToolBarContentBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintToolBarContentBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintToolBarDragWindowBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintToolBarDragWindowBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintToolBarDragWindowBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintToolBarDragWindowBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintToolTipBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintToolTipBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTreeBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTreeBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTreeCellBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTreeCellBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintTreeCellFocus(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintViewportBackground(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintViewportBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
  end;

  JSPSDefaultSynthStyleFactory = class external 'javax.swing.plaf.synth' name 'DefaultSynthStyleFactory' (JSPSSynthStyleFactory)
  public
    const
      NAME = 0;
      REGION = 1;
  public
    procedure addStyle(para1: SSPSDefaultSynthStyle; para2: JLString; para3: jint); overload; virtual;  // throws java.util.regex.PatternSyntaxException
    function getStyle(para1: JSJComponent; para2: JSPSRegion): JSPSSynthStyle; overload; virtual;
  end;

  JSTAbstractTableModel = class abstract external 'javax.swing.table' name 'AbstractTableModel' (JLObject, JSTTableModel, JISerializable)
  strict protected
    var
      flistenerList: JSEEventListenerList; external name 'listenerList';
  public
    constructor create(); overload;
    function getColumnName(para1: jint): JLString; overload; virtual;
    function findColumn(para1: JLString): jint; overload; virtual;
    function getColumnClass(para1: jint): JLClass; overload; virtual;
    function isCellEditable(para1: jint; para2: jint): jboolean; overload; virtual;
    procedure setValueAt(para1: JLObject; para2: jint; para3: jint); overload; virtual;
    procedure addTableModelListener(para1: JSETableModelListener); overload; virtual;
    procedure removeTableModelListener(para1: JSETableModelListener); overload; virtual;
    function getTableModelListeners(): Arr1JSETableModelListener; overload; virtual;
    procedure fireTableDataChanged(); overload; virtual;
    procedure fireTableStructureChanged(); overload; virtual;
    procedure fireTableRowsInserted(para1: jint; para2: jint); overload; virtual;
    procedure fireTableRowsUpdated(para1: jint; para2: jint); overload; virtual;
    procedure fireTableRowsDeleted(para1: jint; para2: jint); overload; virtual;
    procedure fireTableCellUpdated(para1: jint; para2: jint); overload; virtual;
    procedure fireTableChanged(para1: JSETableModelEvent); overload; virtual;
    function getListeners(para1: JLClass): Arr1JUEventListener; overload; virtual;
  end;

  JSTHMinimalHTMLWriter = class external 'javax.swing.text.html' name 'MinimalHTMLWriter' (JSTAbstractWriter)
  public
    constructor create(para1: JIWriter; para2: JSTStyledDocument); overload;
    constructor create(para1: JIWriter; para2: JSTStyledDocument; para3: jint; para4: jint); overload;
    procedure write(); overload; virtual;  // throws java.io.IOException, javax.swing.text.BadLocationException
  strict protected
    procedure writeAttributes(para1: JSTAttributeSet); overload; virtual;  // throws java.io.IOException
    procedure text(para1: JSTElement); overload; virtual;  // throws java.io.IOException, javax.swing.text.BadLocationException
    procedure writeStartTag(para1: JLString); overload; virtual;  // throws java.io.IOException
    procedure writeEndTag(para1: JLString); overload; virtual;  // throws java.io.IOException
    procedure writeHeader(); overload; virtual;  // throws java.io.IOException
    procedure writeStyles(); overload; virtual;  // throws java.io.IOException
    procedure writeBody(); overload; virtual;  // throws java.io.IOException, javax.swing.text.BadLocationException
    procedure writeEndParagraph(); overload; virtual;  // throws java.io.IOException
    procedure writeStartParagraph(para1: JSTElement); overload; virtual;  // throws java.io.IOException
    procedure writeLeaf(para1: JSTElement); overload; virtual;  // throws java.io.IOException
    procedure writeImage(para1: JSTElement); overload; virtual;  // throws java.io.IOException
    procedure writeComponent(para1: JSTElement); overload; virtual;  // throws java.io.IOException
    function isText(para1: JSTElement): jboolean; overload; virtual;
    procedure writeContent(para1: JSTElement; para2: jboolean); overload; virtual;  // throws java.io.IOException, javax.swing.text.BadLocationException
    procedure writeHTMLTags(para1: JSTAttributeSet); overload; virtual;  // throws java.io.IOException
    procedure writeNonHTMLAttributes(para1: JSTAttributeSet); overload; virtual;  // throws java.io.IOException
    function inFontTag(): jboolean; overload; virtual;
    procedure endFontTag(); overload; virtual;  // throws java.io.IOException
    procedure startFontTag(para1: JLString); overload; virtual;  // throws java.io.IOException
  end;

  JSTMutableAttributeSet = interface external 'javax.swing.text' name 'MutableAttributeSet' (JSTAttributeSet)
    procedure addAttribute(para1: JLObject; para2: JLObject); overload;
    procedure addAttributes(para1: JSTAttributeSet); overload;
    procedure removeAttribute(para1: JLObject); overload;
    procedure removeAttributes(para1: JUEnumeration); overload;
    procedure removeAttributes(para1: JSTAttributeSet); overload;
    procedure setResolveParent(para1: JSTAttributeSet); overload;
  end;

  JSTStyleConstants = class external 'javax.swing.text' name 'StyleConstants' (JLObject)
  public
    type
      InnerCharacterConstants = class;
      Arr1InnerCharacterConstants = array of InnerCharacterConstants;
      Arr2InnerCharacterConstants = array of Arr1InnerCharacterConstants;
      Arr3InnerCharacterConstants = array of Arr2InnerCharacterConstants;
      InnerColorConstants = class;
      Arr1InnerColorConstants = array of InnerColorConstants;
      Arr2InnerColorConstants = array of Arr1InnerColorConstants;
      Arr3InnerColorConstants = array of Arr2InnerColorConstants;
      InnerFontConstants = class;
      Arr1InnerFontConstants = array of InnerFontConstants;
      Arr2InnerFontConstants = array of Arr1InnerFontConstants;
      Arr3InnerFontConstants = array of Arr2InnerFontConstants;
      InnerParagraphConstants = class;
      Arr1InnerParagraphConstants = array of InnerParagraphConstants;
      Arr2InnerParagraphConstants = array of Arr1InnerParagraphConstants;
      Arr3InnerParagraphConstants = array of Arr2InnerParagraphConstants;
      InnerCharacterConstants = class external 'javax.swing.text' name 'CharacterConstants' (JSTStyleConstants, JSTAttributeSet.InnerCharacterAttribute)
      end;

      InnerColorConstants = class external 'javax.swing.text' name 'ColorConstants' (JSTStyleConstants, JSTAttributeSet.InnerColorAttribute, JSTAttributeSet.InnerCharacterAttribute)
      end;

      InnerFontConstants = class external 'javax.swing.text' name 'FontConstants' (JSTStyleConstants, JSTAttributeSet.InnerFontAttribute, JSTAttributeSet.InnerCharacterAttribute)
      end;

      InnerParagraphConstants = class external 'javax.swing.text' name 'ParagraphConstants' (JSTStyleConstants, JSTAttributeSet.InnerParagraphAttribute)
      end;

  public
    const
      ComponentElementName = 'component';
      IconElementName = 'icon';
  public
    final class var
      fNameAttribute: JLObject; external name 'NameAttribute';
      fResolveAttribute: JLObject; external name 'ResolveAttribute';
      fModelAttribute: JLObject; external name 'ModelAttribute';
      fBidiLevel: JLObject; external name 'BidiLevel';
      fFontFamily: JLObject; external name 'FontFamily';
      fFamily: JLObject; external name 'Family';
      fFontSize: JLObject; external name 'FontSize';
      fSize: JLObject; external name 'Size';
      fBold: JLObject; external name 'Bold';
      fItalic: JLObject; external name 'Italic';
      fUnderline: JLObject; external name 'Underline';
      fStrikeThrough: JLObject; external name 'StrikeThrough';
      fSuperscript: JLObject; external name 'Superscript';
      fSubscript: JLObject; external name 'Subscript';
      fForeground: JLObject; external name 'Foreground';
      fBackground: JLObject; external name 'Background';
      fComponentAttribute: JLObject; external name 'ComponentAttribute';
      fIconAttribute: JLObject; external name 'IconAttribute';
      fComposedTextAttribute: JLObject; external name 'ComposedTextAttribute';
      fFirstLineIndent: JLObject; external name 'FirstLineIndent';
      fLeftIndent: JLObject; external name 'LeftIndent';
      fRightIndent: JLObject; external name 'RightIndent';
      fLineSpacing: JLObject; external name 'LineSpacing';
      fSpaceAbove: JLObject; external name 'SpaceAbove';
      fSpaceBelow: JLObject; external name 'SpaceBelow';
      fAlignment: JLObject; external name 'Alignment';
      fTabSet: JLObject; external name 'TabSet';
      fOrientation: JLObject; external name 'Orientation';
  public
    const
      ALIGN_LEFT = 0;
      ALIGN_CENTER = 1;
      ALIGN_RIGHT = 2;
      ALIGN_JUSTIFIED = 3;
  public
    function toString(): JLString; overload; virtual;
    class function getBidiLevel(para1: JSTAttributeSet): jint; static; overload;
    class procedure setBidiLevel(para1: JSTMutableAttributeSet; para2: jint); static; overload;
    class function getComponent(para1: JSTAttributeSet): JAComponent; static; overload;
    class procedure setComponent(para1: JSTMutableAttributeSet; para2: JAComponent); static; overload;
    class function getIcon(para1: JSTAttributeSet): JSIcon; static; overload;
    class procedure setIcon(para1: JSTMutableAttributeSet; para2: JSIcon); static; overload;
    class function getFontFamily(para1: JSTAttributeSet): JLString; static; overload;
    class procedure setFontFamily(para1: JSTMutableAttributeSet; para2: JLString); static; overload;
    class function getFontSize(para1: JSTAttributeSet): jint; static; overload;
    class procedure setFontSize(para1: JSTMutableAttributeSet; para2: jint); static; overload;
    class function isBold(para1: JSTAttributeSet): jboolean; static; overload;
    class procedure setBold(para1: JSTMutableAttributeSet; para2: jboolean); static; overload;
    class function isItalic(para1: JSTAttributeSet): jboolean; static; overload;
    class procedure setItalic(para1: JSTMutableAttributeSet; para2: jboolean); static; overload;
    class function isUnderline(para1: JSTAttributeSet): jboolean; static; overload;
    class function isStrikeThrough(para1: JSTAttributeSet): jboolean; static; overload;
    class function isSuperscript(para1: JSTAttributeSet): jboolean; static; overload;
    class function isSubscript(para1: JSTAttributeSet): jboolean; static; overload;
    class procedure setUnderline(para1: JSTMutableAttributeSet; para2: jboolean); static; overload;
    class procedure setStrikeThrough(para1: JSTMutableAttributeSet; para2: jboolean); static; overload;
    class procedure setSuperscript(para1: JSTMutableAttributeSet; para2: jboolean); static; overload;
    class procedure setSubscript(para1: JSTMutableAttributeSet; para2: jboolean); static; overload;
    class function getForeground(para1: JSTAttributeSet): JAColor; static; overload;
    class procedure setForeground(para1: JSTMutableAttributeSet; para2: JAColor); static; overload;
    class function getBackground(para1: JSTAttributeSet): JAColor; static; overload;
    class procedure setBackground(para1: JSTMutableAttributeSet; para2: JAColor); static; overload;
    class function getFirstLineIndent(para1: JSTAttributeSet): jfloat; static; overload;
    class procedure setFirstLineIndent(para1: JSTMutableAttributeSet; para2: jfloat); static; overload;
    class function getRightIndent(para1: JSTAttributeSet): jfloat; static; overload;
    class procedure setRightIndent(para1: JSTMutableAttributeSet; para2: jfloat); static; overload;
    class function getLeftIndent(para1: JSTAttributeSet): jfloat; static; overload;
    class procedure setLeftIndent(para1: JSTMutableAttributeSet; para2: jfloat); static; overload;
    class function getLineSpacing(para1: JSTAttributeSet): jfloat; static; overload;
    class procedure setLineSpacing(para1: JSTMutableAttributeSet; para2: jfloat); static; overload;
    class function getSpaceAbove(para1: JSTAttributeSet): jfloat; static; overload;
    class procedure setSpaceAbove(para1: JSTMutableAttributeSet; para2: jfloat); static; overload;
    class function getSpaceBelow(para1: JSTAttributeSet): jfloat; static; overload;
    class procedure setSpaceBelow(para1: JSTMutableAttributeSet; para2: jfloat); static; overload;
    class function getAlignment(para1: JSTAttributeSet): jint; static; overload;
    class procedure setAlignment(para1: JSTMutableAttributeSet; para2: jint); static; overload;
    class function getTabSet(para1: JSTAttributeSet): JSTTabSet; static; overload;
    class procedure setTabSet(para1: JSTMutableAttributeSet; para2: JSTTabSet); static; overload;
  end;

  JSTHMuxingAttributeSet = class external 'javax.swing.text.html' name 'MuxingAttributeSet' (JLObject, JSTAttributeSet, JISerializable)
  public
    type
      InnerMuxingAttributeNameEnumeration = class;
      Arr1InnerMuxingAttributeNameEnumeration = array of InnerMuxingAttributeNameEnumeration;
      Arr2InnerMuxingAttributeNameEnumeration = array of Arr1InnerMuxingAttributeNameEnumeration;
      Arr3InnerMuxingAttributeNameEnumeration = array of Arr2InnerMuxingAttributeNameEnumeration;
      InnerMuxingAttributeNameEnumeration = class external 'javax.swing.text.html' name 'MuxingAttributeNameEnumeration' 
      end;

  public
    constructor create(para1: Arr1JSTAttributeSet); overload;
    constructor create(const para1: array of JSTAttributeSet); overload;
  strict protected
    constructor create(); overload;
    procedure setAttributes(para1: Arr1JSTAttributeSet); overload; virtual;
    procedure setAttributes(var para1: array of JSTAttributeSet); overload; virtual;
    function getAttributes(): Arr1JSTAttributeSet; overload; virtual;
    procedure insertAttributeSetAt(para1: JSTAttributeSet; para2: jint); overload; virtual;
    procedure removeAttributeSetAt(para1: jint); overload; virtual;
  public
    function getAttributeCount(): jint; overload; virtual;
    function isDefined(para1: JLObject): jboolean; overload; virtual;
    function isEqual(para1: JSTAttributeSet): jboolean; overload; virtual;
    function copyAttributes(): JSTAttributeSet; overload; virtual;
    function getAttribute(para1: JLObject): JLObject; overload; virtual;
    function getAttributeNames(): JUEnumeration; overload; virtual;
    function containsAttribute(para1: JLObject; para2: JLObject): jboolean; overload; virtual;
    function containsAttributes(para1: JSTAttributeSet): jboolean; overload; virtual;
    function getResolveParent(): JSTAttributeSet; overload; virtual;
  end;

  JSTStyledDocument = interface external 'javax.swing.text' name 'StyledDocument' (JSTDocument)
    function addStyle(para1: JLString; para2: JSTStyle): JSTStyle; overload;
    procedure removeStyle(para1: JLString); overload;
    function getStyle(para1: JLString): JSTStyle; overload;
    procedure setCharacterAttributes(para1: jint; para2: jint; para3: JSTAttributeSet; para4: jboolean); overload;
    procedure setParagraphAttributes(para1: jint; para2: jint; para3: JSTAttributeSet; para4: jboolean); overload;
    procedure setLogicalStyle(para1: jint; para2: JSTStyle); overload;
    function getLogicalStyle(para1: jint): JSTStyle; overload;
    function getParagraphElement(para1: jint): JSTElement; overload;
    function getCharacterElement(para1: jint): JSTElement; overload;
    function getForeground(para1: JSTAttributeSet): JAColor; overload;
    function getBackground(para1: JSTAttributeSet): JAColor; overload;
    function getFont(para1: JSTAttributeSet): JAFont; overload;
  end;

  JSTLayeredHighlighter = class abstract external 'javax.swing.text' name 'LayeredHighlighter' (JLObject, JSTHighlighter)
  public
    type
      InnerLayerPainter = class;
      Arr1InnerLayerPainter = array of InnerLayerPainter;
      Arr2InnerLayerPainter = array of Arr1InnerLayerPainter;
      Arr3InnerLayerPainter = array of Arr2InnerLayerPainter;
      InnerLayerPainter = class abstract external 'javax.swing.text' name 'LayerPainter' (JLObject, JSTHighlighter.InnerHighlightPainter)
      public
        constructor create(); overload;
        function paintLayer(para1: JAGraphics; para2: jint; para3: jint; para4: JAShape; para5: JSTJTextComponent; para6: JSTView): JAShape; overload; virtual; abstract;
      end;

  public
    constructor create(); overload;
    procedure paintLayeredHighlights(para1: JAGraphics; para2: jint; para3: jint; para4: JAShape; para5: JSTJTextComponent; para6: JSTView); overload; virtual; abstract;
  end;

  JSTNavigationFilter = class external 'javax.swing.text' name 'NavigationFilter' (JLObject)
  public
    type
      InnerFilterBypass = class;
      Arr1InnerFilterBypass = array of InnerFilterBypass;
      Arr2InnerFilterBypass = array of Arr1InnerFilterBypass;
      Arr3InnerFilterBypass = array of Arr2InnerFilterBypass;
      InnerFilterBypass = class abstract external 'javax.swing.text' name 'FilterBypass' (JLObject)
      public
        constructor create(); overload;
        function getCaret(): JSTCaret; overload; virtual; abstract;
        procedure setDot(para1: jint; para2: JSTPosition.InnerBias); overload; virtual; abstract;
        procedure moveDot(para1: jint; para2: JSTPosition.InnerBias); overload; virtual; abstract;
      end;

  public
    constructor create(); overload;
    procedure setDot(para1: JSTNavigationFilter.InnerFilterBypass; para2: jint; para3: JSTPosition.InnerBias); overload; virtual;
    procedure moveDot(para1: JSTNavigationFilter.InnerFilterBypass; para2: jint; para3: JSTPosition.InnerBias); overload; virtual;
    function getNextVisualPositionFrom(para1: JSTJTextComponent; para2: jint; para3: JSTPosition.InnerBias; para4: jint; para5: JSTPosition.Arr1InnerBias): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
    function getNextVisualPositionFrom(para1: JSTJTextComponent; para2: jint; para3: JSTPosition.InnerBias; para4: jint; var para5: array of JSTPosition.InnerBias): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
  end;

  JSTView = class abstract external 'javax.swing.text' name 'View' (JLObject, JSSwingConstants)
  public
    const
      BadBreakWeight = 0;
      GoodBreakWeight = 1000;
      ExcellentBreakWeight = 2000;
      ForcedBreakWeight = 3000;
      X_AXIS = 0;
      Y_AXIS = 1;
  public
    constructor create(para1: JSTElement); overload;
    function getParent(): JSTView; overload; virtual;
    function isVisible(): jboolean; overload; virtual;
    function getPreferredSpan(para1: jint): jfloat; overload; virtual; abstract;
    function getMinimumSpan(para1: jint): jfloat; overload; virtual;
    function getMaximumSpan(para1: jint): jfloat; overload; virtual;
    procedure preferenceChanged(para1: JSTView; para2: jboolean; para3: jboolean); overload; virtual;
    function getAlignment(para1: jint): jfloat; overload; virtual;
    procedure paint(para1: JAGraphics; para2: JAShape); overload; virtual; abstract;
    procedure setParent(para1: JSTView); overload; virtual;
    function getViewCount(): jint; overload; virtual;
    function getView(para1: jint): JSTView; overload; virtual;
    procedure removeAll(); overload; virtual;
    procedure remove(para1: jint); overload; virtual;
    procedure insert(para1: jint; para2: JSTView); overload; virtual;
    procedure append(para1: JSTView); overload; virtual;
    procedure replace(para1: jint; para2: jint; para3: Arr1JSTView); overload; virtual;
    procedure replace(para1: jint; para2: jint; var para3: array of JSTView); overload; virtual;
    function getViewIndex(para1: jint; para2: JSTPosition.InnerBias): jint; overload; virtual;
    function getChildAllocation(para1: jint; para2: JAShape): JAShape; overload; virtual;
    function getNextVisualPositionFrom(para1: jint; para2: JSTPosition.InnerBias; para3: JAShape; para4: jint; para5: JSTPosition.Arr1InnerBias): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
    function getNextVisualPositionFrom(para1: jint; para2: JSTPosition.InnerBias; para3: JAShape; para4: jint; var para5: array of JSTPosition.InnerBias): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
    function modelToView(para1: jint; para2: JAShape; para3: JSTPosition.InnerBias): JAShape; overload; virtual; abstract;  // throws javax.swing.text.BadLocationException
    function modelToView(para1: jint; para2: JSTPosition.InnerBias; para3: jint; para4: JSTPosition.InnerBias; para5: JAShape): JAShape; overload; virtual;  // throws javax.swing.text.BadLocationException
    function viewToModel(para1: jfloat; para2: jfloat; para3: JAShape; para4: JSTPosition.Arr1InnerBias): jint; overload; virtual; abstract;
    function viewToModel(para1: jfloat; para2: jfloat; para3: JAShape; var para4: array of JSTPosition.InnerBias): jint; overload; virtual; abstract;
    procedure insertUpdate(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
    procedure removeUpdate(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
    procedure changedUpdate(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
    function getDocument(): JSTDocument; overload; virtual;
    function getStartOffset(): jint; overload; virtual;
    function getEndOffset(): jint; overload; virtual;
    function getElement(): JSTElement; overload; virtual;
    function getGraphics(): JAGraphics; overload; virtual;
    function getAttributes(): JSTAttributeSet; overload; virtual;
    function breakView(para1: jint; para2: jint; para3: jfloat; para4: jfloat): JSTView; overload; virtual;
    function createFragment(para1: jint; para2: jint): JSTView; overload; virtual;
    function getBreakWeight(para1: jint; para2: jfloat; para3: jfloat): jint; overload; virtual;
    function getResizeWeight(para1: jint): jint; overload; virtual;
    procedure setSize(para1: jfloat; para2: jfloat); overload; virtual;
    function getContainer(): JAContainer; overload; virtual;
    function getViewFactory(): JSTViewFactory; overload; virtual;
    function getToolTipText(para1: jfloat; para2: jfloat; para3: JAShape): JLString; overload; virtual;
    function getViewIndex(para1: jfloat; para2: jfloat; para3: JAShape): jint; overload; virtual;
  strict protected
    function updateChildren(para1: JSEDocumentEvent.InnerElementChange; para2: JSEDocumentEvent; para3: JSTViewFactory): jboolean; overload; virtual;
    procedure forwardUpdate(para1: JSEDocumentEvent.InnerElementChange; para2: JSEDocumentEvent; para3: JAShape; para4: JSTViewFactory); overload; virtual;
    procedure forwardUpdateToView(para1: JSTView; para2: JSEDocumentEvent; para3: JAShape; para4: JSTViewFactory); overload; virtual;
    procedure updateLayout(para1: JSEDocumentEvent.InnerElementChange; para2: JSEDocumentEvent; para3: JAShape); overload; virtual;
  public
    function modelToView(para1: jint; para2: JAShape): JAShape; overload; virtual;  // throws javax.swing.text.BadLocationException
    function viewToModel(para1: jfloat; para2: jfloat; para3: JAShape): jint; overload; virtual;
  end;

  JSTHPAttributeList = class sealed external 'javax.swing.text.html.parser' name 'AttributeList' (JLObject, JSTHPDTDConstants, JISerializable)
  public
    var
      fname: JLString; external name 'name';
      ftype: jint; external name 'type';
      fvalues: JUVector; external name 'values';
      fmodifier: jint; external name 'modifier';
      fvalue: JLString; external name 'value';
      fnext: JSTHPAttributeList; external name 'next';
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: jint; para3: jint; para4: JLString; para5: JUVector; para6: JSTHPAttributeList); overload;
    function getName(): JLString; overload; virtual;
    function getType(): jint; overload; virtual;
    function getModifier(): jint; overload; virtual;
    function getValues(): JUEnumeration; overload; virtual;
    function getValue(): JLString; overload; virtual;
    function getNext(): JSTHPAttributeList; overload; virtual;
    function toString(): JLString; overload; virtual;
    class function name2type(para1: JLString): jint; static; overload;
    class function type2name(para1: jint): JLString; static; overload;
  end;

  JSTHPDTD = class external 'javax.swing.text.html.parser' name 'DTD' (JLObject, JSTHPDTDConstants)
  public
    var
      fname: JLString; external name 'name';
      felements: JUVector; external name 'elements';
      felementHash: JUHashtable; external name 'elementHash';
      fentityHash: JUHashtable; external name 'entityHash';
  public
    final var
      fpcdata: JSTHPElement; external name 'pcdata';
      fhtml: JSTHPElement; external name 'html';
      fmeta: JSTHPElement; external name 'meta';
      fbase: JSTHPElement; external name 'base';
      fisindex: JSTHPElement; external name 'isindex';
      fhead: JSTHPElement; external name 'head';
      fbody: JSTHPElement; external name 'body';
      fapplet: JSTHPElement; external name 'applet';
      fparam: JSTHPElement; external name 'param';
      fp: JSTHPElement; external name 'p';
      ftitle: JSTHPElement; external name 'title';
  public
    const
      FILE_VERSION = 1;
  strict protected
    constructor create(para1: JLString); overload;
  public
    function getName(): JLString; overload; virtual;
    function getEntity(para1: JLString): JSTHPEntity; overload; virtual;
    function getEntity(para1: jint): JSTHPEntity; overload; virtual;
    function getElement(para1: JLString): JSTHPElement; overload; virtual;
    function getElement(para1: jint): JSTHPElement; overload; virtual;
    function defineEntity(para1: JLString; para2: jint; para3: Arr1jchar): JSTHPEntity; overload; virtual;
    function defineEntity(para1: JLString; para2: jint; var para3: array of jchar): JSTHPEntity; overload; virtual;
    function defineElement(para1: JLString; para2: jint; para3: jboolean; para4: jboolean; para5: JSTHPContentModel; para6: JUBitSet; para7: JUBitSet; para8: JSTHPAttributeList): JSTHPElement; overload; virtual;
    procedure defineAttributes(para1: JLString; para2: JSTHPAttributeList); overload; virtual;
    function defEntity(para1: JLString; para2: jint; para3: jint): JSTHPEntity; overload; virtual;
  strict protected
    function defEntity(para1: JLString; para2: jint; para3: JLString): JSTHPEntity; overload; virtual;
    function defElement(para1: JLString; para2: jint; para3: jboolean; para4: jboolean; para5: JSTHPContentModel; para6: Arr1JLString; para7: Arr1JLString; para8: JSTHPAttributeList): JSTHPElement; overload; virtual;
    function defElement(para1: JLString; para2: jint; para3: jboolean; para4: jboolean; para5: JSTHPContentModel; var para6: array of JLString; var para7: array of JLString; para8: JSTHPAttributeList): JSTHPElement; overload; virtual;
    function defAttributeList(para1: JLString; para2: jint; para3: jint; para4: JLString; para5: JLString; para6: JSTHPAttributeList): JSTHPAttributeList; overload; virtual;
    function defContentModel(para1: jint; para2: JLObject; para3: JSTHPContentModel): JSTHPContentModel; overload; virtual;
  public
    function toString(): JLString; overload; virtual;
    class procedure putDTDHash(para1: JLString; para2: JSTHPDTD); static; overload;
    class function getDTD(para1: JLString): JSTHPDTD; static; overload;  // throws java.io.IOException
    procedure read(para1: JIDataInputStream); overload; virtual;  // throws java.io.IOException
  end;

  JSTHPElement = class sealed external 'javax.swing.text.html.parser' name 'Element' (JLObject, JSTHPDTDConstants, JISerializable)
  public
    var
      findex: jint; external name 'index';
      fname: JLString; external name 'name';
      foStart: jboolean; external name 'oStart';
      foEnd: jboolean; external name 'oEnd';
      finclusions: JUBitSet; external name 'inclusions';
      fexclusions: JUBitSet; external name 'exclusions';
      ftype: jint; external name 'type';
      fcontent: JSTHPContentModel; external name 'content';
      fatts: JSTHPAttributeList; external name 'atts';
      fdata: JLObject; external name 'data';
  public
    function getName(): JLString; overload; virtual;
    function omitStart(): jboolean; overload; virtual;
    function omitEnd(): jboolean; overload; virtual;
    function getType(): jint; overload; virtual;
    function getContent(): JSTHPContentModel; overload; virtual;
    function getAttributes(): JSTHPAttributeList; overload; virtual;
    function getIndex(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    function getAttribute(para1: JLString): JSTHPAttributeList; overload; virtual;
    function getAttributeByValue(para1: JLString): JSTHPAttributeList; overload; virtual;
    class function name2type(para1: JLString): jint; static; overload;
  end;

  JSTHPEntity = class sealed external 'javax.swing.text.html.parser' name 'Entity' (JLObject, JSTHPDTDConstants)
  public
    var
      fname: JLString; external name 'name';
      ftype: jint; external name 'type';
      fdata: Arr1jchar; external name 'data';
  public
    constructor create(para1: JLString; para2: jint; para3: Arr1jchar); overload;
    constructor create(para1: JLString; para2: jint; const para3: array of jchar); overload;
    function getName(): JLString; overload; virtual;
    function getType(): jint; overload; virtual;
    function isParameter(): jboolean; overload; virtual;
    function isGeneral(): jboolean; overload; virtual;
    function getData(): Arr1jchar; overload; virtual;
    function getString(): JLString; overload; virtual;
    class function name2type(para1: JLString): jint; static; overload;
  end;

  JSTHPParser = class external 'javax.swing.text.html.parser' name 'Parser' (JLObject, JSTHPDTDConstants)
  strict protected
    var
      fdtd: JSTHPDTD; external name 'dtd';
      fstrict: jboolean; external name 'strict';
  public
    constructor create(para1: JSTHPDTD); overload;
  strict protected
    function getCurrentLine(): jint; overload; virtual;
    function makeTag(para1: JSTHPElement; para2: jboolean): JSTHPTagElement; overload; virtual;
    function makeTag(para1: JSTHPElement): JSTHPTagElement; overload; virtual;
    function getAttributes(): JSTSimpleAttributeSet; overload; virtual;
    procedure flushAttributes(); overload; virtual;
    procedure handleText(para1: Arr1jchar); overload; virtual;
    procedure handleText(var para1: array of jchar); overload; virtual;
    procedure handleTitle(para1: Arr1jchar); overload; virtual;
    procedure handleTitle(var para1: array of jchar); overload; virtual;
    procedure handleComment(para1: Arr1jchar); overload; virtual;
    procedure handleComment(var para1: array of jchar); overload; virtual;
    procedure handleEOFInComment(); overload; virtual;
    procedure handleEmptyTag(para1: JSTHPTagElement); overload; virtual;  // throws javax.swing.text.ChangedCharSetException
    procedure handleStartTag(para1: JSTHPTagElement); overload; virtual;
    procedure handleEndTag(para1: JSTHPTagElement); overload; virtual;
    procedure handleError(para1: jint; para2: JLString); overload; virtual;
    procedure error(para1: JLString; para2: JLString; para3: JLString; para4: JLString); overload; virtual;
    procedure error(para1: JLString; para2: JLString; para3: JLString); overload; virtual;
    procedure error(para1: JLString; para2: JLString); overload; virtual;
    procedure error(para1: JLString); overload; virtual;
    procedure startTag(para1: JSTHPTagElement); overload; virtual;  // throws javax.swing.text.ChangedCharSetException
    procedure endTag(para1: jboolean); overload; virtual;
    procedure markFirstTime(para1: JSTHPElement); overload; virtual;
  public
    function parseDTDMarkup(): JLString; overload; virtual;  // throws java.io.IOException
  strict protected
    function parseMarkupDeclarations(para1: JLStringBuffer): jboolean; overload; virtual;  // throws java.io.IOException
  public
    procedure parse(para1: JIReader); overload; virtual;  // throws java.io.IOException
  strict protected
    function getCurrentPos(): jint; overload; virtual;
  end;

  JSTHPTagStack = class sealed external 'javax.swing.text.html.parser' name 'TagStack' (JLObject, JSTHPDTDConstants)
  public
    function first(): JSTHPElement; overload; virtual;
    function contentModel(): JSTHPContentModel; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSTAbstractLayoutCache = class abstract external 'javax.swing.tree' name 'AbstractLayoutCache' (JLObject, JSTRowMapper)
  public
    type
      InnerNodeDimensions = class;
      Arr1InnerNodeDimensions = array of InnerNodeDimensions;
      Arr2InnerNodeDimensions = array of Arr1InnerNodeDimensions;
      Arr3InnerNodeDimensions = array of Arr2InnerNodeDimensions;
      InnerNodeDimensions = class abstract external 'javax.swing.tree' name 'NodeDimensions' (JLObject)
      public
        constructor create(); overload;
        function getNodeDimensions(para1: JLObject; para2: jint; para3: jint; para4: jboolean; para5: JARectangle): JARectangle; overload; virtual; abstract;
      end;

  strict protected
    var
      fnodeDimensions: JSTAbstractLayoutCache.InnerNodeDimensions; external name 'nodeDimensions';
      ftreeModel: JSTTreeModel; external name 'treeModel';
      ftreeSelectionModel: JSTTreeSelectionModel; external name 'treeSelectionModel';
      frootVisible: jboolean; external name 'rootVisible';
      frowHeight: jint; external name 'rowHeight';
  public
    constructor create(); overload;
    procedure setNodeDimensions(para1: JSTAbstractLayoutCache.InnerNodeDimensions); overload; virtual;
    function getNodeDimensions(): JSTAbstractLayoutCache.InnerNodeDimensions; overload; virtual;
    procedure setModel(para1: JSTTreeModel); overload; virtual;
    function getModel(): JSTTreeModel; overload; virtual;
    procedure setRootVisible(para1: jboolean); overload; virtual;
    function isRootVisible(): jboolean; overload; virtual;
    procedure setRowHeight(para1: jint); overload; virtual;
    function getRowHeight(): jint; overload; virtual;
    procedure setSelectionModel(para1: JSTTreeSelectionModel); overload; virtual;
    function getSelectionModel(): JSTTreeSelectionModel; overload; virtual;
    function getPreferredHeight(): jint; overload; virtual;
    function getPreferredWidth(para1: JARectangle): jint; overload; virtual;
    function isExpanded(para1: JSTTreePath): jboolean; overload; virtual; abstract;
    function getBounds(para1: JSTTreePath; para2: JARectangle): JARectangle; overload; virtual; abstract;
    function getPathForRow(para1: jint): JSTTreePath; overload; virtual; abstract;
    function getRowForPath(para1: JSTTreePath): jint; overload; virtual; abstract;
    function getPathClosestTo(para1: jint; para2: jint): JSTTreePath; overload; virtual; abstract;
    function getVisiblePathsFrom(para1: JSTTreePath): JUEnumeration; overload; virtual; abstract;
    function getVisibleChildCount(para1: JSTTreePath): jint; overload; virtual; abstract;
    procedure setExpandedState(para1: JSTTreePath; para2: jboolean); overload; virtual; abstract;
    function getExpandedState(para1: JSTTreePath): jboolean; overload; virtual; abstract;
    function getRowCount(): jint; overload; virtual; abstract;
    procedure invalidateSizes(); overload; virtual; abstract;
    procedure invalidatePathBounds(para1: JSTTreePath); overload; virtual; abstract;
    procedure treeNodesChanged(para1: JSETreeModelEvent); overload; virtual; abstract;
    procedure treeNodesInserted(para1: JSETreeModelEvent); overload; virtual; abstract;
    procedure treeNodesRemoved(para1: JSETreeModelEvent); overload; virtual; abstract;
    procedure treeStructureChanged(para1: JSETreeModelEvent); overload; virtual; abstract;
    function getRowsForPaths(para1: Arr1JSTTreePath): Arr1jint; overload; virtual;
    function getRowsForPaths(var para1: array of JSTTreePath): Arr1jint; overload; virtual;
  strict protected
    function getNodeDimensions(para1: JLObject; para2: jint; para3: jint; para4: jboolean; para5: JARectangle): JARectangle; overload; virtual;
    function isFixedRowHeight(): jboolean; overload; virtual;
  end;

  JSTDefaultTreeModel = class external 'javax.swing.tree' name 'DefaultTreeModel' (JLObject, JISerializable, JSTTreeModel)
  strict protected
    var
      froot: JSTTreeNode; external name 'root';
      flistenerList: JSEEventListenerList; external name 'listenerList';
      fasksAllowsChildren: jboolean; external name 'asksAllowsChildren';
  public
    constructor create(para1: JSTTreeNode); overload;
    constructor create(para1: JSTTreeNode; para2: jboolean); overload;
    procedure setAsksAllowsChildren(para1: jboolean); overload; virtual;
    function asksAllowsChildren(): jboolean; overload; virtual;
    procedure setRoot(para1: JSTTreeNode); overload; virtual;
    function getRoot(): JLObject; overload; virtual;
    function getIndexOfChild(para1: JLObject; para2: JLObject): jint; overload; virtual;
    function getChild(para1: JLObject; para2: jint): JLObject; overload; virtual;
    function getChildCount(para1: JLObject): jint; overload; virtual;
    function isLeaf(para1: JLObject): jboolean; overload; virtual;
    procedure reload(); overload; virtual;
    procedure valueForPathChanged(para1: JSTTreePath; para2: JLObject); overload; virtual;
    procedure insertNodeInto(para1: JSTMutableTreeNode; para2: JSTMutableTreeNode; para3: jint); overload; virtual;
    procedure removeNodeFromParent(para1: JSTMutableTreeNode); overload; virtual;
    procedure nodeChanged(para1: JSTTreeNode); overload; virtual;
    procedure reload(para1: JSTTreeNode); overload; virtual;
    procedure nodesWereInserted(para1: JSTTreeNode; para2: Arr1jint); overload; virtual;
    procedure nodesWereInserted(para1: JSTTreeNode; var para2: array of jint); overload; virtual;
    procedure nodesWereRemoved(para1: JSTTreeNode; para2: Arr1jint; para3: Arr1JLObject); overload; virtual;
    procedure nodesWereRemoved(para1: JSTTreeNode; var para2: array of jint; var para3: array of JLObject); overload; virtual;
    procedure nodesChanged(para1: JSTTreeNode; para2: Arr1jint); overload; virtual;
    procedure nodesChanged(para1: JSTTreeNode; var para2: array of jint); overload; virtual;
    procedure nodeStructureChanged(para1: JSTTreeNode); overload; virtual;
    function getPathToRoot(para1: JSTTreeNode): Arr1JSTTreeNode; overload; virtual;
  strict protected
    function getPathToRoot(para1: JSTTreeNode; para2: jint): Arr1JSTTreeNode; overload; virtual;
  public
    procedure addTreeModelListener(para1: JSETreeModelListener); overload; virtual;
    procedure removeTreeModelListener(para1: JSETreeModelListener); overload; virtual;
    function getTreeModelListeners(): Arr1JSETreeModelListener; overload; virtual;
  strict protected
    procedure fireTreeNodesChanged(para1: JLObject; para2: Arr1JLObject; para3: Arr1jint; para4: Arr1JLObject); overload; virtual;
    procedure fireTreeNodesChanged(para1: JLObject; var para2: array of JLObject; var para3: array of jint; var para4: array of JLObject); overload; virtual;
    procedure fireTreeNodesInserted(para1: JLObject; para2: Arr1JLObject; para3: Arr1jint; para4: Arr1JLObject); overload; virtual;
    procedure fireTreeNodesInserted(para1: JLObject; var para2: array of JLObject; var para3: array of jint; var para4: array of JLObject); overload; virtual;
    procedure fireTreeNodesRemoved(para1: JLObject; para2: Arr1JLObject; para3: Arr1jint; para4: Arr1JLObject); overload; virtual;
    procedure fireTreeNodesRemoved(para1: JLObject; var para2: array of JLObject; var para3: array of jint; var para4: array of JLObject); overload; virtual;
    procedure fireTreeStructureChanged(para1: JLObject; para2: Arr1JLObject; para3: Arr1jint; para4: Arr1JLObject); overload; virtual;
    procedure fireTreeStructureChanged(para1: JLObject; var para2: array of JLObject; var para3: array of jint; var para4: array of JLObject); overload; virtual;
  public
    function getListeners(para1: JLClass): Arr1JUEventListener; overload; virtual;
  end;

  JSTMutableTreeNode = interface external 'javax.swing.tree' name 'MutableTreeNode' (JSTTreeNode)
    procedure insert(para1: JSTMutableTreeNode; para2: jint); overload;
    procedure remove(para1: jint); overload;
    procedure remove(para1: JSTMutableTreeNode); overload;
    procedure setUserObject(para1: JLObject); overload;
    procedure removeFromParent(); overload;
    procedure setParent(para1: JSTMutableTreeNode); overload;
  end;

  JSTDefaultTreeSelectionModel = class external 'javax.swing.tree' name 'DefaultTreeSelectionModel' (JLObject, JLCloneable, JISerializable, JSTTreeSelectionModel)
  public
    const
      SELECTION_MODE_PROPERTY = 'selectionMode';
  strict protected
    var
      fchangeSupport: JSESwingPropertyChangeSupport; external name 'changeSupport';
      fselection: Arr1JSTTreePath; external name 'selection';
      flistenerList: JSEEventListenerList; external name 'listenerList';
      frowMapper: JSTRowMapper; external name 'rowMapper';
      flistSelectionModel: JSDefaultListSelectionModel; external name 'listSelectionModel';
      fselectionMode: jint; external name 'selectionMode';
      fleadPath: JSTTreePath; external name 'leadPath';
      fleadIndex: jint; external name 'leadIndex';
      fleadRow: jint; external name 'leadRow';
  public
    constructor create(); overload;
    procedure setRowMapper(para1: JSTRowMapper); overload; virtual;
    function getRowMapper(): JSTRowMapper; overload; virtual;
    procedure setSelectionMode(para1: jint); overload; virtual;
    function getSelectionMode(): jint; overload; virtual;
    procedure setSelectionPath(para1: JSTTreePath); overload; virtual;
    procedure setSelectionPaths(para1: Arr1JSTTreePath); overload; virtual;
    procedure setSelectionPaths(var para1: array of JSTTreePath); overload; virtual;
    procedure addSelectionPath(para1: JSTTreePath); overload; virtual;
    procedure addSelectionPaths(para1: Arr1JSTTreePath); overload; virtual;
    procedure addSelectionPaths(var para1: array of JSTTreePath); overload; virtual;
    procedure removeSelectionPath(para1: JSTTreePath); overload; virtual;
    procedure removeSelectionPaths(para1: Arr1JSTTreePath); overload; virtual;
    procedure removeSelectionPaths(var para1: array of JSTTreePath); overload; virtual;
    function getSelectionPath(): JSTTreePath; overload; virtual;
    function getSelectionPaths(): Arr1JSTTreePath; overload; virtual;
    function getSelectionCount(): jint; overload; virtual;
    function isPathSelected(para1: JSTTreePath): jboolean; overload; virtual;
    function isSelectionEmpty(): jboolean; overload; virtual;
    procedure clearSelection(); overload; virtual;
    procedure addTreeSelectionListener(para1: JSETreeSelectionListener); overload; virtual;
    procedure removeTreeSelectionListener(para1: JSETreeSelectionListener); overload; virtual;
    function getTreeSelectionListeners(): Arr1JSETreeSelectionListener; overload; virtual;
  strict protected
    procedure fireValueChanged(para1: JSETreeSelectionEvent); overload; virtual;
  public
    function getListeners(para1: JLClass): Arr1JUEventListener; overload; virtual;
    function getSelectionRows(): Arr1jint; overload; virtual;
    function getMinSelectionRow(): jint; overload; virtual;
    function getMaxSelectionRow(): jint; overload; virtual;
    function isRowSelected(para1: jint): jboolean; overload; virtual;
    procedure resetRowSelection(); overload; virtual;
    function getLeadSelectionRow(): jint; overload; virtual;
    function getLeadSelectionPath(): JSTTreePath; overload; virtual;
    procedure addPropertyChangeListener(para1: JBPropertyChangeListener); overload; virtual;
    procedure removePropertyChangeListener(para1: JBPropertyChangeListener); overload; virtual;
    function getPropertyChangeListeners(): Arr1JBPropertyChangeListener; overload; virtual;
  strict protected
    procedure insureRowContinuity(); overload; virtual;
    function arePathsContiguous(para1: Arr1JSTTreePath): jboolean; overload; virtual;
    function arePathsContiguous(var para1: array of JSTTreePath): jboolean; overload; virtual;
    function canPathsBeAdded(para1: Arr1JSTTreePath): jboolean; overload; virtual;
    function canPathsBeAdded(var para1: array of JSTTreePath): jboolean; overload; virtual;
    function canPathsBeRemoved(para1: Arr1JSTTreePath): jboolean; overload; virtual;
    function canPathsBeRemoved(var para1: array of JSTTreePath): jboolean; overload; virtual;
    procedure notifyPathChange(para1: JUVector; para2: JSTTreePath); overload; virtual;
    procedure updateLeadIndex(); overload; virtual;
    procedure insureUniqueness(); overload; virtual;
  public
    function toString(): JLString; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  JSUAbstractUndoableEdit = class external 'javax.swing.undo' name 'AbstractUndoableEdit' (JLObject, JSUUndoableEdit, JISerializable)
  strict protected
    const
      UndoName = 'Undo';
      RedoName = 'Redo';
  public
    constructor create(); overload;
    procedure die(); overload; virtual;
    procedure undo(); overload; virtual;  // throws javax.swing.undo.CannotUndoException
    function canUndo(): jboolean; overload; virtual;
    procedure redo(); overload; virtual;  // throws javax.swing.undo.CannotRedoException
    function canRedo(): jboolean; overload; virtual;
    function addEdit(para1: JSUUndoableEdit): jboolean; overload; virtual;
    function replaceEdit(para1: JSUUndoableEdit): jboolean; overload; virtual;
    function isSignificant(): jboolean; overload; virtual;
    function getPresentationName(): JLString; overload; virtual;
    function getUndoPresentationName(): JLString; overload; virtual;
    function getRedoPresentationName(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JTDiagnosticCollector = class sealed external 'javax.tools' name 'DiagnosticCollector' (JLObject, JTDiagnosticListener)
  public
    constructor create(); overload;
    procedure report(para1: JTDiagnostic); overload; virtual;
    function getDiagnostics(): JUList; overload; virtual;
  end;

  JTForwardingFileObject = class external 'javax.tools' name 'ForwardingFileObject' (JLObject, JTFileObject)
  strict protected
    final var
      ffileObject: JTFileObject; external name 'fileObject';
  strict protected
    constructor create(para1: JTFileObject); overload;
  public
    function toUri(): JNURI; overload; virtual;
    function getName(): JLString; overload; virtual;
    function openInputStream(): JIInputStream; overload; virtual;  // throws java.io.IOException
    function openOutputStream(): JIOutputStream; overload; virtual;  // throws java.io.IOException
    function openReader(para1: jboolean): JIReader; overload; virtual;  // throws java.io.IOException
    function getCharContent(para1: jboolean): JLCharSequence; overload; virtual;  // throws java.io.IOException
    function openWriter(): JIWriter; overload; virtual;  // throws java.io.IOException
    function getLastModified(): jlong; overload; virtual;
    function delete(): jboolean; overload; virtual;
  end;

  JTJavaFileObject = interface external 'javax.tools' name 'JavaFileObject' (JTFileObject)
    type
      InnerKind = class;
      Arr1InnerKind = array of InnerKind;
      Arr2InnerKind = array of Arr1InnerKind;
      Arr3InnerKind = array of Arr2InnerKind;
      InnerKind = class sealed external 'javax.tools' name 'Kind' (JLEnum)
      public
        final class var
          fSOURCE: JTJavaFileObject.InnerKind; external name 'SOURCE';
          fCLASS: JTJavaFileObject.InnerKind; external name 'CLASS';
          fHTML: JTJavaFileObject.InnerKind; external name 'HTML';
          fOTHER: JTJavaFileObject.InnerKind; external name 'OTHER';
      public
        final var
          fextension: JLString; external name 'extension';
      public
        class function values(): JTJavaFileObject.Arr1InnerKind; static; overload;
        class function valueOf(para1: JLString): JTJavaFileObject.InnerKind; static; overload;
      end;

    function getKind(): JTJavaFileObject.InnerKind; overload;
    function isNameCompatible(para1: JLString; para2: JTJavaFileObject.InnerKind): jboolean; overload;
    function getNestingKind(): JLMENestingKind; overload;
    function getAccessLevel(): JLMEModifier; overload;
  end;

  JTJavaCompiler = interface external 'javax.tools' name 'JavaCompiler' (JTTool, JTOptionChecker)
    type
      InnerCompilationTask = interface;
      Arr1InnerCompilationTask = array of InnerCompilationTask;
      Arr2InnerCompilationTask = array of Arr1InnerCompilationTask;
      Arr3InnerCompilationTask = array of Arr2InnerCompilationTask;
      InnerCompilationTask = interface external 'javax.tools' name 'CompilationTask' (JUCCallable)
        procedure setProcessors(para1: JLIterable); overload;
        procedure setLocale(para1: JULocale); overload;
        function call(): JLBoolean; overload;
      end;

    function getTask(para1: JIWriter; para2: JTJavaFileManager; para3: JTDiagnosticListener; para4: JLIterable; para5: JLIterable; para6: JLIterable): JTJavaCompiler.InnerCompilationTask; overload;
    function getStandardFileManager(para1: JTDiagnosticListener; para2: JULocale; para3: JNCCharset): JTStandardJavaFileManager; overload;
  end;

  JXBDatatypeConverterImpl = class sealed external 'javax.xml.bind' name 'DatatypeConverterImpl' (JLObject, JXBDatatypeConverterInterface)
  public
    type
      InnerCalendarFormatter = class;
      Arr1InnerCalendarFormatter = array of InnerCalendarFormatter;
      Arr2InnerCalendarFormatter = array of Arr1InnerCalendarFormatter;
      Arr3InnerCalendarFormatter = array of Arr2InnerCalendarFormatter;
      InnerCalendarFormatter = class sealed external 'javax.xml.bind' name 'CalendarFormatter' 
      end;

  public
    final class var
      ftheInstance: JXBDatatypeConverterInterface; external name 'theInstance';
  strict protected
    constructor create(); overload;
  public
    function parseString(para1: JLString): JLString; overload; virtual;
    function parseInteger(para1: JLString): JMBigInteger; overload; virtual;
    class function _parseInteger(para1: JLCharSequence): JMBigInteger; static; overload;
    function printInteger(para1: JMBigInteger): JLString; overload; virtual;
    class function _printInteger(para1: JMBigInteger): JLString; static; overload;
    function parseInt(para1: JLString): jint; overload; virtual;
    class function _parseInt(para1: JLCharSequence): jint; static; overload;
    function parseLong(para1: JLString): jlong; overload; virtual;
    class function _parseLong(para1: JLCharSequence): jlong; static; overload;
    function parseShort(para1: JLString): jshort; overload; virtual;
    class function _parseShort(para1: JLCharSequence): jshort; static; overload;
    function printShort(para1: jshort): JLString; overload; virtual;
    class function _printShort(para1: jshort): JLString; static; overload;
    function parseDecimal(para1: JLString): JMBigDecimal; overload; virtual;
    class function _parseDecimal(para1: JLCharSequence): JMBigDecimal; static; overload;
    function parseFloat(para1: JLString): jfloat; overload; virtual;
    class function _parseFloat(para1: JLCharSequence): jfloat; static; overload;
    function printFloat(para1: jfloat): JLString; overload; virtual;
    class function _printFloat(para1: jfloat): JLString; static; overload;
    function parseDouble(para1: JLString): jdouble; overload; virtual;
    class function _parseDouble(para1: JLCharSequence): jdouble; static; overload;
    function parseBoolean(para1: JLString): jboolean; overload; virtual;
    class function _parseBoolean(para1: JLCharSequence): jboolean; static; overload;
    function printBoolean(para1: jboolean): JLString; overload; virtual;
    class function _printBoolean(para1: jboolean): JLString; static; overload;
    function parseByte(para1: JLString): jbyte; overload; virtual;
    class function _parseByte(para1: JLCharSequence): jbyte; static; overload;
    function printByte(para1: jbyte): JLString; overload; virtual;
    class function _printByte(para1: jbyte): JLString; static; overload;
    function parseQName(para1: JLString; para2: JXNNamespaceContext): JXNQName; overload; virtual;
    class function _parseQName(para1: JLCharSequence; para2: JXNNamespaceContext): JXNQName; static; overload;
    function parseDateTime(para1: JLString): JUCalendar; overload; virtual;
    class function _parseDateTime(para1: JLCharSequence): JUGregorianCalendar; static; overload;
    function printDateTime(para1: JUCalendar): JLString; overload; virtual;
    class function _printDateTime(para1: JUCalendar): JLString; static; overload;
    function parseBase64Binary(para1: JLString): Arr1jbyte; overload; virtual;
    function parseHexBinary(para1: JLString): Arr1jbyte; overload; virtual;
    function printHexBinary(para1: Arr1jbyte): JLString; overload; virtual;
    function printHexBinary(var para1: array of jbyte): JLString; overload; virtual;
    function parseUnsignedInt(para1: JLString): jlong; overload; virtual;
    function printUnsignedInt(para1: jlong): JLString; overload; virtual;
    function parseUnsignedShort(para1: JLString): jint; overload; virtual;
    function parseTime(para1: JLString): JUCalendar; overload; virtual;
    function printTime(para1: JUCalendar): JLString; overload; virtual;
    function parseDate(para1: JLString): JUCalendar; overload; virtual;
    function printDate(para1: JUCalendar): JLString; overload; virtual;
    function parseAnySimpleType(para1: JLString): JLString; overload; virtual;
    function printString(para1: JLString): JLString; overload; virtual;
    function printInt(para1: jint): JLString; overload; virtual;
    class function _printInt(para1: jint): JLString; static; overload;
    function printLong(para1: jlong): JLString; overload; virtual;
    class function _printLong(para1: jlong): JLString; static; overload;
    function printDecimal(para1: JMBigDecimal): JLString; overload; virtual;
    class function _printDecimal(para1: JMBigDecimal): JLString; static; overload;
    function printDouble(para1: jdouble): JLString; overload; virtual;
    class function _printDouble(para1: jdouble): JLString; static; overload;
    function printQName(para1: JXNQName; para2: JXNNamespaceContext): JLString; overload; virtual;
    class function _printQName(para1: JXNQName; para2: JXNNamespaceContext): JLString; static; overload;
    function printBase64Binary(para1: Arr1jbyte): JLString; overload; virtual;
    function printBase64Binary(var para1: array of jbyte): JLString; overload; virtual;
    function printUnsignedShort(para1: jint): JLString; overload; virtual;
    function printAnySimpleType(para1: JLString): JLString; overload; virtual;
    class function installHook(para1: JLString): JLString; static; overload;
    class function _parseBase64Binary(para1: JLString): Arr1jbyte; static; overload;
    class function encode(para1: jint): jchar; static; overload;
    class function encodeByte(para1: jint): jbyte; static; overload;
    class function _printBase64Binary(para1: Arr1jbyte): JLString; static; overload;
    class function _printBase64Binary(var para1: array of jbyte): JLString; static; overload;
    class function _printBase64Binary(para1: Arr1jbyte; para2: jint; para3: jint): JLString; static; overload;
    class function _printBase64Binary(var para1: array of jbyte; para2: jint; para3: jint): JLString; static; overload;
    class function _printBase64Binary(para1: Arr1jbyte; para2: jint; para3: jint; para4: Arr1jchar; para5: jint): jint; static; overload;
    class function _printBase64Binary(var para1: array of jbyte; para2: jint; para3: jint; var para4: array of jchar; para5: jint): jint; static; overload;
    class function _printBase64Binary(para1: Arr1jbyte; para2: jint; para3: jint; para4: Arr1jbyte; para5: jint): jint; static; overload;
    class function _printBase64Binary(var para1: array of jbyte; para2: jint; para3: jint; var para4: array of jbyte; para5: jint): jint; static; overload;
  end;

  JXBHAbstractMarshallerImpl = class abstract external 'javax.xml.bind.helpers' name 'AbstractMarshallerImpl' (JLObject, JXBMarshaller)
  public
    constructor create(); overload;
    procedure marshal(para1: JLObject; para2: JIOutputStream); overload; virtual; final;  // throws javax.xml.bind.JAXBException
    procedure marshal(para1: JLObject; para2: JIFile); overload; virtual;  // throws javax.xml.bind.JAXBException
    procedure marshal(para1: JLObject; para2: JIWriter); overload; virtual; final;  // throws javax.xml.bind.JAXBException
    procedure marshal(para1: JLObject; para2: OXSContentHandler); overload; virtual; final;  // throws javax.xml.bind.JAXBException
    procedure marshal(para1: JLObject; para2: OWDNode); overload; virtual; final;  // throws javax.xml.bind.JAXBException
    function getNode(para1: JLObject): OWDNode; overload; virtual;  // throws javax.xml.bind.JAXBException
  strict protected
    function getEncoding(): JLString; overload; virtual;
    procedure setEncoding(para1: JLString); overload; virtual;
    function getSchemaLocation(): JLString; overload; virtual;
    procedure setSchemaLocation(para1: JLString); overload; virtual;
    function getNoNSSchemaLocation(): JLString; overload; virtual;
    procedure setNoNSSchemaLocation(para1: JLString); overload; virtual;
    function isFormattedOutput(): jboolean; overload; virtual;
    procedure setFormattedOutput(para1: jboolean); overload; virtual;
    function isFragment(): jboolean; overload; virtual;
    procedure setFragment(para1: jboolean); overload; virtual;
    function getJavaEncoding(para1: JLString): JLString; overload; virtual;  // throws java.io.UnsupportedEncodingException
  public
    procedure setProperty(para1: JLString; para2: JLObject); overload; virtual;  // throws javax.xml.bind.PropertyException
    function getProperty(para1: JLString): JLObject; overload; virtual;  // throws javax.xml.bind.PropertyException
    function getEventHandler(): JXBValidationEventHandler; overload; virtual;  // throws javax.xml.bind.JAXBException
    procedure setEventHandler(para1: JXBValidationEventHandler); overload; virtual;  // throws javax.xml.bind.JAXBException
    procedure marshal(para1: JLObject; para2: JXSXMLEventWriter); overload; virtual;  // throws javax.xml.bind.JAXBException
    procedure marshal(para1: JLObject; para2: JXSXMLStreamWriter); overload; virtual;  // throws javax.xml.bind.JAXBException
    procedure setSchema(para1: JXVSchema); overload; virtual;
    function getSchema(): JXVSchema; overload; virtual;
    procedure setAdapter(para1: JXBAAXmlAdapter); overload; virtual;
    procedure setAdapter(para1: JLClass; para2: JXBAAXmlAdapter); overload; virtual;
    function getAdapter(para1: JLClass): JXBAAXmlAdapter; overload; virtual;
    procedure setAttachmentMarshaller(para1: JXBAAttachmentMarshaller); overload; virtual;
    function getAttachmentMarshaller(): JXBAAttachmentMarshaller; overload; virtual;
    procedure setListener(para1: JXBMarshaller.InnerListener); overload; virtual;
    function getListener(): JXBMarshaller.InnerListener; overload; virtual;
  end;

  JXBHAbstractUnmarshallerImpl = class abstract external 'javax.xml.bind.helpers' name 'AbstractUnmarshallerImpl' (JLObject, JXBUnmarshaller)
  strict protected
    var
      fvalidating: jboolean; external name 'validating';
  public
    constructor create(); overload;
  strict protected
    function getXMLReader(): OXSXMLReader; overload; virtual;  // throws javax.xml.bind.JAXBException
  public
    function unmarshal(para1: JXTSource): JLObject; overload; virtual;  // throws javax.xml.bind.JAXBException
  strict protected
    function unmarshal(para1: OXSXMLReader; para2: OXSInputSource): JLObject; overload; virtual; abstract;  // throws javax.xml.bind.JAXBException
  public
    function unmarshal(para1: OXSInputSource): JLObject; overload; virtual; final;  // throws javax.xml.bind.JAXBException
    function unmarshal(para1: JNURL): JLObject; overload; virtual; final;  // throws javax.xml.bind.JAXBException
    function unmarshal(para1: JIFile): JLObject; overload; virtual; final;  // throws javax.xml.bind.JAXBException
    function unmarshal(para1: JIInputStream): JLObject; overload; virtual; final;  // throws javax.xml.bind.JAXBException
    function unmarshal(para1: JIReader): JLObject; overload; virtual; final;  // throws javax.xml.bind.JAXBException
    function isValidating(): jboolean; overload; virtual;  // throws javax.xml.bind.JAXBException
    procedure setEventHandler(para1: JXBValidationEventHandler); overload; virtual;  // throws javax.xml.bind.JAXBException
    procedure setValidating(para1: jboolean); overload; virtual;  // throws javax.xml.bind.JAXBException
    function getEventHandler(): JXBValidationEventHandler; overload; virtual;  // throws javax.xml.bind.JAXBException
  strict protected
    function createUnmarshalException(para1: OXSSAXException): JXBUnmarshalException; overload; virtual;
  public
    procedure setProperty(para1: JLString; para2: JLObject); overload; virtual;  // throws javax.xml.bind.PropertyException
    function getProperty(para1: JLString): JLObject; overload; virtual;  // throws javax.xml.bind.PropertyException
    function unmarshal(para1: JXSXMLEventReader): JLObject; overload; virtual;  // throws javax.xml.bind.JAXBException
    function unmarshal(para1: JXSXMLStreamReader): JLObject; overload; virtual;  // throws javax.xml.bind.JAXBException
    function unmarshal(para1: OWDNode; para2: JLClass): JXBJAXBElement; overload; virtual;  // throws javax.xml.bind.JAXBException
    function unmarshal(para1: JXTSource; para2: JLClass): JXBJAXBElement; overload; virtual;  // throws javax.xml.bind.JAXBException
    function unmarshal(para1: JXSXMLStreamReader; para2: JLClass): JXBJAXBElement; overload; virtual;  // throws javax.xml.bind.JAXBException
    function unmarshal(para1: JXSXMLEventReader; para2: JLClass): JXBJAXBElement; overload; virtual;  // throws javax.xml.bind.JAXBException
    procedure setSchema(para1: JXVSchema); overload; virtual;
    function getSchema(): JXVSchema; overload; virtual;
    procedure setAdapter(para1: JXBAAXmlAdapter); overload; virtual;
    procedure setAdapter(para1: JLClass; para2: JXBAAXmlAdapter); overload; virtual;
    function getAdapter(para1: JLClass): JXBAAXmlAdapter; overload; virtual;
    procedure setAttachmentUnmarshaller(para1: JXBAAttachmentUnmarshaller); overload; virtual;
    function getAttachmentUnmarshaller(): JXBAAttachmentUnmarshaller; overload; virtual;
    procedure setListener(para1: JXBUnmarshaller.InnerListener); overload; virtual;
    function getListener(): JXBUnmarshaller.InnerListener; overload; virtual;
  end;

  JXBNotIdentifiableEvent = interface external 'javax.xml.bind' name 'NotIdentifiableEvent' (JXBValidationEvent)
  end;

  JXBParseConversionEvent = interface external 'javax.xml.bind' name 'ParseConversionEvent' (JXBValidationEvent)
  end;

  JXBPrintConversionEvent = interface external 'javax.xml.bind' name 'PrintConversionEvent' (JXBValidationEvent)
  end;

  JXBHValidationEventImpl = class external 'javax.xml.bind.helpers' name 'ValidationEventImpl' (JLObject, JXBValidationEvent)
  public
    constructor create(para1: jint; para2: JLString; para3: JXBValidationEventLocator); overload;
    constructor create(para1: jint; para2: JLString; para3: JXBValidationEventLocator; para4: JLThrowable); overload;
    function getSeverity(): jint; overload; virtual;
    procedure setSeverity(para1: jint); overload; virtual;
    function getMessage(): JLString; overload; virtual;
    procedure setMessage(para1: JLString); overload; virtual;
    function getLinkedException(): JLThrowable; overload; virtual;
    procedure setLinkedException(para1: JLThrowable); overload; virtual;
    function getLocator(): JXBValidationEventLocator; overload; virtual;
    procedure setLocator(para1: JXBValidationEventLocator); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JXBHDefaultValidationEventHandler = class external 'javax.xml.bind.helpers' name 'DefaultValidationEventHandler' (JLObject, JXBValidationEventHandler)
  public
    constructor create(); overload;
    function handleEvent(para1: JXBValidationEvent): jboolean; overload; virtual;
  end;

  JXBUValidationEventCollector = class external 'javax.xml.bind.util' name 'ValidationEventCollector' (JLObject, JXBValidationEventHandler)
  public
    constructor create(); overload;
    function getEvents(): Arr1JXBValidationEvent; overload; virtual;
    procedure reset(); overload; virtual;
    function hasEvents(): jboolean; overload; virtual;
    function handleEvent(para1: JXBValidationEvent): jboolean; overload; virtual;
  end;

  JXBHValidationEventLocatorImpl = class external 'javax.xml.bind.helpers' name 'ValidationEventLocatorImpl' (JLObject, JXBValidationEventLocator)
  public
    constructor create(); overload;
    constructor create(para1: OXSLocator); overload;
    constructor create(para1: OXSSAXParseException); overload;
    constructor create(para1: OWDNode); overload;
    constructor create(para1: JLObject); overload;
    function getURL(): JNURL; overload; virtual;
    procedure setURL(para1: JNURL); overload; virtual;
    function getOffset(): jint; overload; virtual;
    procedure setOffset(para1: jint); overload; virtual;
    function getLineNumber(): jint; overload; virtual;
    procedure setLineNumber(para1: jint); overload; virtual;
    function getColumnNumber(): jint; overload; virtual;
    procedure setColumnNumber(para1: jint); overload; virtual;
    function getObject(): JLObject; overload; virtual;
    procedure setObject(para1: JLObject); overload; virtual;
    function getNode(): OWDNode; overload; virtual;
    procedure setNode(para1: OWDNode); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JXBAW3CDomHandler = class external 'javax.xml.bind.annotation' name 'W3CDomHandler' (JLObject, JXBADomHandler)
  public
    constructor create(); overload;
    constructor create(para1: JXPDocumentBuilder); overload;
    function getBuilder(): JXPDocumentBuilder; overload; virtual;
    procedure setBuilder(para1: JXPDocumentBuilder); overload; virtual;
    function createUnmarshaller(para1: JXBValidationEventHandler): JXTDDOMResult; overload; virtual;
    function getElement(para1: JXTDDOMResult): OWDElement; overload; virtual;
    function marshal(para1: OWDElement; para2: JXBValidationEventHandler): JXTSource; overload; virtual;
    function marshal(para1: JLObject; para2: JXBValidationEventHandler): JXTSource; overload; virtual;
    function getElement(para1: JXTResult): JLObject; overload; virtual;
    function createUnmarshaller(para1: JXBValidationEventHandler): JXTResult; overload; virtual;
  end;

  JXBAACollapsedStringAdapter = class external 'javax.xml.bind.annotation.adapters' name 'CollapsedStringAdapter' (JXBAAXmlAdapter)
  public
    constructor create(); overload;
    function unmarshal(para1: JLString): JLString; overload; virtual;
    function marshal(para1: JLString): JLString; overload; virtual;
  strict protected
    class function isWhiteSpace(para1: jchar): jboolean; static; overload;
  public
    function marshal(para1: JLObject): JLObject; overload; virtual;  // throws java.lang.Exception
    function unmarshal(para1: JLObject): JLObject; overload; virtual;  // throws java.lang.Exception
  end;

  JXBAAHexBinaryAdapter = class sealed external 'javax.xml.bind.annotation.adapters' name 'HexBinaryAdapter' (JXBAAXmlAdapter)
  public
    constructor create(); overload;
    function unmarshal(para1: JLString): Arr1jbyte; overload; virtual;
    function marshal(para1: Arr1jbyte): JLString; overload; virtual;
    function marshal(var para1: array of jbyte): JLString; overload; virtual;
    function marshal(para1: JLObject): JLObject; overload; virtual;  // throws java.lang.Exception
    function unmarshal(para1: JLObject): JLObject; overload; virtual;  // throws java.lang.Exception
  end;

  JXBAANormalizedStringAdapter = class sealed external 'javax.xml.bind.annotation.adapters' name 'NormalizedStringAdapter' (JXBAAXmlAdapter)
  public
    constructor create(); overload;
    function unmarshal(para1: JLString): JLString; overload; virtual;
    function marshal(para1: JLString): JLString; overload; virtual;
  strict protected
    class function isWhiteSpaceExceptSpace(para1: jchar): jboolean; static; overload;
  public
    function marshal(para1: JLObject): JLObject; overload; virtual;  // throws java.lang.Exception
    function unmarshal(para1: JLObject): JLObject; overload; virtual;  // throws java.lang.Exception
  end;

  JXCNodeSetData = interface external 'javax.xml.crypto' name 'NodeSetData' (JXCData)
    function iterator(): JUIterator; overload;
  end;

  JXCOctetStreamData = class external 'javax.xml.crypto' name 'OctetStreamData' (JLObject, JXCData)
  public
    constructor create(para1: JIInputStream); overload;
    constructor create(para1: JIInputStream; para2: JLString; para3: JLString); overload;
    function getOctetStream(): JIInputStream; overload; virtual;
    function getURI(): JLString; overload; virtual;
    function getMimeType(): JLString; overload; virtual;
  end;

  OJXDIDApacheData = interface external 'org.jcp.xml.dsig.internal.dom' name 'ApacheData' (JXCData)
    function getXMLSignatureInput(): CSOAXISSXMLSignatureInput; overload;
  end;

  OJXDIDDOMURIDereferencer = class external 'org.jcp.xml.dsig.internal.dom' name 'DOMURIDereferencer' (JLObject, JXCURIDereferencer)
  public
    function dereference(para1: JXCURIReference; para2: JXCXMLCryptoContext): JXCData; overload; virtual;  // throws javax.xml.crypto.URIReferenceException
  end;

  JXCDDOMURIReference = interface external 'javax.xml.crypto.dom' name 'DOMURIReference' (JXCURIReference)
    function getHere(): OWDNode; overload;
  end;

  JXCDDOMCryptoContext = class external 'javax.xml.crypto.dom' name 'DOMCryptoContext' (JLObject, JXCXMLCryptoContext)
  strict protected
    constructor create(); overload;
  public
    function getNamespacePrefix(para1: JLString; para2: JLString): JLString; overload; virtual;
    function putNamespacePrefix(para1: JLString; para2: JLString): JLString; overload; virtual;
    function getDefaultNamespacePrefix(): JLString; overload; virtual;
    procedure setDefaultNamespacePrefix(para1: JLString); overload; virtual;
    function getBaseURI(): JLString; overload; virtual;
    procedure setBaseURI(para1: JLString); overload; virtual;
    function getURIDereferencer(): JXCURIDereferencer; overload; virtual;
    procedure setURIDereferencer(para1: JXCURIDereferencer); overload; virtual;
    function getProperty(para1: JLString): JLObject; overload; virtual;
    function setProperty(para1: JLString; para2: JLObject): JLObject; overload; virtual;
    function getKeySelector(): JXCKeySelector; overload; virtual;
    procedure setKeySelector(para1: JXCKeySelector); overload; virtual;
    function getElementById(para1: JLString): OWDElement; overload; virtual;
    procedure setIdAttributeNS(para1: OWDElement; para2: JLString; para3: JLString); overload; virtual;
    function iterator(): JUIterator; overload; virtual;
    function get(para1: JLObject): JLObject; overload; virtual;
    function put(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
  end;

  JXCDXMLSignContext = interface external 'javax.xml.crypto.dsig' name 'XMLSignContext' (JXCXMLCryptoContext)
  end;

  JXCDXMLValidateContext = interface external 'javax.xml.crypto.dsig' name 'XMLValidateContext' (JXCXMLCryptoContext)
  end;

  JXCDDOMStructure = class external 'javax.xml.crypto.dom' name 'DOMStructure' (JLObject, JXCXMLStructure)
  public
    constructor create(para1: OWDNode); overload;
    function getNode(): OWDNode; overload; virtual;
    function isFeatureSupported(para1: JLString): jboolean; overload; virtual;
  end;

  JXCDDigestMethod = interface external 'javax.xml.crypto.dsig' name 'DigestMethod' (JXCXMLStructure, JXCAlgorithmMethod)
    const
      SHA1 = 'http://www.w3.org/2000/09/xmldsig#sha1';
      SHA256 = 'http://www.w3.org/2001/04/xmlenc#sha256';
      SHA512 = 'http://www.w3.org/2001/04/xmlenc#sha512';
      RIPEMD160 = 'http://www.w3.org/2001/04/xmlenc#ripemd160';
    function getParameterSpec(): JSSAlgorithmParameterSpec; overload;
  end;

  JXCDManifest = interface external 'javax.xml.crypto.dsig' name 'Manifest' (JXCXMLStructure)
    const
      &TYPE = 'http://www.w3.org/2000/09/xmldsig#Manifest';
    function getId(): JLString; overload;
    function getReferences(): JUList; overload;
  end;

  JXCDReference = interface external 'javax.xml.crypto.dsig' name 'Reference' (JXCURIReference, JXCXMLStructure)
    function getTransforms(): JUList; overload;
    function getDigestMethod(): JXCDDigestMethod; overload;
    function getId(): JLString; overload;
    function getDigestValue(): Arr1jbyte; overload;
    function getCalculatedDigestValue(): Arr1jbyte; overload;
    function validate(para1: JXCDXMLValidateContext): jboolean; overload;  // throws javax.xml.crypto.dsig.XMLSignatureException
    function getDereferencedData(): JXCData; overload;
    function getDigestInputStream(): JIInputStream; overload;
  end;

  JXCDSignatureMethod = interface external 'javax.xml.crypto.dsig' name 'SignatureMethod' (JXCXMLStructure, JXCAlgorithmMethod)
    const
      DSA_SHA1 = 'http://www.w3.org/2000/09/xmldsig#dsa-sha1';
      RSA_SHA1 = 'http://www.w3.org/2000/09/xmldsig#rsa-sha1';
      HMAC_SHA1 = 'http://www.w3.org/2000/09/xmldsig#hmac-sha1';
    function getParameterSpec(): JSSAlgorithmParameterSpec; overload;
  end;

  JXCDSignatureProperties = interface external 'javax.xml.crypto.dsig' name 'SignatureProperties' (JXCXMLStructure)
    const
      &TYPE = 'http://www.w3.org/2000/09/xmldsig#SignatureProperties';
    function getId(): JLString; overload;
    function getProperties(): JUList; overload;
  end;

  JXCDSignatureProperty = interface external 'javax.xml.crypto.dsig' name 'SignatureProperty' (JXCXMLStructure)
    function getTarget(): JLString; overload;
    function getId(): JLString; overload;
    function getContent(): JUList; overload;
  end;

  JXCDSignedInfo = interface external 'javax.xml.crypto.dsig' name 'SignedInfo' (JXCXMLStructure)
    function getCanonicalizationMethod(): JXCDCanonicalizationMethod; overload;
    function getSignatureMethod(): JXCDSignatureMethod; overload;
    function getReferences(): JUList; overload;
    function getId(): JLString; overload;
    function getCanonicalizedData(): JIInputStream; overload;
  end;

  JXCDTransform = interface external 'javax.xml.crypto.dsig' name 'Transform' (JXCXMLStructure, JXCAlgorithmMethod)
    const
      BASE64 = 'http://www.w3.org/2000/09/xmldsig#base64';
      ENVELOPED = 'http://www.w3.org/2000/09/xmldsig#enveloped-signature';
      XPATH = 'http://www.w3.org/TR/1999/REC-xpath-19991116';
      XPATH2 = 'http://www.w3.org/2002/06/xmldsig-filter2';
      XSLT = 'http://www.w3.org/TR/1999/REC-xslt-19991116';
    function getParameterSpec(): JSSAlgorithmParameterSpec; overload;
    function transform(para1: JXCData; para2: JXCXMLCryptoContext): JXCData; overload;  // throws javax.xml.crypto.dsig.TransformException
    function transform(para1: JXCData; para2: JXCXMLCryptoContext; para3: JIOutputStream): JXCData; overload;  // throws javax.xml.crypto.dsig.TransformException
  end;

  JXCDXMLObject = interface external 'javax.xml.crypto.dsig' name 'XMLObject' (JXCXMLStructure)
    const
      &TYPE = 'http://www.w3.org/2000/09/xmldsig#Object';
    function getContent(): JUList; overload;
    function getId(): JLString; overload;
    function getMimeType(): JLString; overload;
    function getEncoding(): JLString; overload;
  end;

  JXCDXMLSignature = interface external 'javax.xml.crypto.dsig' name 'XMLSignature' (JXCXMLStructure)
    type
      InnerSignatureValue = interface;
      Arr1InnerSignatureValue = array of InnerSignatureValue;
      Arr2InnerSignatureValue = array of Arr1InnerSignatureValue;
      Arr3InnerSignatureValue = array of Arr2InnerSignatureValue;
      InnerSignatureValue = interface external 'javax.xml.crypto.dsig' name 'SignatureValue' (JXCXMLStructure)
        function getId(): JLString; overload;
        function getValue(): Arr1jbyte; overload;
        function validate(para1: JXCDXMLValidateContext): jboolean; overload;  // throws javax.xml.crypto.dsig.XMLSignatureException
      end;

    const
      XMLNS = 'http://www.w3.org/2000/09/xmldsig#';
    function validate(para1: JXCDXMLValidateContext): jboolean; overload;  // throws javax.xml.crypto.dsig.XMLSignatureException
    function getKeyInfo(): JXCDKKeyInfo; overload;
    function getSignedInfo(): JXCDSignedInfo; overload;
    function getObjects(): JUList; overload;
    function getId(): JLString; overload;
    function getSignatureValue(): JXCDXMLSignature.InnerSignatureValue; overload;
    procedure sign(para1: JXCDXMLSignContext); overload;  // throws javax.xml.crypto.MarshalException, javax.xml.crypto.dsig.XMLSignatureException
    function getKeySelectorResult(): JXCKeySelectorResult; overload;
  end;

  JXCDKKeyInfo = interface external 'javax.xml.crypto.dsig.keyinfo' name 'KeyInfo' (JXCXMLStructure)
    function getContent(): JUList; overload;
    function getId(): JLString; overload;
    procedure marshal(para1: JXCXMLStructure; para2: JXCXMLCryptoContext); overload;  // throws javax.xml.crypto.MarshalException
  end;

  JXCDKKeyName = interface external 'javax.xml.crypto.dsig.keyinfo' name 'KeyName' (JXCXMLStructure)
    function getName(): JLString; overload;
  end;

  JXCDKKeyValue = interface external 'javax.xml.crypto.dsig.keyinfo' name 'KeyValue' (JXCXMLStructure)
    const
      DSA_TYPE = 'http://www.w3.org/2000/09/xmldsig#DSAKeyValue';
      RSA_TYPE = 'http://www.w3.org/2000/09/xmldsig#RSAKeyValue';
    function getPublicKey(): JSPublicKey; overload;  // throws java.security.KeyException
  end;

  JXCDKPGPData = interface external 'javax.xml.crypto.dsig.keyinfo' name 'PGPData' (JXCXMLStructure)
    const
      &TYPE = 'http://www.w3.org/2000/09/xmldsig#PGPData';
    function getKeyId(): Arr1jbyte; overload;
    function getKeyPacket(): Arr1jbyte; overload;
    function getExternalElements(): JUList; overload;
  end;

  JXCDKRetrievalMethod = interface external 'javax.xml.crypto.dsig.keyinfo' name 'RetrievalMethod' (JXCURIReference, JXCXMLStructure)
    function getTransforms(): JUList; overload;
    function getURI(): JLString; overload;
    function dereference(para1: JXCXMLCryptoContext): JXCData; overload;  // throws javax.xml.crypto.URIReferenceException
  end;

  JXCDKX509Data = interface external 'javax.xml.crypto.dsig.keyinfo' name 'X509Data' (JXCXMLStructure)
    const
      &TYPE = 'http://www.w3.org/2000/09/xmldsig#X509Data';
      RAW_X509_CERTIFICATE_TYPE = 'http://www.w3.org/2000/09/xmldsig#rawX509Certificate';
    function getContent(): JUList; overload;
  end;

  JXCDKX509IssuerSerial = interface external 'javax.xml.crypto.dsig.keyinfo' name 'X509IssuerSerial' (JXCXMLStructure)
    function getIssuerName(): JLString; overload;
    function getSerialNumber(): JMBigInteger; overload;
  end;

  OJXDIDDOMStructure = class abstract external 'org.jcp.xml.dsig.internal.dom' name 'DOMStructure' (JLObject, JXCXMLStructure)
  public
    constructor create(); overload;
    function isFeatureSupported(para1: JLString): jboolean; overload; virtual; final;
    procedure marshal(para1: OWDNode; para2: JLString; para3: JXCDDOMCryptoContext); overload; virtual; abstract;  // throws javax.xml.crypto.MarshalException
  end;

  OJXDIDDOMXMLSignatureFactory = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'DOMXMLSignatureFactory' (JXCDXMLSignatureFactory)
  public
    constructor create(); overload;
    function newXMLSignature(para1: JXCDSignedInfo; para2: JXCDKKeyInfo): JXCDXMLSignature; overload; virtual;
    function newXMLSignature(para1: JXCDSignedInfo; para2: JXCDKKeyInfo; para3: JUList; para4: JLString; para5: JLString): JXCDXMLSignature; overload; virtual;
    function newReference(para1: JLString; para2: JXCDDigestMethod): JXCDReference; overload; virtual;
    function newReference(para1: JLString; para2: JXCDDigestMethod; para3: JUList; para4: JLString; para5: JLString): JXCDReference; overload; virtual;
    function newReference(para1: JLString; para2: JXCDDigestMethod; para3: JUList; para4: JXCData; para5: JUList; para6: JLString; para7: JLString): JXCDReference; overload; virtual;
    function newReference(para1: JLString; para2: JXCDDigestMethod; para3: JUList; para4: JLString; para5: JLString; para6: Arr1jbyte): JXCDReference; overload; virtual;
    function newReference(para1: JLString; para2: JXCDDigestMethod; para3: JUList; para4: JLString; para5: JLString; var para6: array of jbyte): JXCDReference; overload; virtual;
    function newSignedInfo(para1: JXCDCanonicalizationMethod; para2: JXCDSignatureMethod; para3: JUList): JXCDSignedInfo; overload; virtual;
    function newSignedInfo(para1: JXCDCanonicalizationMethod; para2: JXCDSignatureMethod; para3: JUList; para4: JLString): JXCDSignedInfo; overload; virtual;
    function newXMLObject(para1: JUList; para2: JLString; para3: JLString; para4: JLString): JXCDXMLObject; overload; virtual;
    function newManifest(para1: JUList): JXCDManifest; overload; virtual;
    function newManifest(para1: JUList; para2: JLString): JXCDManifest; overload; virtual;
    function newSignatureProperties(para1: JUList; para2: JLString): JXCDSignatureProperties; overload; virtual;
    function newSignatureProperty(para1: JUList; para2: JLString; para3: JLString): JXCDSignatureProperty; overload; virtual;
    function unmarshalXMLSignature(para1: JXCDXMLValidateContext): JXCDXMLSignature; overload; virtual;  // throws javax.xml.crypto.MarshalException
    function unmarshalXMLSignature(para1: JXCXMLStructure): JXCDXMLSignature; overload; virtual;  // throws javax.xml.crypto.MarshalException
    function isFeatureSupported(para1: JLString): jboolean; overload; virtual;
    function newDigestMethod(para1: JLString; para2: JXCDSDigestMethodParameterSpec): JXCDDigestMethod; overload; virtual;  // throws java.security.NoSuchAlgorithmException, java.security.InvalidAlgorithmParameterException
    function newSignatureMethod(para1: JLString; para2: JXCDSSignatureMethodParameterSpec): JXCDSignatureMethod; overload; virtual;  // throws java.security.NoSuchAlgorithmException, java.security.InvalidAlgorithmParameterException
    function newTransform(para1: JLString; para2: JXCDSTransformParameterSpec): JXCDTransform; overload; virtual;  // throws java.security.NoSuchAlgorithmException, java.security.InvalidAlgorithmParameterException
    function newTransform(para1: JLString; para2: JXCXMLStructure): JXCDTransform; overload; virtual;  // throws java.security.NoSuchAlgorithmException, java.security.InvalidAlgorithmParameterException
    function newCanonicalizationMethod(para1: JLString; para2: JXCDSC14NMethodParameterSpec): JXCDCanonicalizationMethod; overload; virtual;  // throws java.security.NoSuchAlgorithmException, java.security.InvalidAlgorithmParameterException
    function newCanonicalizationMethod(para1: JLString; para2: JXCXMLStructure): JXCDCanonicalizationMethod; overload; virtual;  // throws java.security.NoSuchAlgorithmException, java.security.InvalidAlgorithmParameterException
    function getURIDereferencer(): JXCURIDereferencer; overload; virtual;
  end;

  OJXDIDDOMKeyInfoFactory = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'DOMKeyInfoFactory' (JXCDKKeyInfoFactory)
  public
    constructor create(); overload;
    function newKeyInfo(para1: JUList): JXCDKKeyInfo; overload; virtual;
    function newKeyInfo(para1: JUList; para2: JLString): JXCDKKeyInfo; overload; virtual;
    function newKeyName(para1: JLString): JXCDKKeyName; overload; virtual;
    function newKeyValue(para1: JSPublicKey): JXCDKKeyValue; overload; virtual;  // throws java.security.KeyException
    function newPGPData(para1: Arr1jbyte): JXCDKPGPData; overload; virtual;
    function newPGPData(var para1: array of jbyte): JXCDKPGPData; overload; virtual;
    function newPGPData(para1: Arr1jbyte; para2: Arr1jbyte; para3: JUList): JXCDKPGPData; overload; virtual;
    function newPGPData(var para1: array of jbyte; var para2: array of jbyte; para3: JUList): JXCDKPGPData; overload; virtual;
    function newPGPData(para1: Arr1jbyte; para2: JUList): JXCDKPGPData; overload; virtual;
    function newPGPData(var para1: array of jbyte; para2: JUList): JXCDKPGPData; overload; virtual;
    function newRetrievalMethod(para1: JLString): JXCDKRetrievalMethod; overload; virtual;
    function newRetrievalMethod(para1: JLString; para2: JLString; para3: JUList): JXCDKRetrievalMethod; overload; virtual;
    function newX509Data(para1: JUList): JXCDKX509Data; overload; virtual;
    function newX509IssuerSerial(para1: JLString; para2: JMBigInteger): JXCDKX509IssuerSerial; overload; virtual;
    function isFeatureSupported(para1: JLString): jboolean; overload; virtual;
    function getURIDereferencer(): JXCURIDereferencer; overload; virtual;
    function unmarshalKeyInfo(para1: JXCXMLStructure): JXCDKKeyInfo; overload; virtual;  // throws javax.xml.crypto.MarshalException
  end;

  JXDDuration = class abstract external 'javax.xml.datatype' name 'Duration' (JLObject)
  public
    constructor create(); overload;
    function getXMLSchemaType(): JXNQName; overload; virtual;
    function getSign(): jint; overload; virtual; abstract;
    function getYears(): jint; overload; virtual;
    function getMonths(): jint; overload; virtual;
    function getDays(): jint; overload; virtual;
    function getHours(): jint; overload; virtual;
    function getMinutes(): jint; overload; virtual;
    function getSeconds(): jint; overload; virtual;
    function getTimeInMillis(para1: JUCalendar): jlong; overload; virtual;
    function getTimeInMillis(para1: JUDate): jlong; overload; virtual;
    function getField(para1: JXDDatatypeConstants.InnerField): JLNumber; overload; virtual; abstract;
    function isSet(para1: JXDDatatypeConstants.InnerField): jboolean; overload; virtual; abstract;
    function add(para1: JXDDuration): JXDDuration; overload; virtual; abstract;
    procedure addTo(para1: JUCalendar); overload; virtual; abstract;
    procedure addTo(para1: JUDate); overload; virtual;
    function subtract(para1: JXDDuration): JXDDuration; overload; virtual;
    function multiply(para1: jint): JXDDuration; overload; virtual;
    function multiply(para1: JMBigDecimal): JXDDuration; overload; virtual; abstract;
    function negate(): JXDDuration; overload; virtual; abstract;
    function normalizeWith(para1: JUCalendar): JXDDuration; overload; virtual; abstract;
    function compare(para1: JXDDuration): jint; overload; virtual; abstract;
    function isLongerThan(para1: JXDDuration): jboolean; overload; virtual;
    function isShorterThan(para1: JXDDuration): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual; abstract;
    function toString(): JLString; overload; virtual;
  end;

  JXSXMLStreamReader = interface external 'javax.xml.stream' name 'XMLStreamReader' (JXSXMLStreamConstants)
    function getProperty(para1: JLString): JLObject; overload;  // throws java.lang.IllegalArgumentException
    function next(): jint; overload;  // throws javax.xml.stream.XMLStreamException
    procedure require(para1: jint; para2: JLString; para3: JLString); overload;  // throws javax.xml.stream.XMLStreamException
    function getElementText(): JLString; overload;  // throws javax.xml.stream.XMLStreamException
    function nextTag(): jint; overload;  // throws javax.xml.stream.XMLStreamException
    function hasNext(): jboolean; overload;  // throws javax.xml.stream.XMLStreamException
    procedure close(); overload;  // throws javax.xml.stream.XMLStreamException
    function getNamespaceURI(para1: JLString): JLString; overload;
    function isStartElement(): jboolean; overload;
    function isEndElement(): jboolean; overload;
    function isCharacters(): jboolean; overload;
    function isWhiteSpace(): jboolean; overload;
    function getAttributeValue(para1: JLString; para2: JLString): JLString; overload;
    function getAttributeCount(): jint; overload;
    function getAttributeName(para1: jint): JXNQName; overload;
    function getAttributeNamespace(para1: jint): JLString; overload;
    function getAttributeLocalName(para1: jint): JLString; overload;
    function getAttributePrefix(para1: jint): JLString; overload;
    function getAttributeType(para1: jint): JLString; overload;
    function getAttributeValue(para1: jint): JLString; overload;
    function isAttributeSpecified(para1: jint): jboolean; overload;
    function getNamespaceCount(): jint; overload;
    function getNamespacePrefix(para1: jint): JLString; overload;
    function getNamespaceURI(para1: jint): JLString; overload;
    function getNamespaceContext(): JXNNamespaceContext; overload;
    function getEventType(): jint; overload;
    function getText(): JLString; overload;
    function getTextCharacters(): Arr1jchar; overload;
    function getTextCharacters(para1: jint; para2: Arr1jchar; para3: jint; para4: jint): jint; overload;  // throws javax.xml.stream.XMLStreamException
    function getTextCharacters(para1: jint; var para2: array of jchar; para3: jint; para4: jint): jint; overload;  // throws javax.xml.stream.XMLStreamException
    function getTextStart(): jint; overload;
    function getTextLength(): jint; overload;
    function getEncoding(): JLString; overload;
    function hasText(): jboolean; overload;
    function getLocation(): JXSLocation; overload;
    function getName(): JXNQName; overload;
    function getLocalName(): JLString; overload;
    function hasName(): jboolean; overload;
    function getNamespaceURI(): JLString; overload;
    function getPrefix(): JLString; overload;
    function getVersion(): JLString; overload;
    function isStandalone(): jboolean; overload;
    function standaloneSet(): jboolean; overload;
    function getCharacterEncodingScheme(): JLString; overload;
    function getPITarget(): JLString; overload;
    function getPIData(): JLString; overload;
  end;

  JXSEXMLEvent = interface external 'javax.xml.stream.events' name 'XMLEvent' (JXSXMLStreamConstants)
    function getEventType(): jint; overload;
    function getLocation(): JXSLocation; overload;
    function isStartElement(): jboolean; overload;
    function isAttribute(): jboolean; overload;
    function isNamespace(): jboolean; overload;
    function isEndElement(): jboolean; overload;
    function isEntityReference(): jboolean; overload;
    function isProcessingInstruction(): jboolean; overload;
    function isCharacters(): jboolean; overload;
    function isStartDocument(): jboolean; overload;
    function isEndDocument(): jboolean; overload;
    function asStartElement(): JXSEStartElement; overload;
    function asEndElement(): JXSEEndElement; overload;
    function asCharacters(): JXSECharacters; overload;
    function getSchemaType(): JXNQName; overload;
    procedure writeAsEncodedUnicode(para1: JIWriter); overload;  // throws javax.xml.stream.XMLStreamException
  end;

  JXSXMLEventWriter = interface external 'javax.xml.stream' name 'XMLEventWriter' (JXSUXMLEventConsumer)
    procedure flush(); overload;  // throws javax.xml.stream.XMLStreamException
    procedure close(); overload;  // throws javax.xml.stream.XMLStreamException
    procedure add(para1: JXSEXMLEvent); overload;  // throws javax.xml.stream.XMLStreamException
    procedure add(para1: JXSXMLEventReader); overload;  // throws javax.xml.stream.XMLStreamException
    function getPrefix(para1: JLString): JLString; overload;  // throws javax.xml.stream.XMLStreamException
    procedure setPrefix(para1: JLString; para2: JLString); overload;  // throws javax.xml.stream.XMLStreamException
    procedure setDefaultNamespace(para1: JLString); overload;  // throws javax.xml.stream.XMLStreamException
    procedure setNamespaceContext(para1: JXNNamespaceContext); overload;  // throws javax.xml.stream.XMLStreamException
    function getNamespaceContext(): JXNNamespaceContext; overload;
  end;

  JXTDDOMResult = class external 'javax.xml.transform.dom' name 'DOMResult' (JLObject, JXTResult)
  public
    const
      FEATURE = 'http://javax.xml.transform.dom.DOMResult/feature';
  public
    constructor create(); overload;
    constructor create(para1: OWDNode); overload;
    constructor create(para1: OWDNode; para2: JLString); overload;
    constructor create(para1: OWDNode; para2: OWDNode); overload;
    constructor create(para1: OWDNode; para2: OWDNode; para3: JLString); overload;
    procedure setNode(para1: OWDNode); overload; virtual;
    function getNode(): OWDNode; overload; virtual;
    procedure setNextSibling(para1: OWDNode); overload; virtual;
    function getNextSibling(): OWDNode; overload; virtual;
    procedure setSystemId(para1: JLString); overload; virtual;
    function getSystemId(): JLString; overload; virtual;
  end;

  JXTSSAXResult = class external 'javax.xml.transform.sax' name 'SAXResult' (JLObject, JXTResult)
  public
    const
      FEATURE = 'http://javax.xml.transform.sax.SAXResult/feature';
  public
    constructor create(); overload;
    constructor create(para1: OXSContentHandler); overload;
    procedure setHandler(para1: OXSContentHandler); overload; virtual;
    function getHandler(): OXSContentHandler; overload; virtual;
    procedure setLexicalHandler(para1: OXSELexicalHandler); overload; virtual;
    function getLexicalHandler(): OXSELexicalHandler; overload; virtual;
    procedure setSystemId(para1: JLString); overload; virtual;
    function getSystemId(): JLString; overload; virtual;
  end;

  JXTSStAXResult = class external 'javax.xml.transform.stax' name 'StAXResult' (JLObject, JXTResult)
  public
    const
      FEATURE = 'http://javax.xml.transform.stax.StAXResult/feature';
  public
    constructor create(para1: JXSXMLEventWriter); overload;
    constructor create(para1: JXSXMLStreamWriter); overload;
    function getXMLEventWriter(): JXSXMLEventWriter; overload; virtual;
    function getXMLStreamWriter(): JXSXMLStreamWriter; overload; virtual;
    procedure setSystemId(para1: JLString); overload; virtual;
    function getSystemId(): JLString; overload; virtual;
  end;

  JXTSStreamResult = class external 'javax.xml.transform.stream' name 'StreamResult' (JLObject, JXTResult)
  public
    const
      FEATURE = 'http://javax.xml.transform.stream.StreamResult/feature';
  public
    constructor create(); overload;
    constructor create(para1: JIOutputStream); overload;
    constructor create(para1: JIWriter); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JIFile); overload;
    procedure setOutputStream(para1: JIOutputStream); overload; virtual;
    function getOutputStream(): JIOutputStream; overload; virtual;
    procedure setWriter(para1: JIWriter); overload; virtual;
    function getWriter(): JIWriter; overload; virtual;
    procedure setSystemId(para1: JLString); overload; virtual;
    procedure setSystemId(para1: JIFile); overload; virtual;
    function getSystemId(): JLString; overload; virtual;
  end;

  JXTDDOMSource = class external 'javax.xml.transform.dom' name 'DOMSource' (JLObject, JXTSource)
  public
    const
      FEATURE = 'http://javax.xml.transform.dom.DOMSource/feature';
  public
    constructor create(); overload;
    constructor create(para1: OWDNode); overload;
    constructor create(para1: OWDNode; para2: JLString); overload;
    procedure setNode(para1: OWDNode); overload; virtual;
    function getNode(): OWDNode; overload; virtual;
    procedure setSystemId(para1: JLString); overload; virtual;
    function getSystemId(): JLString; overload; virtual;
  end;

  JXTSSAXSource = class external 'javax.xml.transform.sax' name 'SAXSource' (JLObject, JXTSource)
  public
    const
      FEATURE = 'http://javax.xml.transform.sax.SAXSource/feature';
  public
    constructor create(); overload;
    constructor create(para1: OXSXMLReader; para2: OXSInputSource); overload;
    constructor create(para1: OXSInputSource); overload;
    procedure setXMLReader(para1: OXSXMLReader); overload; virtual;
    function getXMLReader(): OXSXMLReader; overload; virtual;
    procedure setInputSource(para1: OXSInputSource); overload; virtual;
    function getInputSource(): OXSInputSource; overload; virtual;
    procedure setSystemId(para1: JLString); overload; virtual;
    function getSystemId(): JLString; overload; virtual;
    class function sourceToInputSource(para1: JXTSource): OXSInputSource; static; overload;
  end;

  JXTSStAXSource = class external 'javax.xml.transform.stax' name 'StAXSource' (JLObject, JXTSource)
  public
    const
      FEATURE = 'http://javax.xml.transform.stax.StAXSource/feature';
  public
    constructor create(para1: JXSXMLEventReader); overload;  // throws javax.xml.stream.XMLStreamException
    constructor create(para1: JXSXMLStreamReader); overload;
    function getXMLEventReader(): JXSXMLEventReader; overload; virtual;
    function getXMLStreamReader(): JXSXMLStreamReader; overload; virtual;
    procedure setSystemId(para1: JLString); overload; virtual;
    function getSystemId(): JLString; overload; virtual;
  end;

  JXTSStreamSource = class external 'javax.xml.transform.stream' name 'StreamSource' (JLObject, JXTSource)
  public
    const
      FEATURE = 'http://javax.xml.transform.stream.StreamSource/feature';
  public
    constructor create(); overload;
    constructor create(para1: JIInputStream); overload;
    constructor create(para1: JIInputStream; para2: JLString); overload;
    constructor create(para1: JIReader); overload;
    constructor create(para1: JIReader; para2: JLString); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JIFile); overload;
    procedure setInputStream(para1: JIInputStream); overload; virtual;
    function getInputStream(): JIInputStream; overload; virtual;
    procedure setReader(para1: JIReader); overload; virtual;
    function getReader(): JIReader; overload; virtual;
    procedure setPublicId(para1: JLString); overload; virtual;
    function getPublicId(): JLString; overload; virtual;
    procedure setSystemId(para1: JLString); overload; virtual;
    function getSystemId(): JLString; overload; virtual;
    procedure setSystemId(para1: JIFile); overload; virtual;
  end;

  JXTDDOMLocator = interface external 'javax.xml.transform.dom' name 'DOMLocator' (JXTSourceLocator)
    function getOriginatingNode(): OWDNode; overload;
  end;

  JXTSSAXTransformerFactory = class abstract external 'javax.xml.transform.sax' name 'SAXTransformerFactory' (JXTTransformerFactory)
  public
    const
      FEATURE = 'http://javax.xml.transform.sax.SAXTransformerFactory/feature';
      FEATURE_XMLFILTER = 'http://javax.xml.transform.sax.SAXTransformerFactory/feature/xmlfilter';
  strict protected
    constructor create(); overload;
  public
    function newTransformerHandler(para1: JXTSource): JXTSTransformerHandler; overload; virtual; abstract;  // throws javax.xml.transform.TransformerConfigurationException
    function newTransformerHandler(para1: JXTTemplates): JXTSTransformerHandler; overload; virtual; abstract;  // throws javax.xml.transform.TransformerConfigurationException
    function newTransformerHandler(): JXTSTransformerHandler; overload; virtual; abstract;  // throws javax.xml.transform.TransformerConfigurationException
    function newTemplatesHandler(): JXTSTemplatesHandler; overload; virtual; abstract;  // throws javax.xml.transform.TransformerConfigurationException
    function newXMLFilter(para1: JXTSource): OXSXMLFilter; overload; virtual; abstract;  // throws javax.xml.transform.TransformerConfigurationException
    function newXMLFilter(para1: JXTTemplates): OXSXMLFilter; overload; virtual; abstract;  // throws javax.xml.transform.TransformerConfigurationException
  end;

  JXWHHTTPBinding = interface external 'javax.xml.ws.http' name 'HTTPBinding' (JXWBinding)
    const
      HTTP_BINDING = 'http://www.w3.org/2004/08/wsdl/http';
  end;

  JXWSSOAPBinding = interface external 'javax.xml.ws.soap' name 'SOAPBinding' (JXWBinding)
    const
      SOAP11HTTP_BINDING = 'http://schemas.xmlsoap.org/wsdl/soap/http';
      SOAP12HTTP_BINDING = 'http://www.w3.org/2003/05/soap/bindings/HTTP/';
      SOAP11HTTP_MTOM_BINDING = 'http://schemas.xmlsoap.org/wsdl/soap/http?mtom=true';
      SOAP12HTTP_MTOM_BINDING = 'http://www.w3.org/2003/05/soap/bindings/HTTP/?mtom=true';
    function getRoles(): JUSet; overload;
    procedure setRoles(para1: JUSet); overload;
    function isMTOMEnabled(): jboolean; overload;
    procedure setMTOMEnabled(para1: jboolean); overload;
    function getSOAPFactory(): JXSSOAPFactory; overload;
    function getMessageFactory(): JXSMessageFactory; overload;
  end;

  JXWDispatch = interface external 'javax.xml.ws' name 'Dispatch' (JXWBindingProvider)
    function invoke(para1: JLObject): JLObject; overload;
    function invokeAsync(para1: JLObject): JXWResponse; overload;
    function invokeAsync(para1: JLObject; para2: JXWAsyncHandler): JUCFuture; overload;
    procedure invokeOneWay(para1: JLObject); overload;
  end;

  JXWWW3CEndpointReference = class sealed external 'javax.xml.ws.wsaddressing' name 'W3CEndpointReference' (JXWEndpointReference)
  public
    type
      InnerAddress = class;
      Arr1InnerAddress = array of InnerAddress;
      Arr2InnerAddress = array of Arr1InnerAddress;
      Arr3InnerAddress = array of Arr2InnerAddress;
      InnerElements = class;
      Arr1InnerElements = array of InnerElements;
      Arr2InnerElements = array of Arr1InnerElements;
      Arr3InnerElements = array of Arr2InnerElements;
      InnerAddress = class external 'javax.xml.ws.wsaddressing' name 'Address' 
      end;

      InnerElements = class external 'javax.xml.ws.wsaddressing' name 'Elements' 
      end;

  strict protected
    const
      NS = 'http://www.w3.org/2005/08/addressing';
  strict protected
    constructor create(); overload;
  public
    constructor create(para1: JXTSource); overload;
    procedure writeTo(para1: JXTResult); overload; virtual;
  end;

  JXWRespectBindingFeature = class sealed external 'javax.xml.ws' name 'RespectBindingFeature' (JXWWebServiceFeature)
  public
    const
      ID = 'javax.xml.ws.RespectBindingFeature';
  public
    constructor create(); overload;
    constructor create(para1: jboolean); overload;
    function getID(): JLString; overload; virtual;
  end;

  JXWSAddressingFeature = class sealed external 'javax.xml.ws.soap' name 'AddressingFeature' (JXWWebServiceFeature)
  public
    const
      ID = 'http://www.w3.org/2005/08/addressing/module';
  strict protected
    var
      frequired: jboolean; external name 'required';
  public
    constructor create(); overload;
    constructor create(para1: jboolean); overload;
    constructor create(para1: jboolean; para2: jboolean); overload;
    function getID(): JLString; overload; virtual;
    function isRequired(): jboolean; overload; virtual;
  end;

  JXWSMTOMFeature = class sealed external 'javax.xml.ws.soap' name 'MTOMFeature' (JXWWebServiceFeature)
  public
    const
      ID = 'http://www.w3.org/2004/08/soap/features/http-optimization';
  strict protected
    var
      fthreshold: jint; external name 'threshold';
  public
    constructor create(); overload;
    constructor create(para1: jboolean); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: jboolean; para2: jint); overload;
    function getID(): JLString; overload; virtual;
    function getThreshold(): jint; overload; virtual;
  end;

  JXWHLogicalHandler = interface external 'javax.xml.ws.handler' name 'LogicalHandler' (JXWHHandler)
  end;

  JXWHSSOAPHandler = interface external 'javax.xml.ws.handler.soap' name 'SOAPHandler' (JXWHHandler)
    function getHeaders(): JUSet; overload;
  end;

  OOPInterceptorCurrentOperations = interface external 'org.omg.PortableInterceptor' name 'CurrentOperations' (OOCCurrentOperations)
    function get_slot(para1: jint): OOCAny; overload;  // throws org.omg.PortableInterceptor.InvalidSlot
    procedure set_slot(para1: jint; para2: OOCAny); overload;  // throws org.omg.PortableInterceptor.InvalidSlot
  end;

  OOPServerCurrentOperations = interface external 'org.omg.PortableServer' name 'CurrentOperations' (OOCCurrentOperations)
    function get_POA(): OOPPOA; overload;  // throws org.omg.PortableServer.CurrentPackage.NoContext
    function get_object_id(): Arr1jbyte; overload;  // throws org.omg.PortableServer.CurrentPackage.NoContext
  end;

  OOCIDLTypeOperations = interface external 'org.omg.CORBA' name 'IDLTypeOperations' (OOCIRObjectOperations)
    function &type(): OOCTypeCode; overload;
  end;

  OOC_2_3ORB = class abstract external 'org.omg.CORBA_2_3' name 'ORB' (OOCORB)
  public
    constructor create(); overload;
    function register_value_factory(para1: JLString; para2: OOCPValueFactory): OOCPValueFactory; overload; virtual;
    procedure unregister_value_factory(para1: JLString); overload; virtual;
    function lookup_value_factory(para1: JLString): OOCPValueFactory; overload; virtual;
    function get_value_def(para1: JLString): OOCObject; overload; virtual;  // throws org.omg.CORBA.BAD_PARAM
    procedure set_delegate(para1: JLObject); overload; virtual;
  end;

  OOCDynAny = interface external 'org.omg.CORBA' name 'DynAny' (OOCObject)
    function &type(): OOCTypeCode; overload;
    procedure assign(para1: OOCDynAny); overload;  // throws org.omg.CORBA.DynAnyPackage.Invalid
    procedure from_any(para1: OOCAny); overload;  // throws org.omg.CORBA.DynAnyPackage.Invalid
    function to_any(): OOCAny; overload;  // throws org.omg.CORBA.DynAnyPackage.Invalid
    procedure destroy(); overload;
    function copy(): OOCDynAny; overload;
    procedure insert_boolean(para1: jboolean); overload;  // throws org.omg.CORBA.DynAnyPackage.InvalidValue
    procedure insert_octet(para1: jbyte); overload;  // throws org.omg.CORBA.DynAnyPackage.InvalidValue
    procedure insert_char(para1: jchar); overload;  // throws org.omg.CORBA.DynAnyPackage.InvalidValue
    procedure insert_short(para1: jshort); overload;  // throws org.omg.CORBA.DynAnyPackage.InvalidValue
    procedure insert_ushort(para1: jshort); overload;  // throws org.omg.CORBA.DynAnyPackage.InvalidValue
    procedure insert_long(para1: jint); overload;  // throws org.omg.CORBA.DynAnyPackage.InvalidValue
    procedure insert_ulong(para1: jint); overload;  // throws org.omg.CORBA.DynAnyPackage.InvalidValue
    procedure insert_float(para1: jfloat); overload;  // throws org.omg.CORBA.DynAnyPackage.InvalidValue
    procedure insert_double(para1: jdouble); overload;  // throws org.omg.CORBA.DynAnyPackage.InvalidValue
    procedure insert_string(para1: JLString); overload;  // throws org.omg.CORBA.DynAnyPackage.InvalidValue
    procedure insert_reference(para1: OOCObject); overload;  // throws org.omg.CORBA.DynAnyPackage.InvalidValue
    procedure insert_typecode(para1: OOCTypeCode); overload;  // throws org.omg.CORBA.DynAnyPackage.InvalidValue
    procedure insert_longlong(para1: jlong); overload;  // throws org.omg.CORBA.DynAnyPackage.InvalidValue
    procedure insert_ulonglong(para1: jlong); overload;  // throws org.omg.CORBA.DynAnyPackage.InvalidValue
    procedure insert_wchar(para1: jchar); overload;  // throws org.omg.CORBA.DynAnyPackage.InvalidValue
    procedure insert_wstring(para1: JLString); overload;  // throws org.omg.CORBA.DynAnyPackage.InvalidValue
    procedure insert_any(para1: OOCAny); overload;  // throws org.omg.CORBA.DynAnyPackage.InvalidValue
    procedure insert_val(para1: JISerializable); overload;  // throws org.omg.CORBA.DynAnyPackage.InvalidValue
    function get_val(): JISerializable; overload;  // throws org.omg.CORBA.DynAnyPackage.TypeMismatch
    function get_boolean(): jboolean; overload;  // throws org.omg.CORBA.DynAnyPackage.TypeMismatch
    function get_octet(): jbyte; overload;  // throws org.omg.CORBA.DynAnyPackage.TypeMismatch
    function get_char(): jchar; overload;  // throws org.omg.CORBA.DynAnyPackage.TypeMismatch
    function get_short(): jshort; overload;  // throws org.omg.CORBA.DynAnyPackage.TypeMismatch
    function get_ushort(): jshort; overload;  // throws org.omg.CORBA.DynAnyPackage.TypeMismatch
    function get_long(): jint; overload;  // throws org.omg.CORBA.DynAnyPackage.TypeMismatch
    function get_ulong(): jint; overload;  // throws org.omg.CORBA.DynAnyPackage.TypeMismatch
    function get_float(): jfloat; overload;  // throws org.omg.CORBA.DynAnyPackage.TypeMismatch
    function get_double(): jdouble; overload;  // throws org.omg.CORBA.DynAnyPackage.TypeMismatch
    function get_string(): JLString; overload;  // throws org.omg.CORBA.DynAnyPackage.TypeMismatch
    function get_reference(): OOCObject; overload;  // throws org.omg.CORBA.DynAnyPackage.TypeMismatch
    function get_typecode(): OOCTypeCode; overload;  // throws org.omg.CORBA.DynAnyPackage.TypeMismatch
    function get_longlong(): jlong; overload;  // throws org.omg.CORBA.DynAnyPackage.TypeMismatch
    function get_ulonglong(): jlong; overload;  // throws org.omg.CORBA.DynAnyPackage.TypeMismatch
    function get_wchar(): jchar; overload;  // throws org.omg.CORBA.DynAnyPackage.TypeMismatch
    function get_wstring(): JLString; overload;  // throws org.omg.CORBA.DynAnyPackage.TypeMismatch
    function get_any(): OOCAny; overload;  // throws org.omg.CORBA.DynAnyPackage.TypeMismatch
    function current_component(): OOCDynAny; overload;
    function next(): jboolean; overload;
    function seek(para1: jint): jboolean; overload;
    procedure rewind(); overload;
  end;

  OOCLocalObject = class external 'org.omg.CORBA' name 'LocalObject' (JLObject, OOCObject)
  public
    constructor create(); overload;
    function _is_equivalent(para1: OOCObject): jboolean; overload; virtual;
    function _non_existent(): jboolean; overload; virtual;
    function _hash(para1: jint): jint; overload; virtual;
    function _is_a(para1: JLString): jboolean; overload; virtual;
    function _duplicate(): OOCObject; overload; virtual;
    procedure _release(); overload; virtual;
    function _request(para1: JLString): OOCRequest; overload; virtual;
    function _create_request(para1: OOCContext; para2: JLString; para3: OOCNVList; para4: OOCNamedValue): OOCRequest; overload; virtual;
    function _create_request(para1: OOCContext; para2: JLString; para3: OOCNVList; para4: OOCNamedValue; para5: OOCExceptionList; para6: OOCContextList): OOCRequest; overload; virtual;
    function _get_interface(): OOCObject; overload; virtual;
    function _get_interface_def(): OOCObject; overload; virtual;
    function _orb(): OOCORB; overload; virtual;
    function _get_policy(para1: jint): OOCPolicy; overload; virtual;
    function _get_domain_managers(): Arr1OOCDomainManager; overload; virtual;
    function _set_policy_override(para1: Arr1OOCPolicy; para2: OOCSetOverrideType): OOCObject; overload; virtual;
    function _set_policy_override(var para1: array of OOCPolicy; para2: OOCSetOverrideType): OOCObject; overload; virtual;
    function _is_local(): jboolean; overload; virtual;
    function _servant_preinvoke(para1: JLString; para2: JLClass): OOCPServantObject; overload; virtual;
    procedure _servant_postinvoke(para1: OOCPServantObject); overload; virtual;
    function _request(para1: JLString; para2: jboolean): OOCPOutputStream; overload; virtual;
    function _invoke(para1: OOCPOutputStream): OOCPInputStream; overload; virtual;  // throws org.omg.CORBA.portable.ApplicationException, org.omg.CORBA.portable.RemarshalException
    procedure _releaseReply(para1: OOCPInputStream); overload; virtual;
    function validate_connection(): jboolean; overload; virtual;
  end;

  OOCPObjectImpl = class abstract external 'org.omg.CORBA.portable' name 'ObjectImpl' (JLObject, OOCObject)
  public
    constructor create(); overload;
    function _get_delegate(): OOCPDelegate; overload; virtual;
    procedure _set_delegate(para1: OOCPDelegate); overload; virtual;
    function _ids(): Arr1JLString; overload; virtual; abstract;
    function _duplicate(): OOCObject; overload; virtual;
    procedure _release(); overload; virtual;
    function _is_a(para1: JLString): jboolean; overload; virtual;
    function _is_equivalent(para1: OOCObject): jboolean; overload; virtual;
    function _non_existent(): jboolean; overload; virtual;
    function _hash(para1: jint): jint; overload; virtual;
    function _request(para1: JLString): OOCRequest; overload; virtual;
    function _create_request(para1: OOCContext; para2: JLString; para3: OOCNVList; para4: OOCNamedValue): OOCRequest; overload; virtual;
    function _create_request(para1: OOCContext; para2: JLString; para3: OOCNVList; para4: OOCNamedValue; para5: OOCExceptionList; para6: OOCContextList): OOCRequest; overload; virtual;
    function _get_interface_def(): OOCObject; overload; virtual;
    function _orb(): OOCORB; overload; virtual;
    function _get_policy(para1: jint): OOCPolicy; overload; virtual;
    function _get_domain_managers(): Arr1OOCDomainManager; overload; virtual;
    function _set_policy_override(para1: Arr1OOCPolicy; para2: OOCSetOverrideType): OOCObject; overload; virtual;
    function _set_policy_override(var para1: array of OOCPolicy; para2: OOCSetOverrideType): OOCObject; overload; virtual;
    function _is_local(): jboolean; overload; virtual;
    function _servant_preinvoke(para1: JLString; para2: JLClass): OOCPServantObject; overload; virtual;
    procedure _servant_postinvoke(para1: OOCPServantObject); overload; virtual;
    function _request(para1: JLString; para2: jboolean): OOCPOutputStream; overload; virtual;
    function _invoke(para1: OOCPOutputStream): OOCPInputStream; overload; virtual;  // throws org.omg.CORBA.portable.ApplicationException, org.omg.CORBA.portable.RemarshalException
    procedure _releaseReply(para1: OOCPInputStream); overload; virtual;
    function toString(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  OOPIdAssignmentPolicyOperations = interface external 'org.omg.PortableServer' name 'IdAssignmentPolicyOperations' (OOCPolicyOperations)
    function value(): OOPIdAssignmentPolicyValue; overload;
  end;

  OOPIdUniquenessPolicyOperations = interface external 'org.omg.PortableServer' name 'IdUniquenessPolicyOperations' (OOCPolicyOperations)
    function value(): OOPIdUniquenessPolicyValue; overload;
  end;

  OOPImplicitActivationPolicyOperations = interface external 'org.omg.PortableServer' name 'ImplicitActivationPolicyOperations' (OOCPolicyOperations)
    function value(): OOPImplicitActivationPolicyValue; overload;
  end;

  OOPLifespanPolicyOperations = interface external 'org.omg.PortableServer' name 'LifespanPolicyOperations' (OOCPolicyOperations)
    function value(): OOPLifespanPolicyValue; overload;
  end;

  OOPRequestProcessingPolicyOperations = interface external 'org.omg.PortableServer' name 'RequestProcessingPolicyOperations' (OOCPolicyOperations)
    function value(): OOPRequestProcessingPolicyValue; overload;
  end;

  OOPServantRetentionPolicyOperations = interface external 'org.omg.PortableServer' name 'ServantRetentionPolicyOperations' (OOCPolicyOperations)
    function value(): OOPServantRetentionPolicyValue; overload;
  end;

  OOPThreadPolicyOperations = interface external 'org.omg.PortableServer' name 'ThreadPolicyOperations' (OOCPolicyOperations)
    function value(): OOPThreadPolicyValue; overload;
  end;

  OOCStringValueHelper = class external 'org.omg.CORBA' name 'StringValueHelper' (JLObject, OOCPBoxedValueHelper)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: JLString); static; overload;
    class function extract(para1: OOCAny): JLString; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): JLString; static; overload;
    function read_value(para1: OOCPInputStream): JISerializable; overload; virtual;
    class procedure write(para1: OOCPOutputStream; para2: JLString); static; overload;
    procedure write_value(para1: OOCPOutputStream; para2: JISerializable); overload; virtual;
    function get_id(): JLString; overload; virtual;
  end;

  OOCWStringValueHelper = class external 'org.omg.CORBA' name 'WStringValueHelper' (JLObject, OOCPBoxedValueHelper)
  public
    constructor create(); overload;
    class procedure insert(para1: OOCAny; para2: JLString); static; overload;
    class function extract(para1: OOCAny): JLString; static; overload;
    class function &type(): OOCTypeCode; static; overload;
    class function id(): JLString; static; overload;
    class function read(para1: OOCPInputStream): JLString; static; overload;
    function read_value(para1: OOCPInputStream): JISerializable; overload; virtual;
    class procedure write(para1: OOCPOutputStream; para2: JLString); static; overload;
    procedure write_value(para1: OOCPOutputStream; para2: JISerializable); overload; virtual;
    function get_id(): JLString; overload; virtual;
  end;

  OOC_2_3PDelegate = class abstract external 'org.omg.CORBA_2_3.portable' name 'Delegate' (OOCPDelegate)
  public
    constructor create(); overload;
    function get_codebase(para1: OOCObject): JLString; overload; virtual;
  end;

  JRCTie = interface external 'javax.rmi.CORBA' name 'Tie' (OOCPInvokeHandler)
    function thisObject(): OOCObject; overload;
    procedure deactivate(); overload;  // throws java.rmi.NoSuchObjectException
    function orb(): OOCORB; overload;
    procedure orb(para1: OOCORB); overload;
    procedure setTarget(para1: JRRemote); overload;
    function getTarget(): JRRemote; overload;
  end;

  OOCAnyHolder = class sealed external 'org.omg.CORBA' name 'AnyHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: OOCAny; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: OOCAny); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCAnySeqHolder = class sealed external 'org.omg.CORBA' name 'AnySeqHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: Arr1OOCAny; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: Arr1OOCAny); overload;
    constructor create(const para1: array of OOCAny); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCBooleanHolder = class sealed external 'org.omg.CORBA' name 'BooleanHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: jboolean; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: jboolean); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCBooleanSeqHolder = class sealed external 'org.omg.CORBA' name 'BooleanSeqHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: Arr1jboolean; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: Arr1jboolean); overload;
    constructor create(const para1: array of jboolean); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCByteHolder = class sealed external 'org.omg.CORBA' name 'ByteHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: jbyte; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: jbyte); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCCharHolder = class sealed external 'org.omg.CORBA' name 'CharHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: jchar; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: jchar); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCCharSeqHolder = class sealed external 'org.omg.CORBA' name 'CharSeqHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: Arr1jchar; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: Arr1jchar); overload;
    constructor create(const para1: array of jchar); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCCurrentHolder = class sealed external 'org.omg.CORBA' name 'CurrentHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: OOCCurrent; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: OOCCurrent); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCDoubleHolder = class sealed external 'org.omg.CORBA' name 'DoubleHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: jdouble; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: jdouble); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCDoubleSeqHolder = class sealed external 'org.omg.CORBA' name 'DoubleSeqHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: Arr1jdouble; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: Arr1jdouble); overload;
    constructor create(const para1: array of jdouble); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCFixedHolder = class sealed external 'org.omg.CORBA' name 'FixedHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: JMBigDecimal; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: JMBigDecimal); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCFloatHolder = class sealed external 'org.omg.CORBA' name 'FloatHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: jfloat; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: jfloat); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCFloatSeqHolder = class sealed external 'org.omg.CORBA' name 'FloatSeqHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: Arr1jfloat; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: Arr1jfloat); overload;
    constructor create(const para1: array of jfloat); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCIntHolder = class sealed external 'org.omg.CORBA' name 'IntHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: jint; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCLongHolder = class sealed external 'org.omg.CORBA' name 'LongHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: jlong; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: jlong); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCLongLongSeqHolder = class sealed external 'org.omg.CORBA' name 'LongLongSeqHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: Arr1jlong; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: Arr1jlong); overload;
    constructor create(const para1: array of jlong); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCLongSeqHolder = class sealed external 'org.omg.CORBA' name 'LongSeqHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: Arr1jint; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: Arr1jint); overload;
    constructor create(const para1: array of jint); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCObjectHolder = class sealed external 'org.omg.CORBA' name 'ObjectHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: OOCObject; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: OOCObject); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCOctetSeqHolder = class sealed external 'org.omg.CORBA' name 'OctetSeqHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: Arr1jbyte; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: Arr1jbyte); overload;
    constructor create(const para1: array of jbyte); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCParameterModeHolder = class sealed external 'org.omg.CORBA' name 'ParameterModeHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: OOCParameterMode; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: OOCParameterMode); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCPolicyErrorHolder = class sealed external 'org.omg.CORBA' name 'PolicyErrorHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: OOCPolicyError; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: OOCPolicyError); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCPolicyHolder = class sealed external 'org.omg.CORBA' name 'PolicyHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: OOCPolicy; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: OOCPolicy); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCPolicyListHolder = class sealed external 'org.omg.CORBA' name 'PolicyListHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: Arr1OOCPolicy; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: Arr1OOCPolicy); overload;
    constructor create(const para1: array of OOCPolicy); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCPrincipalHolder = class sealed external 'org.omg.CORBA' name 'PrincipalHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: OOCPrincipal; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: OOCPrincipal); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCServiceInformationHolder = class sealed external 'org.omg.CORBA' name 'ServiceInformationHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: OOCServiceInformation; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: OOCServiceInformation); overload;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCShortHolder = class sealed external 'org.omg.CORBA' name 'ShortHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: jshort; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: jshort); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCShortSeqHolder = class sealed external 'org.omg.CORBA' name 'ShortSeqHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: Arr1jshort; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: Arr1jshort); overload;
    constructor create(const para1: array of jshort); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCStringHolder = class sealed external 'org.omg.CORBA' name 'StringHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: JLString; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCStringSeqHolder = class sealed external 'org.omg.CORBA' name 'StringSeqHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: Arr1JLString; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: Arr1JLString); overload;
    constructor create(const para1: array of JLString); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCTypeCodeHolder = class sealed external 'org.omg.CORBA' name 'TypeCodeHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: OOCTypeCode; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: OOCTypeCode); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCULongLongSeqHolder = class sealed external 'org.omg.CORBA' name 'ULongLongSeqHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: Arr1jlong; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: Arr1jlong); overload;
    constructor create(const para1: array of jlong); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCULongSeqHolder = class sealed external 'org.omg.CORBA' name 'ULongSeqHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: Arr1jint; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: Arr1jint); overload;
    constructor create(const para1: array of jint); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCUShortSeqHolder = class sealed external 'org.omg.CORBA' name 'UShortSeqHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: Arr1jshort; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: Arr1jshort); overload;
    constructor create(const para1: array of jshort); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCUnknownUserExceptionHolder = class sealed external 'org.omg.CORBA' name 'UnknownUserExceptionHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: OOCUnknownUserException; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: OOCUnknownUserException); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCValueBaseHolder = class sealed external 'org.omg.CORBA' name 'ValueBaseHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: JISerializable; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: JISerializable); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCWCharSeqHolder = class sealed external 'org.omg.CORBA' name 'WCharSeqHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: Arr1jchar; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: Arr1jchar); overload;
    constructor create(const para1: array of jchar); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCWStringSeqHolder = class sealed external 'org.omg.CORBA' name 'WStringSeqHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: Arr1JLString; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: Arr1JLString); overload;
    constructor create(const para1: array of JLString); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCWrongTransactionHolder = class sealed external 'org.omg.CORBA' name 'WrongTransactionHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: OOCWrongTransaction; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: OOCWrongTransaction); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCBindingHolder = class sealed external 'org.omg.CosNaming' name 'BindingHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: OOCBinding; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: OOCBinding); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCBindingIteratorHolder = class sealed external 'org.omg.CosNaming' name 'BindingIteratorHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: OOCBindingIterator; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: OOCBindingIterator); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCBindingListHolder = class sealed external 'org.omg.CosNaming' name 'BindingListHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: Arr1OOCBinding; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: Arr1OOCBinding); overload;
    constructor create(const para1: array of OOCBinding); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCBindingTypeHolder = class sealed external 'org.omg.CosNaming' name 'BindingTypeHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: OOCBindingType; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: OOCBindingType); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCNameComponentHolder = class sealed external 'org.omg.CosNaming' name 'NameComponentHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: OOCNameComponent; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: OOCNameComponent); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCNameHolder = class sealed external 'org.omg.CosNaming' name 'NameHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: Arr1OOCNameComponent; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: Arr1OOCNameComponent); overload;
    constructor create(const para1: array of OOCNameComponent); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCNamingContextExtHolder = class sealed external 'org.omg.CosNaming' name 'NamingContextExtHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: OOCNamingContextExt; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: OOCNamingContextExt); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCNInvalidAddressHolder = class sealed external 'org.omg.CosNaming.NamingContextExtPackage' name 'InvalidAddressHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: OOCNInvalidAddress; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: OOCNInvalidAddress); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCNamingContextHolder = class sealed external 'org.omg.CosNaming' name 'NamingContextHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: OOCNamingContext; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: OOCNamingContext); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCNAlreadyBoundHolder = class sealed external 'org.omg.CosNaming.NamingContextPackage' name 'AlreadyBoundHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: OOCNAlreadyBound; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: OOCNAlreadyBound); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCNCannotProceedHolder = class sealed external 'org.omg.CosNaming.NamingContextPackage' name 'CannotProceedHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: OOCNCannotProceed; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: OOCNCannotProceed); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCNInvalidNameHolder = class sealed external 'org.omg.CosNaming.NamingContextPackage' name 'InvalidNameHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: OOCNInvalidName; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: OOCNInvalidName); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCNNotEmptyHolder = class sealed external 'org.omg.CosNaming.NamingContextPackage' name 'NotEmptyHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: OOCNNotEmpty; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: OOCNNotEmpty); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCNNotFoundHolder = class sealed external 'org.omg.CosNaming.NamingContextPackage' name 'NotFoundHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: OOCNNotFound; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: OOCNNotFound); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCNNotFoundReasonHolder = class sealed external 'org.omg.CosNaming.NamingContextPackage' name 'NotFoundReasonHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: OOCNNotFoundReason; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: OOCNNotFoundReason); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOIIORHolder = class sealed external 'org.omg.IOP' name 'IORHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: OOIIOR; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: OOIIOR); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOIMultipleComponentProfileHolder = class sealed external 'org.omg.IOP' name 'MultipleComponentProfileHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: Arr1OOITaggedComponent; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: Arr1OOITaggedComponent); overload;
    constructor create(const para1: array of OOITaggedComponent); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOIServiceContextHolder = class sealed external 'org.omg.IOP' name 'ServiceContextHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: OOIServiceContext; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: OOIServiceContext); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOIServiceContextListHolder = class sealed external 'org.omg.IOP' name 'ServiceContextListHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: Arr1OOIServiceContext; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: Arr1OOIServiceContext); overload;
    constructor create(const para1: array of OOIServiceContext); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOITaggedComponentHolder = class sealed external 'org.omg.IOP' name 'TaggedComponentHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: OOITaggedComponent; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: OOITaggedComponent); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOITaggedProfileHolder = class sealed external 'org.omg.IOP' name 'TaggedProfileHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: OOITaggedProfile; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: OOITaggedProfile); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOPIORInterceptor_3_0Holder = class sealed external 'org.omg.PortableInterceptor' name 'IORInterceptor_3_0Holder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: OOPIORInterceptor_3_0; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: OOPIORInterceptor_3_0); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOPObjectReferenceFactoryHolder = class sealed external 'org.omg.PortableInterceptor' name 'ObjectReferenceFactoryHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: OOPObjectReferenceFactory; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: OOPObjectReferenceFactory); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOPObjectReferenceTemplateHolder = class sealed external 'org.omg.PortableInterceptor' name 'ObjectReferenceTemplateHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: OOPObjectReferenceTemplate; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: OOPObjectReferenceTemplate); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOPObjectReferenceTemplateSeqHolder = class sealed external 'org.omg.PortableInterceptor' name 'ObjectReferenceTemplateSeqHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: Arr1OOPObjectReferenceTemplate; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: Arr1OOPObjectReferenceTemplate); overload;
    constructor create(const para1: array of OOPObjectReferenceTemplate); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOPSCookieHolder = class sealed external 'org.omg.PortableServer.ServantLocatorPackage' name 'CookieHolder' (JLObject, OOCPStreamable)
  public
    var
      fvalue: JLObject; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: JLObject); overload;
    procedure _read(para1: OOCPInputStream); overload; virtual;
    procedure _write(para1: OOCPOutputStream); overload; virtual;
    function _type(): OOCTypeCode; overload; virtual;
  end;

  OOCNamingContextExtOperations = interface external 'org.omg.CosNaming' name 'NamingContextExtOperations' (OOCNamingContextOperations)
    function to_string(para1: Arr1OOCNameComponent): JLString; overload;  // throws org.omg.CosNaming.NamingContextPackage.InvalidName
    function to_string(var para1: array of OOCNameComponent): JLString; overload;  // throws org.omg.CosNaming.NamingContextPackage.InvalidName
    function to_name(para1: JLString): Arr1OOCNameComponent; overload;  // throws org.omg.CosNaming.NamingContextPackage.InvalidName
    function to_url(para1: JLString; para2: JLString): JLString; overload;  // throws org.omg.CosNaming.NamingContextExtPackage.InvalidAddress, org.omg.CosNaming.NamingContextPackage.InvalidName
    function resolve_str(para1: JLString): OOCObject; overload;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName
  end;

  OODDynArrayOperations = interface external 'org.omg.DynamicAny' name 'DynArrayOperations' (OODDynAnyOperations)
    function get_elements(): Arr1OOCAny; overload;
    procedure set_elements(para1: Arr1OOCAny); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure set_elements(var para1: array of OOCAny); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_elements_as_dyn_any(): Arr1OODDynAny; overload;
    procedure set_elements_as_dyn_any(para1: Arr1OODDynAny); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure set_elements_as_dyn_any(var para1: array of OODDynAny); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
  end;

  OODDynEnumOperations = interface external 'org.omg.DynamicAny' name 'DynEnumOperations' (OODDynAnyOperations)
    function get_as_string(): JLString; overload;
    procedure set_as_string(para1: JLString); overload;  // throws org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_as_ulong(): jint; overload;
    procedure set_as_ulong(para1: jint); overload;  // throws org.omg.DynamicAny.DynAnyPackage.InvalidValue
  end;

  OODDynFixedOperations = interface external 'org.omg.DynamicAny' name 'DynFixedOperations' (OODDynAnyOperations)
    function get_value(): JLString; overload;
    function set_value(para1: JLString): jboolean; overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
  end;

  OODDynSequenceOperations = interface external 'org.omg.DynamicAny' name 'DynSequenceOperations' (OODDynAnyOperations)
    function get_length(): jint; overload;
    procedure set_length(para1: jint); overload;  // throws org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_elements(): Arr1OOCAny; overload;
    procedure set_elements(para1: Arr1OOCAny); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure set_elements(var para1: array of OOCAny); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_elements_as_dyn_any(): Arr1OODDynAny; overload;
    procedure set_elements_as_dyn_any(para1: Arr1OODDynAny); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure set_elements_as_dyn_any(var para1: array of OODDynAny); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
  end;

  OODDynStructOperations = interface external 'org.omg.DynamicAny' name 'DynStructOperations' (OODDynAnyOperations)
    function current_member_name(): JLString; overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function current_member_kind(): OOCTCKind; overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_members(): Arr1OODNameValuePair; overload;
    procedure set_members(para1: Arr1OODNameValuePair); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure set_members(var para1: array of OODNameValuePair); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_members_as_dyn_any(): Arr1OODNameDynAnyPair; overload;
    procedure set_members_as_dyn_any(para1: Arr1OODNameDynAnyPair); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure set_members_as_dyn_any(var para1: array of OODNameDynAnyPair); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
  end;

  OODDynUnionOperations = interface external 'org.omg.DynamicAny' name 'DynUnionOperations' (OODDynAnyOperations)
    function get_discriminator(): OODDynAny; overload;
    procedure set_discriminator(para1: OODDynAny); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch
    procedure set_to_default_member(); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch
    procedure set_to_no_active_member(); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch
    function has_no_active_member(): jboolean; overload;
    function discriminator_kind(): OOCTCKind; overload;
    function member_kind(): OOCTCKind; overload;  // throws org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function member(): OODDynAny; overload;  // throws org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function member_name(): JLString; overload;  // throws org.omg.DynamicAny.DynAnyPackage.InvalidValue
  end;

  OODDynValueCommonOperations = interface external 'org.omg.DynamicAny' name 'DynValueCommonOperations' (OODDynAnyOperations)
    function is_null(): jboolean; overload;
    procedure set_to_null(); overload;
    procedure set_to_value(); overload;
  end;

  OOPClientRequestInterceptorOperations = interface external 'org.omg.PortableInterceptor' name 'ClientRequestInterceptorOperations' (OOPInterceptorOperations)
    procedure send_request(para1: OOPClientRequestInfo); overload;  // throws org.omg.PortableInterceptor.ForwardRequest
    procedure send_poll(para1: OOPClientRequestInfo); overload;
    procedure receive_reply(para1: OOPClientRequestInfo); overload;
    procedure receive_exception(para1: OOPClientRequestInfo); overload;  // throws org.omg.PortableInterceptor.ForwardRequest
    procedure receive_other(para1: OOPClientRequestInfo); overload;  // throws org.omg.PortableInterceptor.ForwardRequest
  end;

  OOPIORInterceptorOperations = interface external 'org.omg.PortableInterceptor' name 'IORInterceptorOperations' (OOPInterceptorOperations)
    procedure establish_components(para1: OOPIORInfo); overload;
  end;

  OOPServerRequestInterceptorOperations = interface external 'org.omg.PortableInterceptor' name 'ServerRequestInterceptorOperations' (OOPInterceptorOperations)
    procedure receive_request_service_contexts(para1: OOPServerRequestInfo); overload;  // throws org.omg.PortableInterceptor.ForwardRequest
    procedure receive_request(para1: OOPServerRequestInfo); overload;  // throws org.omg.PortableInterceptor.ForwardRequest
    procedure send_reply(para1: OOPServerRequestInfo); overload;
    procedure send_exception(para1: OOPServerRequestInfo); overload;  // throws org.omg.PortableInterceptor.ForwardRequest
    procedure send_other(para1: OOPServerRequestInfo); overload;  // throws org.omg.PortableInterceptor.ForwardRequest
  end;

  OOPClientRequestInfoOperations = interface external 'org.omg.PortableInterceptor' name 'ClientRequestInfoOperations' (OOPRequestInfoOperations)
    function target(): OOCObject; overload;
    function effective_target(): OOCObject; overload;
    function effective_profile(): OOITaggedProfile; overload;
    function received_exception(): OOCAny; overload;
    function received_exception_id(): JLString; overload;
    function get_effective_component(para1: jint): OOITaggedComponent; overload;
    function get_effective_components(para1: jint): Arr1OOITaggedComponent; overload;
    function get_request_policy(para1: jint): OOCPolicy; overload;
    procedure add_request_service_context(para1: OOIServiceContext; para2: jboolean); overload;
  end;

  OOPServerRequestInfoOperations = interface external 'org.omg.PortableInterceptor' name 'ServerRequestInfoOperations' (OOPRequestInfoOperations)
    function sending_exception(): OOCAny; overload;
    function object_id(): Arr1jbyte; overload;
    function adapter_id(): Arr1jbyte; overload;
    function server_id(): JLString; overload;
    function orb_id(): JLString; overload;
    function adapter_name(): Arr1JLString; overload;
    function target_most_derived_interface(): JLString; overload;
    function get_server_policy(para1: jint): OOCPolicy; overload;
    procedure set_slot(para1: jint; para2: OOCAny); overload;  // throws org.omg.PortableInterceptor.InvalidSlot
    function target_is_a(para1: JLString): jboolean; overload;
    procedure add_reply_service_context(para1: OOIServiceContext; para2: jboolean); overload;
  end;

  OOCBindingIteratorPOA = class abstract external 'org.omg.CosNaming' name 'BindingIteratorPOA' (OOPServant, OOCBindingIteratorOperations, OOCPInvokeHandler)
  public
    constructor create(); overload;
    function _invoke(para1: JLString; para2: OOCPInputStream; para3: OOCPResponseHandler): OOCPOutputStream; overload; virtual;
    function _all_interfaces(para1: OOPPOA; para2: Arr1jbyte): Arr1JLString; overload; virtual;
    function _all_interfaces(para1: OOPPOA; var para2: array of jbyte): Arr1JLString; overload; virtual;
    function _this(): OOCBindingIterator; overload; virtual;
    function _this(para1: OOCORB): OOCBindingIterator; overload; virtual;
  end;

  OOCNamingContextPOA = class abstract external 'org.omg.CosNaming' name 'NamingContextPOA' (OOPServant, OOCNamingContextOperations, OOCPInvokeHandler)
  public
    constructor create(); overload;
    function _invoke(para1: JLString; para2: OOCPInputStream; para3: OOCPResponseHandler): OOCPOutputStream; overload; virtual;
    function _all_interfaces(para1: OOPPOA; para2: Arr1jbyte): Arr1JLString; overload; virtual;
    function _all_interfaces(para1: OOPPOA; var para2: array of jbyte): Arr1JLString; overload; virtual;
    function _this(): OOCNamingContext; overload; virtual;
    function _this(para1: OOCORB): OOCNamingContext; overload; virtual;
  end;

  OOPDynamicImplementation = class abstract external 'org.omg.PortableServer' name 'DynamicImplementation' (OOPServant)
  public
    constructor create(); overload;
    procedure invoke(para1: OOCServerRequest); overload; virtual; abstract;
  end;

  OOPServantActivatorOperations = interface external 'org.omg.PortableServer' name 'ServantActivatorOperations' (OOPServantManagerOperations)
    function incarnate(para1: Arr1jbyte; para2: OOPPOA): OOPServant; overload;  // throws org.omg.PortableServer.ForwardRequest
    function incarnate(var para1: array of jbyte; para2: OOPPOA): OOPServant; overload;  // throws org.omg.PortableServer.ForwardRequest
    procedure etherealize(para1: Arr1jbyte; para2: OOPPOA; para3: OOPServant; para4: jboolean; para5: jboolean); overload;
    procedure etherealize(var para1: array of jbyte; para2: OOPPOA; para3: OOPServant; para4: jboolean; para5: jboolean); overload;
  end;

  OOPServantLocatorOperations = interface external 'org.omg.PortableServer' name 'ServantLocatorOperations' (OOPServantManagerOperations)
    function preinvoke(para1: Arr1jbyte; para2: OOPPOA; para3: JLString; para4: OOPSCookieHolder): OOPServant; overload;  // throws org.omg.PortableServer.ForwardRequest
    function preinvoke(var para1: array of jbyte; para2: OOPPOA; para3: JLString; para4: OOPSCookieHolder): OOPServant; overload;  // throws org.omg.PortableServer.ForwardRequest
    procedure postinvoke(para1: Arr1jbyte; para2: OOPPOA; para3: JLString; para4: JLObject; para5: OOPServant); overload;
    procedure postinvoke(var para1: array of jbyte; para2: OOPPOA; para3: JLString; para4: JLObject; para5: OOPServant); overload;
  end;

  OWDCDOMImplementationCSS = interface external 'org.w3c.dom.css' name 'DOMImplementationCSS' (OWDDOMImplementation)
    function createCSSStyleSheet(para1: JLString; para2: JLString): OWDCCSSStyleSheet; overload;  // throws org.w3c.dom.DOMException
  end;

  OWDHHTMLDOMImplementation = interface external 'org.w3c.dom.html' name 'HTMLDOMImplementation' (OWDDOMImplementation)
    function createHTMLDocument(para1: JLString): OWDHHTMLDocument; overload;
  end;

  JIMIIONamedNodeMap = class external 'javax.imageio.metadata' name 'IIONamedNodeMap' (JLObject, OWDNamedNodeMap)
  public
    constructor create(para1: JUList); overload;
    function getLength(): jint; overload; virtual;
    function getNamedItem(para1: JLString): OWDNode; overload; virtual;
    function item(para1: jint): OWDNode; overload; virtual;
    function removeNamedItem(para1: JLString): OWDNode; overload; virtual;
    function setNamedItem(para1: OWDNode): OWDNode; overload; virtual;
    function getNamedItemNS(para1: JLString; para2: JLString): OWDNode; overload; virtual;
    function setNamedItemNS(para1: OWDNode): OWDNode; overload; virtual;
    function removeNamedItemNS(para1: JLString; para2: JLString): OWDNode; overload; virtual;
  end;

  JXSNode = interface external 'javax.xml.soap' name 'Node' (OWDNode)
    function getValue(): JLString; overload;
    procedure setValue(para1: JLString); overload;
    procedure setParentElement(para1: JXSSOAPElement); overload;  // throws javax.xml.soap.SOAPException
    function getParentElement(): JXSSOAPElement; overload;
    procedure detachNode(); overload;
    procedure recycleNode(); overload;
  end;

  OWDAttr = interface external 'org.w3c.dom' name 'Attr' (OWDNode)
    function getName(): JLString; overload;
    function getSpecified(): jboolean; overload;
    function getValue(): JLString; overload;
    procedure setValue(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getOwnerElement(): OWDElement; overload;
    function getSchemaTypeInfo(): OWDTypeInfo; overload;
    function isId(): jboolean; overload;
  end;

  OWDCharacterData = interface external 'org.w3c.dom' name 'CharacterData' (OWDNode)
    function getData(): JLString; overload;  // throws org.w3c.dom.DOMException
    procedure setData(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getLength(): jint; overload;
    function substringData(para1: jint; para2: jint): JLString; overload;  // throws org.w3c.dom.DOMException
    procedure appendData(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    procedure insertData(para1: jint; para2: JLString); overload;  // throws org.w3c.dom.DOMException
    procedure deleteData(para1: jint; para2: jint); overload;  // throws org.w3c.dom.DOMException
    procedure replaceData(para1: jint; para2: jint; para3: JLString); overload;  // throws org.w3c.dom.DOMException
  end;

  OWDDocument = interface external 'org.w3c.dom' name 'Document' (OWDNode)
    function getDoctype(): OWDDocumentType; overload;
    function getImplementation(): OWDDOMImplementation; overload;
    function getDocumentElement(): OWDElement; overload;
    function createElement(para1: JLString): OWDElement; overload;  // throws org.w3c.dom.DOMException
    function createDocumentFragment(): OWDDocumentFragment; overload;
    function createTextNode(para1: JLString): OWDText; overload;
    function createComment(para1: JLString): OWDComment; overload;
    function createCDATASection(para1: JLString): OWDCDATASection; overload;  // throws org.w3c.dom.DOMException
    function createProcessingInstruction(para1: JLString; para2: JLString): OWDProcessingInstruction; overload;  // throws org.w3c.dom.DOMException
    function createAttribute(para1: JLString): OWDAttr; overload;  // throws org.w3c.dom.DOMException
    function createEntityReference(para1: JLString): OWDEntityReference; overload;  // throws org.w3c.dom.DOMException
    function getElementsByTagName(para1: JLString): OWDNodeList; overload;
    function importNode(para1: OWDNode; para2: jboolean): OWDNode; overload;  // throws org.w3c.dom.DOMException
    function createElementNS(para1: JLString; para2: JLString): OWDElement; overload;  // throws org.w3c.dom.DOMException
    function createAttributeNS(para1: JLString; para2: JLString): OWDAttr; overload;  // throws org.w3c.dom.DOMException
    function getElementsByTagNameNS(para1: JLString; para2: JLString): OWDNodeList; overload;
    function getElementById(para1: JLString): OWDElement; overload;
    function getInputEncoding(): JLString; overload;
    function getXmlEncoding(): JLString; overload;
    function getXmlStandalone(): jboolean; overload;
    procedure setXmlStandalone(para1: jboolean); overload;  // throws org.w3c.dom.DOMException
    function getXmlVersion(): JLString; overload;
    procedure setXmlVersion(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getStrictErrorChecking(): jboolean; overload;
    procedure setStrictErrorChecking(para1: jboolean); overload;
    function getDocumentURI(): JLString; overload;
    procedure setDocumentURI(para1: JLString); overload;
    function adoptNode(para1: OWDNode): OWDNode; overload;  // throws org.w3c.dom.DOMException
    function getDomConfig(): OWDDOMConfiguration; overload;
    procedure normalizeDocument(); overload;
    function renameNode(para1: OWDNode; para2: JLString; para3: JLString): OWDNode; overload;  // throws org.w3c.dom.DOMException
  end;

  OWDDocumentFragment = interface external 'org.w3c.dom' name 'DocumentFragment' (OWDNode)
  end;

  OWDDocumentType = interface external 'org.w3c.dom' name 'DocumentType' (OWDNode)
    function getName(): JLString; overload;
    function getEntities(): OWDNamedNodeMap; overload;
    function getNotations(): OWDNamedNodeMap; overload;
    function getPublicId(): JLString; overload;
    function getSystemId(): JLString; overload;
    function getInternalSubset(): JLString; overload;
  end;

  OWDElement = interface external 'org.w3c.dom' name 'Element' (OWDNode)
    function getTagName(): JLString; overload;
    function getAttribute(para1: JLString): JLString; overload;
    procedure setAttribute(para1: JLString; para2: JLString); overload;  // throws org.w3c.dom.DOMException
    procedure removeAttribute(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getAttributeNode(para1: JLString): OWDAttr; overload;
    function setAttributeNode(para1: OWDAttr): OWDAttr; overload;  // throws org.w3c.dom.DOMException
    function removeAttributeNode(para1: OWDAttr): OWDAttr; overload;  // throws org.w3c.dom.DOMException
    function getElementsByTagName(para1: JLString): OWDNodeList; overload;
    function getAttributeNS(para1: JLString; para2: JLString): JLString; overload;  // throws org.w3c.dom.DOMException
    procedure setAttributeNS(para1: JLString; para2: JLString; para3: JLString); overload;  // throws org.w3c.dom.DOMException
    procedure removeAttributeNS(para1: JLString; para2: JLString); overload;  // throws org.w3c.dom.DOMException
    function getAttributeNodeNS(para1: JLString; para2: JLString): OWDAttr; overload;  // throws org.w3c.dom.DOMException
    function setAttributeNodeNS(para1: OWDAttr): OWDAttr; overload;  // throws org.w3c.dom.DOMException
    function getElementsByTagNameNS(para1: JLString; para2: JLString): OWDNodeList; overload;  // throws org.w3c.dom.DOMException
    function hasAttribute(para1: JLString): jboolean; overload;
    function hasAttributeNS(para1: JLString; para2: JLString): jboolean; overload;  // throws org.w3c.dom.DOMException
    function getSchemaTypeInfo(): OWDTypeInfo; overload;
    procedure setIdAttribute(para1: JLString; para2: jboolean); overload;  // throws org.w3c.dom.DOMException
    procedure setIdAttributeNS(para1: JLString; para2: JLString; para3: jboolean); overload;  // throws org.w3c.dom.DOMException
    procedure setIdAttributeNode(para1: OWDAttr; para2: jboolean); overload;  // throws org.w3c.dom.DOMException
  end;

  OWDEntity = interface external 'org.w3c.dom' name 'Entity' (OWDNode)
    function getPublicId(): JLString; overload;
    function getSystemId(): JLString; overload;
    function getNotationName(): JLString; overload;
    function getInputEncoding(): JLString; overload;
    function getXmlEncoding(): JLString; overload;
    function getXmlVersion(): JLString; overload;
  end;

  OWDEntityReference = interface external 'org.w3c.dom' name 'EntityReference' (OWDNode)
  end;

  OWDNotation = interface external 'org.w3c.dom' name 'Notation' (OWDNode)
    function getPublicId(): JLString; overload;
    function getSystemId(): JLString; overload;
  end;

  OWDProcessingInstruction = interface external 'org.w3c.dom' name 'ProcessingInstruction' (OWDNode)
    function getTarget(): JLString; overload;
    function getData(): JLString; overload;
    procedure setData(para1: JLString); overload;  // throws org.w3c.dom.DOMException
  end;

  OWDXXPathNamespace = interface external 'org.w3c.dom.xpath' name 'XPathNamespace' (OWDNode)
    const
      XPATH_NAMESPACE_NODE = 13;
    function getOwnerElement(): OWDElement; overload;
  end;

  JIMIIONodeList = class external 'javax.imageio.metadata' name 'IIONodeList' (JLObject, OWDNodeList)
  public
    constructor create(para1: JUList); overload;
    function getLength(): jint; overload; virtual;
    function item(para1: jint): OWDNode; overload; virtual;
  end;

  OWDCCSSCharsetRule = interface external 'org.w3c.dom.css' name 'CSSCharsetRule' (OWDCCSSRule)
    function getEncoding(): JLString; overload;
    procedure setEncoding(para1: JLString); overload;  // throws org.w3c.dom.DOMException
  end;

  OWDCCSSFontFaceRule = interface external 'org.w3c.dom.css' name 'CSSFontFaceRule' (OWDCCSSRule)
    function getStyle(): OWDCCSSStyleDeclaration; overload;
  end;

  OWDCCSSImportRule = interface external 'org.w3c.dom.css' name 'CSSImportRule' (OWDCCSSRule)
    function getHref(): JLString; overload;
    function getMedia(): OWDSMediaList; overload;
    function getStyleSheet(): OWDCCSSStyleSheet; overload;
  end;

  OWDCCSSMediaRule = interface external 'org.w3c.dom.css' name 'CSSMediaRule' (OWDCCSSRule)
    function getMedia(): OWDSMediaList; overload;
    function getCssRules(): OWDCCSSRuleList; overload;
    function insertRule(para1: JLString; para2: jint): jint; overload;  // throws org.w3c.dom.DOMException
    procedure deleteRule(para1: jint); overload;  // throws org.w3c.dom.DOMException
  end;

  OWDCCSSPageRule = interface external 'org.w3c.dom.css' name 'CSSPageRule' (OWDCCSSRule)
    function getSelectorText(): JLString; overload;
    procedure setSelectorText(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getStyle(): OWDCCSSStyleDeclaration; overload;
  end;

  OWDCCSSStyleRule = interface external 'org.w3c.dom.css' name 'CSSStyleRule' (OWDCCSSRule)
    function getSelectorText(): JLString; overload;
    procedure setSelectorText(para1: JLString); overload;  // throws org.w3c.dom.DOMException
    function getStyle(): OWDCCSSStyleDeclaration; overload;
  end;

  OWDCCSSUnknownRule = interface external 'org.w3c.dom.css' name 'CSSUnknownRule' (OWDCCSSRule)
  end;

  OWDCCSSPrimitiveValue = interface external 'org.w3c.dom.css' name 'CSSPrimitiveValue' (OWDCCSSValue)
    const
      CSS_UNKNOWN = 0;
      CSS_NUMBER = 1;
      CSS_PERCENTAGE = 2;
      CSS_EMS = 3;
      CSS_EXS = 4;
      CSS_PX = 5;
      CSS_CM = 6;
      CSS_MM = 7;
      CSS_IN = 8;
      CSS_PT = 9;
      CSS_PC = 10;
      CSS_DEG = 11;
      CSS_RAD = 12;
      CSS_GRAD = 13;
      CSS_MS = 14;
      CSS_S = 15;
      CSS_HZ = 16;
      CSS_KHZ = 17;
      CSS_DIMENSION = 18;
      CSS_STRING = 19;
      CSS_URI = 20;
      CSS_IDENT = 21;
      CSS_ATTR = 22;
      CSS_COUNTER = 23;
      CSS_RECT = 24;
      CSS_RGBCOLOR = 25;
    function getPrimitiveType(): jshort; overload;
    procedure setFloatValue(para1: jshort; para2: jfloat); overload;  // throws org.w3c.dom.DOMException
    function getFloatValue(para1: jshort): jfloat; overload;  // throws org.w3c.dom.DOMException
    procedure setStringValue(para1: jshort; para2: JLString); overload;  // throws org.w3c.dom.DOMException
    function getStringValue(): JLString; overload;  // throws org.w3c.dom.DOMException
    function getCounterValue(): OWDCCounter; overload;  // throws org.w3c.dom.DOMException
    function getRectValue(): OWDCRect; overload;  // throws org.w3c.dom.DOMException
    function getRGBColorValue(): OWDCRGBColor; overload;  // throws org.w3c.dom.DOMException
  end;

  OWDCCSSValueList = interface external 'org.w3c.dom.css' name 'CSSValueList' (OWDCCSSValue)
    function getLength(): jint; overload;
    function item(para1: jint): OWDCCSSValue; overload;
  end;

  OWDEMutationEvent = interface external 'org.w3c.dom.events' name 'MutationEvent' (OWDEEvent)
    const
      MODIFICATION = 1;
      ADDITION = 2;
      REMOVAL = 3;
    function getRelatedNode(): OWDNode; overload;
    function getPrevValue(): JLString; overload;
    function getNewValue(): JLString; overload;
    function getAttrName(): JLString; overload;
    function getAttrChange(): jshort; overload;
    procedure initMutationEvent(para1: JLString; para2: jboolean; para3: jboolean; para4: OWDNode; para5: JLString; para6: JLString; para7: JLString; para8: jshort); overload;
  end;

  OWDEUIEvent = interface external 'org.w3c.dom.events' name 'UIEvent' (OWDEEvent)
    function getView(): OWDVAbstractView; overload;
    function getDetail(): jint; overload;
    procedure initUIEvent(para1: JLString; para2: jboolean; para3: jboolean; para4: OWDVAbstractView; para5: jint); overload;
  end;

  OWDLLSLoadEvent = interface external 'org.w3c.dom.ls' name 'LSLoadEvent' (OWDEEvent)
    function getNewDocument(): OWDDocument; overload;
    function getInput(): OWDLLSInput; overload;
  end;

  OWDLLSProgressEvent = interface external 'org.w3c.dom.ls' name 'LSProgressEvent' (OWDEEvent)
    function getInput(): OWDLLSInput; overload;
    function getPosition(): jint; overload;
    function getTotalSize(): jint; overload;
  end;

  OWDCDocumentCSS = interface external 'org.w3c.dom.css' name 'DocumentCSS' (OWDSDocumentStyle)
    function getOverrideStyle(para1: OWDElement; para2: JLString): OWDCCSSStyleDeclaration; overload;
  end;

  OWDCCSSStyleSheet = interface external 'org.w3c.dom.css' name 'CSSStyleSheet' (OWDSStyleSheet)
    function getOwnerRule(): OWDCCSSRule; overload;
    function getCssRules(): OWDCCSSRuleList; overload;
    function insertRule(para1: JLString; para2: jint): jint; overload;  // throws org.w3c.dom.DOMException
    procedure deleteRule(para1: jint); overload;  // throws org.w3c.dom.DOMException
  end;

  OWDLLSSerializerFilter = interface external 'org.w3c.dom.ls' name 'LSSerializerFilter' (OWDTNodeFilter)
    function getWhatToShow(): jint; overload;
  end;

  OWDCViewCSS = interface external 'org.w3c.dom.css' name 'ViewCSS' (OWDVAbstractView)
    function getComputedStyle(para1: OWDElement; para2: JLString): OWDCCSSStyleDeclaration; overload;
  end;

  OXSHAttributeListImpl = class external 'org.xml.sax.helpers' name 'AttributeListImpl' (JLObject, OXSAttributeList)
  public
    constructor create(); overload;
    constructor create(para1: OXSAttributeList); overload;
    procedure setAttributeList(para1: OXSAttributeList); overload; virtual;
    procedure addAttribute(para1: JLString; para2: JLString; para3: JLString); overload; virtual;
    procedure removeAttribute(para1: JLString); overload; virtual;
    procedure clear(); overload; virtual;
    function getLength(): jint; overload; virtual;
    function getName(para1: jint): JLString; overload; virtual;
    function getType(para1: jint): JLString; overload; virtual;
    function getValue(para1: jint): JLString; overload; virtual;
    function getType(para1: JLString): JLString; overload; virtual;
    function getValue(para1: JLString): JLString; overload; virtual;
  end;

  OXSEAttributes2 = interface external 'org.xml.sax.ext' name 'Attributes2' (OXSAttributes)
    function isDeclared(para1: jint): jboolean; overload;
    function isDeclared(para1: JLString): jboolean; overload;
    function isDeclared(para1: JLString; para2: JLString): jboolean; overload;
    function isSpecified(para1: jint): jboolean; overload;
    function isSpecified(para1: JLString; para2: JLString): jboolean; overload;
    function isSpecified(para1: JLString): jboolean; overload;
  end;

  OXSHAttributesImpl = class external 'org.xml.sax.helpers' name 'AttributesImpl' (JLObject, OXSAttributes)
  public
    constructor create(); overload;
    constructor create(para1: OXSAttributes); overload;
    function getLength(): jint; overload; virtual;
    function getURI(para1: jint): JLString; overload; virtual;
    function getLocalName(para1: jint): JLString; overload; virtual;
    function getQName(para1: jint): JLString; overload; virtual;
    function getType(para1: jint): JLString; overload; virtual;
    function getValue(para1: jint): JLString; overload; virtual;
    function getIndex(para1: JLString; para2: JLString): jint; overload; virtual;
    function getIndex(para1: JLString): jint; overload; virtual;
    function getType(para1: JLString; para2: JLString): JLString; overload; virtual;
    function getType(para1: JLString): JLString; overload; virtual;
    function getValue(para1: JLString; para2: JLString): JLString; overload; virtual;
    function getValue(para1: JLString): JLString; overload; virtual;
    procedure clear(); overload; virtual;
    procedure setAttributes(para1: OXSAttributes); overload; virtual;
    procedure addAttribute(para1: JLString; para2: JLString; para3: JLString; para4: JLString; para5: JLString); overload; virtual;
    procedure setAttribute(para1: jint; para2: JLString; para3: JLString; para4: JLString; para5: JLString; para6: JLString); overload; virtual;
    procedure removeAttribute(para1: jint); overload; virtual;
    procedure setURI(para1: jint; para2: JLString); overload; virtual;
    procedure setLocalName(para1: jint; para2: JLString); overload; virtual;
    procedure setQName(para1: jint; para2: JLString); overload; virtual;
    procedure setType(para1: jint; para2: JLString); overload; virtual;
    procedure setValue(para1: jint; para2: JLString); overload; virtual;
  end;

  JXBUnmarshallerHandler = interface external 'javax.xml.bind' name 'UnmarshallerHandler' (OXSContentHandler)
    function getResult(): JLObject; overload;  // throws javax.xml.bind.JAXBException, java.lang.IllegalStateException
  end;

  JXTSTemplatesHandler = interface external 'javax.xml.transform.sax' name 'TemplatesHandler' (OXSContentHandler)
    function getTemplates(): JXTTemplates; overload;
    procedure setSystemId(para1: JLString); overload;
    function getSystemId(): JLString; overload;
  end;

  JXVValidatorHandler = class abstract external 'javax.xml.validation' name 'ValidatorHandler' (JLObject, OXSContentHandler)
  strict protected
    constructor create(); overload;
  public
    procedure setContentHandler(para1: OXSContentHandler); overload; virtual; abstract;
    function getContentHandler(): OXSContentHandler; overload; virtual; abstract;
    procedure setErrorHandler(para1: OXSErrorHandler); overload; virtual; abstract;
    function getErrorHandler(): OXSErrorHandler; overload; virtual; abstract;
    procedure setResourceResolver(para1: OWDLLSResourceResolver); overload; virtual; abstract;
    function getResourceResolver(): OWDLLSResourceResolver; overload; virtual; abstract;
    function getTypeInfoProvider(): JXVTypeInfoProvider; overload; virtual; abstract;
    function getFeature(para1: JLString): jboolean; overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    procedure setFeature(para1: JLString; para2: jboolean); overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    procedure setProperty(para1: JLString; para2: JLObject); overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    function getProperty(para1: JLString): JLObject; overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
  end;

  OXSEEntityResolver2 = interface external 'org.xml.sax.ext' name 'EntityResolver2' (OXSEntityResolver)
    function getExternalSubset(para1: JLString; para2: JLString): OXSInputSource; overload;  // throws org.xml.sax.SAXException, java.io.IOException
    function resolveEntity(para1: JLString; para2: JLString; para3: JLString; para4: JLString): OXSInputSource; overload;  // throws org.xml.sax.SAXException, java.io.IOException
  end;

  OXSHandlerBase = class external 'org.xml.sax' name 'HandlerBase' (JLObject, OXSEntityResolver, OXSDTDHandler, OXSDocumentHandler, OXSErrorHandler)
  public
    constructor create(); overload;
    function resolveEntity(para1: JLString; para2: JLString): OXSInputSource; overload; virtual;  // throws org.xml.sax.SAXException
    procedure notationDecl(para1: JLString; para2: JLString; para3: JLString); overload; virtual;
    procedure unparsedEntityDecl(para1: JLString; para2: JLString; para3: JLString; para4: JLString); overload; virtual;
    procedure setDocumentLocator(para1: OXSLocator); overload; virtual;
    procedure startDocument(); overload; virtual;  // throws org.xml.sax.SAXException
    procedure endDocument(); overload; virtual;  // throws org.xml.sax.SAXException
    procedure startElement(para1: JLString; para2: OXSAttributeList); overload; virtual;  // throws org.xml.sax.SAXException
    procedure endElement(para1: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure characters(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure characters(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure ignorableWhitespace(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure ignorableWhitespace(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure processingInstruction(para1: JLString; para2: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure warning(para1: OXSSAXParseException); overload; virtual;  // throws org.xml.sax.SAXException
    procedure error(para1: OXSSAXParseException); overload; virtual;  // throws org.xml.sax.SAXException
    procedure fatalError(para1: OXSSAXParseException); overload; virtual;  // throws org.xml.sax.SAXException
  end;

  OXSHDefaultHandler = class external 'org.xml.sax.helpers' name 'DefaultHandler' (JLObject, OXSEntityResolver, OXSDTDHandler, OXSContentHandler, OXSErrorHandler)
  public
    constructor create(); overload;
    function resolveEntity(para1: JLString; para2: JLString): OXSInputSource; overload; virtual;  // throws java.io.IOException, org.xml.sax.SAXException
    procedure notationDecl(para1: JLString; para2: JLString; para3: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure unparsedEntityDecl(para1: JLString; para2: JLString; para3: JLString; para4: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure setDocumentLocator(para1: OXSLocator); overload; virtual;
    procedure startDocument(); overload; virtual;  // throws org.xml.sax.SAXException
    procedure endDocument(); overload; virtual;  // throws org.xml.sax.SAXException
    procedure startPrefixMapping(para1: JLString; para2: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure endPrefixMapping(para1: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure startElement(para1: JLString; para2: JLString; para3: JLString; para4: OXSAttributes); overload; virtual;  // throws org.xml.sax.SAXException
    procedure endElement(para1: JLString; para2: JLString; para3: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure characters(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure characters(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure ignorableWhitespace(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure ignorableWhitespace(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure processingInstruction(para1: JLString; para2: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure skippedEntity(para1: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure warning(para1: OXSSAXParseException); overload; virtual;  // throws org.xml.sax.SAXException
    procedure error(para1: OXSSAXParseException); overload; virtual;  // throws org.xml.sax.SAXException
    procedure fatalError(para1: OXSSAXParseException); overload; virtual;  // throws org.xml.sax.SAXException
  end;

  OXSELocator2 = interface external 'org.xml.sax.ext' name 'Locator2' (OXSLocator)
    function getXMLVersion(): JLString; overload;
    function getEncoding(): JLString; overload;
  end;

  OXSHLocatorImpl = class external 'org.xml.sax.helpers' name 'LocatorImpl' (JLObject, OXSLocator)
  public
    constructor create(); overload;
    constructor create(para1: OXSLocator); overload;
    function getPublicId(): JLString; overload; virtual;
    function getSystemId(): JLString; overload; virtual;
    function getLineNumber(): jint; overload; virtual;
    function getColumnNumber(): jint; overload; virtual;
    procedure setPublicId(para1: JLString); overload; virtual;
    procedure setSystemId(para1: JLString); overload; virtual;
    procedure setLineNumber(para1: jint); overload; virtual;
    procedure setColumnNumber(para1: jint); overload; virtual;
  end;

  OXSHXMLReaderAdapter = class external 'org.xml.sax.helpers' name 'XMLReaderAdapter' (JLObject, OXSParser, OXSContentHandler)
  public
    type
      InnerAttributesAdapter = class;
      Arr1InnerAttributesAdapter = array of InnerAttributesAdapter;
      Arr2InnerAttributesAdapter = array of Arr1InnerAttributesAdapter;
      Arr3InnerAttributesAdapter = array of Arr2InnerAttributesAdapter;
      InnerAttributesAdapter = class sealed external 'org.xml.sax.helpers' name 'AttributesAdapter' 
      end;

  public
    constructor create(); overload;  // throws org.xml.sax.SAXException
    constructor create(para1: OXSXMLReader); overload;
    procedure setLocale(para1: JULocale); overload; virtual;  // throws org.xml.sax.SAXException
    procedure setEntityResolver(para1: OXSEntityResolver); overload; virtual;
    procedure setDTDHandler(para1: OXSDTDHandler); overload; virtual;
    procedure setDocumentHandler(para1: OXSDocumentHandler); overload; virtual;
    procedure setErrorHandler(para1: OXSErrorHandler); overload; virtual;
    procedure parse(para1: JLString); overload; virtual;  // throws java.io.IOException, org.xml.sax.SAXException
    procedure parse(para1: OXSInputSource); overload; virtual;  // throws java.io.IOException, org.xml.sax.SAXException
    procedure setDocumentLocator(para1: OXSLocator); overload; virtual;
    procedure startDocument(); overload; virtual;  // throws org.xml.sax.SAXException
    procedure endDocument(); overload; virtual;  // throws org.xml.sax.SAXException
    procedure startPrefixMapping(para1: JLString; para2: JLString); overload; virtual;
    procedure endPrefixMapping(para1: JLString); overload; virtual;
    procedure startElement(para1: JLString; para2: JLString; para3: JLString; para4: OXSAttributes); overload; virtual;  // throws org.xml.sax.SAXException
    procedure endElement(para1: JLString; para2: JLString; para3: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure characters(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure characters(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure ignorableWhitespace(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure ignorableWhitespace(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure processingInstruction(para1: JLString; para2: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure skippedEntity(para1: JLString); overload; virtual;  // throws org.xml.sax.SAXException
  end;

  OXSXMLFilter = interface external 'org.xml.sax' name 'XMLFilter' (OXSXMLReader)
    procedure setParent(para1: OXSXMLReader); overload;
    function getParent(): OXSXMLReader; overload;
  end;

  OXSHParserAdapter = class external 'org.xml.sax.helpers' name 'ParserAdapter' (JLObject, OXSXMLReader, OXSDocumentHandler)
  public
    type
      InnerAttributeListAdapter = class;
      Arr1InnerAttributeListAdapter = array of InnerAttributeListAdapter;
      Arr2InnerAttributeListAdapter = array of Arr1InnerAttributeListAdapter;
      Arr3InnerAttributeListAdapter = array of Arr2InnerAttributeListAdapter;
      InnerAttributeListAdapter = class sealed external 'org.xml.sax.helpers' name 'AttributeListAdapter' 
      end;

  public
    constructor create(); overload;  // throws org.xml.sax.SAXException
    constructor create(para1: OXSParser); overload;
    procedure setFeature(para1: JLString; para2: jboolean); overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    function getFeature(para1: JLString): jboolean; overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    procedure setProperty(para1: JLString; para2: JLObject); overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    function getProperty(para1: JLString): JLObject; overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    procedure setEntityResolver(para1: OXSEntityResolver); overload; virtual;
    function getEntityResolver(): OXSEntityResolver; overload; virtual;
    procedure setDTDHandler(para1: OXSDTDHandler); overload; virtual;
    function getDTDHandler(): OXSDTDHandler; overload; virtual;
    procedure setContentHandler(para1: OXSContentHandler); overload; virtual;
    function getContentHandler(): OXSContentHandler; overload; virtual;
    procedure setErrorHandler(para1: OXSErrorHandler); overload; virtual;
    function getErrorHandler(): OXSErrorHandler; overload; virtual;
    procedure parse(para1: JLString); overload; virtual;  // throws java.io.IOException, org.xml.sax.SAXException
    procedure parse(para1: OXSInputSource); overload; virtual;  // throws java.io.IOException, org.xml.sax.SAXException
    procedure setDocumentLocator(para1: OXSLocator); overload; virtual;
    procedure startDocument(); overload; virtual;  // throws org.xml.sax.SAXException
    procedure endDocument(); overload; virtual;  // throws org.xml.sax.SAXException
    procedure startElement(para1: JLString; para2: OXSAttributeList); overload; virtual;  // throws org.xml.sax.SAXException
    procedure endElement(para1: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure characters(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure characters(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure ignorableWhitespace(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure ignorableWhitespace(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure processingInstruction(para1: JLString; para2: JLString); overload; virtual;  // throws org.xml.sax.SAXException
  end;

  JXTSTransformerHandler = interface external 'javax.xml.transform.sax' name 'TransformerHandler' (OXSContentHandler, OXSELexicalHandler, OXSDTDHandler)
    procedure setResult(para1: JXTResult); overload;  // throws java.lang.IllegalArgumentException
    procedure setSystemId(para1: JLString); overload;
    function getSystemId(): JLString; overload;
    function getTransformer(): JXTTransformer; overload;
  end;

  JLInternalError = class external 'java.lang' name 'InternalError' (JLVirtualMachineError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLOutOfMemoryError = class external 'java.lang' name 'OutOfMemoryError' (JLVirtualMachineError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLStackOverflowError = class external 'java.lang' name 'StackOverflowError' (JLVirtualMachineError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLUnknownError = class external 'java.lang' name 'UnknownError' (JLVirtualMachineError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JAPPrinterAbortException = class external 'java.awt.print' name 'PrinterAbortException' (JAPPrinterException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JAPPrinterIOException = class external 'java.awt.print' name 'PrinterIOException' (JAPPrinterException)
  public
    constructor create(para1: JIIOException); overload;
    function getIOException(): JIIOException; overload; virtual;
    function getCause(): JLThrowable; overload; virtual;
  end;

  JRSServerCloneException = class external 'java.rmi.server' name 'ServerCloneException' (JLCloneNotSupportedException)
  public
    var
      fdetail: JLException; external name 'detail';
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLException); overload;
    function getMessage(): JLString; overload; virtual;
    function getCause(): JLThrowable; overload; virtual;
  end;

  JRAUnknownGroupException = class external 'java.rmi.activation' name 'UnknownGroupException' (JRAActivationException)
  public
    constructor create(para1: JLString); overload;
  end;

  JRAUnknownObjectException = class external 'java.rmi.activation' name 'UnknownObjectException' (JRAActivationException)
  public
    constructor create(para1: JLString); overload;
  end;

  JSDigestException = class external 'java.security' name 'DigestException' (JSGeneralSecurityException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JSInvalidAlgorithmParameterException = class external 'java.security' name 'InvalidAlgorithmParameterException' (JSGeneralSecurityException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JSKeyException = class external 'java.security' name 'KeyException' (JSGeneralSecurityException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JSKeyStoreException = class external 'java.security' name 'KeyStoreException' (JSGeneralSecurityException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JSNoSuchAlgorithmException = class external 'java.security' name 'NoSuchAlgorithmException' (JSGeneralSecurityException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JSNoSuchProviderException = class external 'java.security' name 'NoSuchProviderException' (JSGeneralSecurityException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JSSignatureException = class external 'java.security' name 'SignatureException' (JSGeneralSecurityException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JSUnrecoverableEntryException = class external 'java.security' name 'UnrecoverableEntryException' (JSGeneralSecurityException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JSCCRLException = class external 'java.security.cert' name 'CRLException' (JSGeneralSecurityException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JSCCertPathBuilderException = class external 'java.security.cert' name 'CertPathBuilderException' (JSGeneralSecurityException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
  end;

  JSCCertPathValidatorException = class external 'java.security.cert' name 'CertPathValidatorException' (JSGeneralSecurityException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable; para3: JSCCertPath; para4: jint); overload;
    function getCertPath(): JSCCertPath; overload; virtual;
    function getIndex(): jint; overload; virtual;
  end;

  JSCCertStoreException = class external 'java.security.cert' name 'CertStoreException' (JSGeneralSecurityException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
  end;

  JSCCertificateException = class external 'java.security.cert' name 'CertificateException' (JSGeneralSecurityException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JSSInvalidKeySpecException = class external 'java.security.spec' name 'InvalidKeySpecException' (JSGeneralSecurityException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JSSInvalidParameterSpecException = class external 'java.security.spec' name 'InvalidParameterSpecException' (JSGeneralSecurityException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JCBadPaddingException = class external 'javax.crypto' name 'BadPaddingException' (JSGeneralSecurityException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JCExemptionMechanismException = class external 'javax.crypto' name 'ExemptionMechanismException' (JSGeneralSecurityException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JCIllegalBlockSizeException = class external 'javax.crypto' name 'IllegalBlockSizeException' (JSGeneralSecurityException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JCNoSuchPaddingException = class external 'javax.crypto' name 'NoSuchPaddingException' (JSGeneralSecurityException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JCShortBufferException = class external 'javax.crypto' name 'ShortBufferException' (JSGeneralSecurityException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JSALLoginException = class external 'javax.security.auth.login' name 'LoginException' (JSGeneralSecurityException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JMMBeanException = class external 'javax.management' name 'MBeanException' (JMJMException)
  public
    constructor create(para1: JLException); overload;
    constructor create(para1: JLException; para2: JLString); overload;
    function getTargetException(): JLException; overload; virtual;
    function getCause(): JLThrowable; overload; virtual;
  end;

  JMOperationsException = class external 'javax.management' name 'OperationsException' (JMJMException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JMReflectionException = class external 'javax.management' name 'ReflectionException' (JMJMException)
  public
    constructor create(para1: JLException); overload;
    constructor create(para1: JLException; para2: JLString); overload;
    function getTargetException(): JLException; overload; virtual;
    function getCause(): JLThrowable; overload; virtual;
  end;

  JMOOpenDataException = class external 'javax.management.openmbean' name 'OpenDataException' (JMJMException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JMRRelationException = class external 'javax.management.relation' name 'RelationException' (JMJMException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JNCannotProceedException = class external 'javax.naming' name 'CannotProceedException' (JNNamingException)
  strict protected
    var
      fremainingNewName: JNName; external name 'remainingNewName';
      fenvironment: JUHashtable; external name 'environment';
      faltName: JNName; external name 'altName';
      faltNameCtx: JNContext; external name 'altNameCtx';
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
    function getEnvironment(): JUHashtable; overload; virtual;
    procedure setEnvironment(para1: JUHashtable); overload; virtual;
    function getRemainingNewName(): JNName; overload; virtual;
    procedure setRemainingNewName(para1: JNName); overload; virtual;
    function getAltName(): JNName; overload; virtual;
    procedure setAltName(para1: JNName); overload; virtual;
    function getAltNameCtx(): JNContext; overload; virtual;
    procedure setAltNameCtx(para1: JNContext); overload; virtual;
  end;

  JNCommunicationException = class external 'javax.naming' name 'CommunicationException' (JNNamingException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JNConfigurationException = class external 'javax.naming' name 'ConfigurationException' (JNNamingException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JNContextNotEmptyException = class external 'javax.naming' name 'ContextNotEmptyException' (JNNamingException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JNInsufficientResourcesException = class external 'javax.naming' name 'InsufficientResourcesException' (JNNamingException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JNInterruptedNamingException = class external 'javax.naming' name 'InterruptedNamingException' (JNNamingException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JNInvalidNameException = class external 'javax.naming' name 'InvalidNameException' (JNNamingException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JNLimitExceededException = class external 'javax.naming' name 'LimitExceededException' (JNNamingException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JNLinkException = class external 'javax.naming' name 'LinkException' (JNNamingException)
  strict protected
    var
      flinkResolvedName: JNName; external name 'linkResolvedName';
      flinkResolvedObj: JLObject; external name 'linkResolvedObj';
      flinkRemainingName: JNName; external name 'linkRemainingName';
      flinkExplanation: JLString; external name 'linkExplanation';
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
    function getLinkResolvedName(): JNName; overload; virtual;
    function getLinkRemainingName(): JNName; overload; virtual;
    function getLinkResolvedObj(): JLObject; overload; virtual;
    function getLinkExplanation(): JLString; overload; virtual;
    procedure setLinkExplanation(para1: JLString); overload; virtual;
    procedure setLinkResolvedName(para1: JNName); overload; virtual;
    procedure setLinkRemainingName(para1: JNName); overload; virtual;
    procedure setLinkResolvedObj(para1: JLObject); overload; virtual;
    function toString(): JLString; overload; virtual;
    function toString(para1: jboolean): JLString; overload; virtual;
  end;

  JNNameAlreadyBoundException = class external 'javax.naming' name 'NameAlreadyBoundException' (JNNamingException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JNNameNotFoundException = class external 'javax.naming' name 'NameNotFoundException' (JNNamingException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JNNamingSecurityException = class abstract external 'javax.naming' name 'NamingSecurityException' (JNNamingException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JNNoInitialContextException = class external 'javax.naming' name 'NoInitialContextException' (JNNamingException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JNNotContextException = class external 'javax.naming' name 'NotContextException' (JNNamingException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JNOperationNotSupportedException = class external 'javax.naming' name 'OperationNotSupportedException' (JNNamingException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JNPartialResultException = class external 'javax.naming' name 'PartialResultException' (JNNamingException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JNReferralException = class abstract external 'javax.naming' name 'ReferralException' (JNNamingException)
  strict protected
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  public
    function getReferralInfo(): JLObject; overload; virtual; abstract;
    function getReferralContext(): JNContext; overload; virtual; abstract;  // throws javax.naming.NamingException
    function getReferralContext(para1: JUHashtable): JNContext; overload; virtual; abstract;  // throws javax.naming.NamingException
    function skipReferral(): jboolean; overload; virtual; abstract;
    procedure retryReferral(); overload; virtual; abstract;
  end;

  JNServiceUnavailableException = class external 'javax.naming' name 'ServiceUnavailableException' (JNNamingException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JNDAttributeInUseException = class external 'javax.naming.directory' name 'AttributeInUseException' (JNNamingException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JNDAttributeModificationException = class external 'javax.naming.directory' name 'AttributeModificationException' (JNNamingException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
    procedure setUnexecutedModifications(para1: Arr1JNDModificationItem); overload; virtual;
    procedure setUnexecutedModifications(var para1: array of JNDModificationItem); overload; virtual;
    function getUnexecutedModifications(): Arr1JNDModificationItem; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JNDInvalidAttributeIdentifierException = class external 'javax.naming.directory' name 'InvalidAttributeIdentifierException' (JNNamingException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JNDInvalidAttributeValueException = class external 'javax.naming.directory' name 'InvalidAttributeValueException' (JNNamingException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JNDInvalidAttributesException = class external 'javax.naming.directory' name 'InvalidAttributesException' (JNNamingException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JNDInvalidSearchControlsException = class external 'javax.naming.directory' name 'InvalidSearchControlsException' (JNNamingException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JNDInvalidSearchFilterException = class external 'javax.naming.directory' name 'InvalidSearchFilterException' (JNNamingException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JNDNoSuchAttributeException = class external 'javax.naming.directory' name 'NoSuchAttributeException' (JNNamingException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JNDSchemaViolationException = class external 'javax.naming.directory' name 'SchemaViolationException' (JNNamingException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JxSCCertificateEncodingException = class external 'javax.security.cert' name 'CertificateEncodingException' (JxSCCertificateException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JxSCCertificateExpiredException = class external 'javax.security.cert' name 'CertificateExpiredException' (JxSCCertificateException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JxSCCertificateNotYetValidException = class external 'javax.security.cert' name 'CertificateNotYetValidException' (JxSCCertificateException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JxSCCertificateParsingException = class external 'javax.security.cert' name 'CertificateParsingException' (JxSCCertificateException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JSCardNotPresentException = class external 'javax.smartcardio' name 'CardNotPresentException' (JSCardException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
  end;

  JXBMarshalException = class external 'javax.xml.bind' name 'MarshalException' (JXBJAXBException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
  end;

  JXBPropertyException = class external 'javax.xml.bind' name 'PropertyException' (JXBJAXBException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLObject); overload;
  end;

  JXBUnmarshalException = class external 'javax.xml.bind' name 'UnmarshalException' (JXBJAXBException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
  end;

  JXBValidationException = class external 'javax.xml.bind' name 'ValidationException' (JXBJAXBException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
  end;

  JXTTransformerConfigurationException = class external 'javax.xml.transform' name 'TransformerConfigurationException' (JXTTransformerException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JXTSourceLocator); overload;
    constructor create(para1: JLString; para2: JXTSourceLocator; para3: JLThrowable); overload;
  end;

  JXXXPathExpressionException = class external 'javax.xml.xpath' name 'XPathExpressionException' (JXXXPathException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JXXXPathFactoryConfigurationException = class external 'javax.xml.xpath' name 'XPathFactoryConfigurationException' (JXXXPathException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  OXSSAXNotRecognizedException = class external 'org.xml.sax' name 'SAXNotRecognizedException' (OXSSAXException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OXSSAXNotSupportedException = class external 'org.xml.sax' name 'SAXNotSupportedException' (OXSSAXException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OXSSAXParseException = class external 'org.xml.sax' name 'SAXParseException' (OXSSAXException)
  public
    constructor create(para1: JLString; para2: OXSLocator); overload;
    constructor create(para1: JLString; para2: OXSLocator; para3: JLException); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLString; para4: jint; para5: jint); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLString; para4: jint; para5: jint; para6: JLException); overload;
    function getPublicId(): JLString; overload; virtual;
    function getSystemId(): JLString; overload; virtual;
    function getLineNumber(): jint; overload; virtual;
    function getColumnNumber(): jint; overload; virtual;
  end;

  JSKeyStroke = class external 'javax.swing' name 'KeyStroke' (JAAWTKeyStroke)
  public
    class function getKeyStroke(para1: jchar): JSKeyStroke; static; overload;
    class function getKeyStroke(para1: jchar; para2: jboolean): JSKeyStroke; static; overload;
    class function getKeyStroke(para1: JLCharacter; para2: jint): JSKeyStroke; static; overload;
    class function getKeyStroke(para1: jint; para2: jint; para3: jboolean): JSKeyStroke; static; overload;
    class function getKeyStroke(para1: jint; para2: jint): JSKeyStroke; static; overload;
    class function getKeyStrokeForEvent(para1: JAEKeyEvent): JSKeyStroke; static; overload;
    class function getKeyStroke(para1: JLString): JSKeyStroke; static; overload;
  end;

  JAMenuBar = class external 'java.awt' name 'MenuBar' (JAMenuComponent, JAMenuContainer, JAAccessible)
  public
    type
      InnerAccessibleAWTMenuBar = class;
      Arr1InnerAccessibleAWTMenuBar = array of InnerAccessibleAWTMenuBar;
      Arr2InnerAccessibleAWTMenuBar = array of Arr1InnerAccessibleAWTMenuBar;
      Arr3InnerAccessibleAWTMenuBar = array of Arr2InnerAccessibleAWTMenuBar;
      InnerAccessibleAWTMenuBar = class external 'java.awt' name 'AccessibleAWTMenuBar' 
      end;

  public
    constructor create(); overload;  // throws java.awt.HeadlessException
    procedure addNotify(); overload; virtual;
    procedure removeNotify(); overload; virtual;
    function getHelpMenu(): JAMenu; overload; virtual;
    procedure setHelpMenu(para1: JAMenu); overload; virtual;
    function add(para1: JAMenu): JAMenu; overload; virtual;
    procedure remove(para1: jint); overload; virtual;
    procedure remove(para1: JAMenuComponent); overload; virtual;
    function getMenuCount(): jint; overload; virtual;
    function countMenus(): jint; overload; virtual;
    function getMenu(para1: jint): JAMenu; overload; virtual;
    function shortcuts(): JUEnumeration; overload; virtual;
    function getShortcutMenuItem(para1: JAMenuShortcut): JAMenuItem; overload; virtual;
    procedure deleteShortcut(para1: JAMenuShortcut); overload; virtual;
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JAMenuItem = class external 'java.awt' name 'MenuItem' (JAMenuComponent, JAAccessible)
  public
    type
      InnerAccessibleAWTMenuItem = class;
      Arr1InnerAccessibleAWTMenuItem = array of InnerAccessibleAWTMenuItem;
      Arr2InnerAccessibleAWTMenuItem = array of Arr1InnerAccessibleAWTMenuItem;
      Arr3InnerAccessibleAWTMenuItem = array of Arr2InnerAccessibleAWTMenuItem;
      InnerAccessibleAWTMenuItem = class external 'java.awt' name 'AccessibleAWTMenuItem' 
      end;

  public
    constructor create(); overload;  // throws java.awt.HeadlessException
    constructor create(para1: JLString); overload;  // throws java.awt.HeadlessException
    constructor create(para1: JLString; para2: JAMenuShortcut); overload;  // throws java.awt.HeadlessException
    procedure addNotify(); overload; virtual;
    function getLabel(): JLString; overload; virtual;
    procedure setLabel(para1: JLString); overload; virtual;
    function isEnabled(): jboolean; overload; virtual;
    procedure setEnabled(para1: jboolean); overload; virtual;
    procedure enable(); overload; virtual;
    procedure enable(para1: jboolean); overload; virtual;
    procedure disable(); overload; virtual;
    function getShortcut(): JAMenuShortcut; overload; virtual;
    procedure setShortcut(para1: JAMenuShortcut); overload; virtual;
    procedure deleteShortcut(); overload; virtual;
  strict protected
    procedure enableEvents(para1: jlong); overload; virtual; final;
    procedure disableEvents(para1: jlong); overload; virtual; final;
  public
    procedure setActionCommand(para1: JLString); overload; virtual;
    function getActionCommand(): JLString; overload; virtual;
    procedure addActionListener(para1: JAEActionListener); overload; virtual;
    procedure removeActionListener(para1: JAEActionListener); overload; virtual;
    function getActionListeners(): Arr1JAEActionListener; overload; virtual;
    function getListeners(para1: JLClass): Arr1JUEventListener; overload; virtual;
  strict protected
    procedure processEvent(para1: JAAWTEvent); overload; virtual;
    procedure processActionEvent(para1: JAEActionEvent); overload; virtual;
  public
    function paramString(): JLString; overload; virtual;
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JACICC_ColorSpace = class external 'java.awt.color' name 'ICC_ColorSpace' (JACColorSpace)
  public
    constructor create(para1: JACICC_Profile); overload;
    function getProfile(): JACICC_Profile; overload; virtual;
    function toRGB(para1: Arr1jfloat): Arr1jfloat; overload; virtual;
    function toRGB(var para1: array of jfloat): Arr1jfloat; overload; virtual;
    function fromRGB(para1: Arr1jfloat): Arr1jfloat; overload; virtual;
    function fromRGB(var para1: array of jfloat): Arr1jfloat; overload; virtual;
    function toCIEXYZ(para1: Arr1jfloat): Arr1jfloat; overload; virtual;
    function toCIEXYZ(var para1: array of jfloat): Arr1jfloat; overload; virtual;
    function fromCIEXYZ(para1: Arr1jfloat): Arr1jfloat; overload; virtual;
    function fromCIEXYZ(var para1: array of jfloat): Arr1jfloat; overload; virtual;
    function getMinValue(para1: jint): jfloat; overload; virtual;
    function getMaxValue(para1: jint): jfloat; overload; virtual;
  end;

  JACICC_ProfileGray = class external 'java.awt.color' name 'ICC_ProfileGray' (JACICC_Profile)
  public
    function getMediaWhitePoint(): Arr1jfloat; overload; virtual;
    function getGamma(): jfloat; overload; virtual;
    function getTRC(): Arr1jshort; overload; virtual;
  end;

  JACICC_ProfileRGB = class external 'java.awt.color' name 'ICC_ProfileRGB' (JACICC_Profile)
  public
    const
      REDCOMPONENT = 0;
      GREENCOMPONENT = 1;
      BLUECOMPONENT = 2;
  public
    function getMediaWhitePoint(): Arr1jfloat; overload; virtual;
    function getMatrix(): Arr2jfloat; overload; virtual;
    function getGamma(para1: jint): jfloat; overload; virtual;
    function getTRC(para1: jint): Arr1jshort; overload; virtual;
  end;

  JSESwingPropertyChangeSupport = class sealed external 'javax.swing.event' name 'SwingPropertyChangeSupport' (JBPropertyChangeSupport)
  public
    constructor create(para1: JLObject); overload;
    constructor create(para1: JLObject; para2: jboolean); overload;
    procedure firePropertyChange(para1: JBPropertyChangeEvent); overload; virtual;
    function isNotifyOnEDT(): jboolean; overload; virtual; final;
  end;

  JADDataFlavor = class external 'java.awt.datatransfer' name 'DataFlavor' (JLObject, JIExternalizable, JLCloneable)
  public
    type
      InnerTextFlavorComparator = class;
      Arr1InnerTextFlavorComparator = array of InnerTextFlavorComparator;
      Arr2InnerTextFlavorComparator = array of Arr1InnerTextFlavorComparator;
      Arr3InnerTextFlavorComparator = array of Arr2InnerTextFlavorComparator;
      InnerTextFlavorComparator = class external 'java.awt.datatransfer' name 'TextFlavorComparator' 
      end;

  public
    final class var
      fstringFlavor: JADDataFlavor; external name 'stringFlavor';
      fimageFlavor: JADDataFlavor; external name 'imageFlavor';
      fplainTextFlavor: JADDataFlavor deprecated; external name 'plainTextFlavor';
  public
    const
      javaSerializedObjectMimeType = 'application/x-java-serialized-object';
  public
    final class var
      fjavaFileListFlavor: JADDataFlavor; external name 'javaFileListFlavor';
  public
    const
      javaJVMLocalObjectMimeType = 'application/x-java-jvm-local-objectref';
      javaRemoteObjectMimeType = 'application/x-java-remote-object';
  strict protected
    class function tryToLoadClass(para1: JLString; para2: JLClassLoader): JLClass; static; overload; final;  // throws java.lang.ClassNotFoundException
  public
    constructor create(); overload;
    constructor create(para1: JLClass; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLClassLoader); overload;  // throws java.lang.ClassNotFoundException
    constructor create(para1: JLString); overload;  // throws java.lang.ClassNotFoundException
    function toString(): JLString; overload; virtual;
    class function getTextPlainUnicodeFlavor(): JADDataFlavor; static; overload; final;
    class function selectBestTextFlavor(para1: Arr1JADDataFlavor): JADDataFlavor; static; overload; final;
    class function selectBestTextFlavor(var para1: array of JADDataFlavor): JADDataFlavor; static; overload; final;
    function getReaderForText(para1: JADTransferable): JIReader; overload; virtual;  // throws java.awt.datatransfer.UnsupportedFlavorException, java.io.IOException
    function getMimeType(): JLString; overload; virtual;
    function getRepresentationClass(): JLClass; overload; virtual;
    function getHumanPresentableName(): JLString; overload; virtual;
    function getPrimaryType(): JLString; overload; virtual;
    function getSubType(): JLString; overload; virtual;
    function getParameter(para1: JLString): JLString; overload; virtual;
    procedure setHumanPresentableName(para1: JLString); overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function equals(para1: JADDataFlavor): jboolean; overload; virtual;
    function equals(para1: JLString): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function match(para1: JADDataFlavor): jboolean; overload; virtual;
    function isMimeTypeEqual(para1: JLString): jboolean; overload; virtual;
    function isMimeTypeEqual(para1: JADDataFlavor): jboolean; overload; virtual; final;
    function isMimeTypeSerializedObject(): jboolean; overload; virtual;
    function getDefaultRepresentationClass(): JLClass; overload; virtual; final;
    function getDefaultRepresentationClassAsString(): JLString; overload; virtual; final;
    function isRepresentationClassInputStream(): jboolean; overload; virtual;
    function isRepresentationClassReader(): jboolean; overload; virtual;
    function isRepresentationClassCharBuffer(): jboolean; overload; virtual;
    function isRepresentationClassByteBuffer(): jboolean; overload; virtual;
    function isRepresentationClassSerializable(): jboolean; overload; virtual;
    function isRepresentationClassRemote(): jboolean; overload; virtual;
    function isFlavorSerializedObjectType(): jboolean; overload; virtual;
    function isFlavorRemoteObjectType(): jboolean; overload; virtual;
    function isFlavorJavaFileListType(): jboolean; overload; virtual;
    function isFlavorTextType(): jboolean; overload; virtual;
    procedure writeExternal(para1: JIObjectOutput); overload; virtual;  // throws java.io.IOException
    procedure readExternal(para1: JIObjectInput); overload; virtual;  // throws java.io.IOException, java.lang.ClassNotFoundException
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  strict protected
    function normalizeMimeTypeParameter(para1: JLString; para2: JLString): JLString; overload; virtual;
    function normalizeMimeType(para1: JLString): JLString; overload; virtual;
  end;

  JADMimeType = class external 'java.awt.datatransfer' name 'MimeType' (JLObject, JIExternalizable, JLCloneable)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;  // throws java.awt.datatransfer.MimeTypeParseException
    constructor create(para1: JLString; para2: JLString); overload;  // throws java.awt.datatransfer.MimeTypeParseException
    constructor create(para1: JLString; para2: JLString; para3: JADMimeTypeParameterList); overload;  // throws java.awt.datatransfer.MimeTypeParseException
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getPrimaryType(): JLString; overload; virtual;
    function getSubType(): JLString; overload; virtual;
    function getParameters(): JADMimeTypeParameterList; overload; virtual;
    function getParameter(para1: JLString): JLString; overload; virtual;
    procedure setParameter(para1: JLString; para2: JLString); overload; virtual;
    procedure removeParameter(para1: JLString); overload; virtual;
    function toString(): JLString; overload; virtual;
    function getBaseType(): JLString; overload; virtual;
    function match(para1: JADMimeType): jboolean; overload; virtual;
    function match(para1: JLString): jboolean; overload; virtual;  // throws java.awt.datatransfer.MimeTypeParseException
    procedure writeExternal(para1: JIObjectOutput); overload; virtual;  // throws java.io.IOException
    procedure readExternal(para1: JIObjectInput); overload; virtual;  // throws java.io.IOException, java.lang.ClassNotFoundException
    function clone(): JLObject; overload; virtual;
  end;

  JRSRemoteRef = interface external 'java.rmi.server' name 'RemoteRef' (JIExternalizable)
    const
      serialVersionUID = jlong(3632638527362204081);
      packagePrefix = 'sun.rmi.server';
    function invoke(para1: JRRemote; para2: JLRMethod; para3: Arr1JLObject; para4: jlong): JLObject; overload;  // throws java.lang.Exception
    function invoke(para1: JRRemote; para2: JLRMethod; var para3: array of JLObject; para4: jlong): JLObject; overload;  // throws java.lang.Exception
    function newCall(para1: JRSRemoteObject; para2: Arr1JRSOperation; para3: jint; para4: jlong): JRSRemoteCall; overload;  // throws java.rmi.RemoteException
    function newCall(para1: JRSRemoteObject; var para2: array of JRSOperation; para3: jint; para4: jlong): JRSRemoteCall; overload;  // throws java.rmi.RemoteException
    procedure invoke(para1: JRSRemoteCall); overload;  // throws java.lang.Exception
    procedure done(para1: JRSRemoteCall); overload;  // throws java.rmi.RemoteException
    function getRefClass(para1: JIObjectOutput): JLString; overload;
    function remoteHashCode(): jint; overload;
    function remoteEquals(para1: JRSRemoteRef): jboolean; overload;
    function remoteToString(): JLString; overload;
  end;

  JAMimeType = class external 'javax.activation' name 'MimeType' (JLObject, JIExternalizable)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;  // throws javax.activation.MimeTypeParseException
    constructor create(para1: JLString; para2: JLString); overload;  // throws javax.activation.MimeTypeParseException
    function getPrimaryType(): JLString; overload; virtual;
    procedure setPrimaryType(para1: JLString); overload; virtual;  // throws javax.activation.MimeTypeParseException
    function getSubType(): JLString; overload; virtual;
    procedure setSubType(para1: JLString); overload; virtual;  // throws javax.activation.MimeTypeParseException
    function getParameters(): JAMimeTypeParameterList; overload; virtual;
    function getParameter(para1: JLString): JLString; overload; virtual;
    procedure setParameter(para1: JLString; para2: JLString); overload; virtual;
    procedure removeParameter(para1: JLString); overload; virtual;
    function toString(): JLString; overload; virtual;
    function getBaseType(): JLString; overload; virtual;
    function match(para1: JAMimeType): jboolean; overload; virtual;
    function match(para1: JLString): jboolean; overload; virtual;  // throws javax.activation.MimeTypeParseException
    procedure writeExternal(para1: JIObjectOutput); overload; virtual;  // throws java.io.IOException
    procedure readExternal(para1: JIObjectInput); overload; virtual;  // throws java.io.IOException, java.lang.ClassNotFoundException
  end;

  JNInet4Address = class sealed external 'java.net' name 'Inet4Address' (JNInetAddress)
  public
    function isMulticastAddress(): jboolean; overload; virtual;
    function isAnyLocalAddress(): jboolean; overload; virtual;
    function isLoopbackAddress(): jboolean; overload; virtual;
    function isLinkLocalAddress(): jboolean; overload; virtual;
    function isSiteLocalAddress(): jboolean; overload; virtual;
    function isMCGlobal(): jboolean; overload; virtual;
    function isMCNodeLocal(): jboolean; overload; virtual;
    function isMCLinkLocal(): jboolean; overload; virtual;
    function isMCSiteLocal(): jboolean; overload; virtual;
    function isMCOrgLocal(): jboolean; overload; virtual;
    function getAddress(): Arr1jbyte; overload; virtual;
    function getHostAddress(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JNInet6Address = class sealed external 'java.net' name 'Inet6Address' (JNInetAddress)
  public
    class function getByAddress(para1: JLString; para2: Arr1jbyte; para3: JNNetworkInterface): JNInet6Address; static; overload;  // throws java.net.UnknownHostException
    class function getByAddress(para1: JLString; var para2: array of jbyte; para3: JNNetworkInterface): JNInet6Address; static; overload;  // throws java.net.UnknownHostException
    class function getByAddress(para1: JLString; para2: Arr1jbyte; para3: jint): JNInet6Address; static; overload;  // throws java.net.UnknownHostException
    class function getByAddress(para1: JLString; var para2: array of jbyte; para3: jint): JNInet6Address; static; overload;  // throws java.net.UnknownHostException
    function isMulticastAddress(): jboolean; overload; virtual;
    function isAnyLocalAddress(): jboolean; overload; virtual;
    function isLoopbackAddress(): jboolean; overload; virtual;
    function isLinkLocalAddress(): jboolean; overload; virtual;
    function isSiteLocalAddress(): jboolean; overload; virtual;
    function isMCGlobal(): jboolean; overload; virtual;
    function isMCNodeLocal(): jboolean; overload; virtual;
    function isMCLinkLocal(): jboolean; overload; virtual;
    function isMCSiteLocal(): jboolean; overload; virtual;
    function isMCOrgLocal(): jboolean; overload; virtual;
    function getAddress(): Arr1jbyte; overload; virtual;
    function getScopeId(): jint; overload; virtual;
    function getScopedInterface(): JNNetworkInterface; overload; virtual;
    function getHostAddress(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function isIPv4CompatibleAddress(): jboolean; overload; virtual;
  end;

  JNInetSocketAddress = class external 'java.net' name 'InetSocketAddress' (JNSocketAddress)
  public
    constructor create(para1: jint); overload;
    constructor create(para1: JNInetAddress; para2: jint); overload;
    constructor create(para1: JLString; para2: jint); overload;
    class function createUnresolved(para1: JLString; para2: jint): JNInetSocketAddress; static; overload;
    function getPort(): jint; overload; virtual; final;
    function getAddress(): JNInetAddress; overload; virtual; final;
    function getHostName(): JLString; overload; virtual; final;
    function isUnresolved(): jboolean; overload; virtual; final;
    function toString(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual; final;
    function hashCode(): jint; overload; virtual; final;
  end;

  JSPrivateKey = interface external 'java.security' name 'PrivateKey' (JSKey)
    const
      serialVersionUID = jlong(6034044314589513430);
  end;

  JSPublicKey = interface external 'java.security' name 'PublicKey' (JSKey)
    const
      serialVersionUID = jlong(7187392471159151072);
  end;

  JCSecretKey = interface external 'javax.crypto' name 'SecretKey' (JSKey)
    const
      serialVersionUID = jlong(-4795878709595146952);
  end;

  JIFilePermissionCollection = class sealed external 'java.io' name 'FilePermissionCollection' (JSPermissionCollection, JISerializable)
  public
    constructor create(); overload;
    procedure add(para1: JSPermission); overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
    function elements(): JUEnumeration; overload; virtual;
  end;

  JNSocketPermissionCollection = class sealed external 'java.net' name 'SocketPermissionCollection' (JSPermissionCollection, JISerializable)
  public
    constructor create(); overload;
    procedure add(para1: JSPermission); overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
    function elements(): JUEnumeration; overload; virtual;
  end;

  JSAllPermissionCollection = class sealed external 'java.security' name 'AllPermissionCollection' (JSPermissionCollection, JISerializable)
  public
    constructor create(); overload;
    procedure add(para1: JSPermission); overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
    function elements(): JUEnumeration; overload; virtual;
  end;

  JSBasicPermissionCollection = class sealed external 'java.security' name 'BasicPermissionCollection' (JSPermissionCollection, JISerializable)
  public
    constructor create(); overload;
    procedure add(para1: JSPermission); overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
    function elements(): JUEnumeration; overload; virtual;
  end;

  JSPermissions = class sealed external 'java.security' name 'Permissions' (JSPermissionCollection, JISerializable)
  public
    constructor create(); overload;
    procedure add(para1: JSPermission); overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
    function elements(): JUEnumeration; overload; virtual;
  end;

  JSPermissionsHash = class sealed external 'java.security' name 'PermissionsHash' (JSPermissionCollection, JISerializable)
  public
    procedure add(para1: JSPermission); overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
    function elements(): JUEnumeration; overload; virtual;
  end;

  JSUnresolvedPermissionCollection = class sealed external 'java.security' name 'UnresolvedPermissionCollection' (JSPermissionCollection, JISerializable)
  public
    constructor create(); overload;
    procedure add(para1: JSPermission); overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
    function elements(): JUEnumeration; overload; virtual;
  end;

  JUPropertyPermissionCollection = class sealed external 'java.util' name 'PropertyPermissionCollection' (JSPermissionCollection, JISerializable)
  public
    constructor create(); overload;
    procedure add(para1: JSPermission); overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
    function elements(): JUEnumeration; overload; virtual;
  end;

  JCSunJCE_d = class sealed external 'javax.crypto' name 'SunJCE_d' (JSPermissionCollection, JISerializable)
  public
    procedure add(para1: JSPermission); overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
    function elements(): JUEnumeration; overload; virtual;
  end;

  JCSunJCE_g = class sealed external 'javax.crypto' name 'SunJCE_g' (JSPermissionCollection, JISerializable)
  public
    procedure add(para1: JSPermission); overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
    function elements(): JUEnumeration; overload; virtual;
  end;

  JCSunJCE_l = class sealed external 'javax.crypto' name 'SunJCE_l' (JSPermissionCollection, JISerializable)
  public
    procedure add(para1: JSPermission); overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
    function elements(): JUEnumeration; overload; virtual;
  end;

  JMMBeanServerPermissionCollection = class external 'javax.management' name 'MBeanServerPermissionCollection' (JSPermissionCollection)
  public
    procedure add(para1: JSPermission); overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
    function elements(): JUEnumeration; overload; virtual;
  end;

  JSAKKrbDelegationPermissionCollection = class sealed external 'javax.security.auth.kerberos' name 'KrbDelegationPermissionCollection' (JSPermissionCollection, JISerializable)
  public
    constructor create(); overload;
    function implies(para1: JSPermission): jboolean; overload; virtual;
    procedure add(para1: JSPermission); overload; virtual;
    function elements(): JUEnumeration; overload; virtual;
  end;

  JSAKKrbServicePermissionCollection = class sealed external 'javax.security.auth.kerberos' name 'KrbServicePermissionCollection' (JSPermissionCollection, JISerializable)
  public
    constructor create(); overload;
    function implies(para1: JSPermission): jboolean; overload; virtual;
    procedure add(para1: JSPermission); overload; virtual;
    function elements(): JUEnumeration; overload; virtual;
  end;

  JSCX509Certificate = class abstract external 'java.security.cert' name 'X509Certificate' (JSCCertificate, JSCX509Extension)
  strict protected
    constructor create(); overload;
  public
    procedure checkValidity(); overload; virtual; abstract;  // throws java.security.cert.CertificateExpiredException, java.security.cert.CertificateNotYetValidException
    procedure checkValidity(para1: JUDate); overload; virtual; abstract;  // throws java.security.cert.CertificateExpiredException, java.security.cert.CertificateNotYetValidException
    function getVersion(): jint; overload; virtual; abstract;
    function getSerialNumber(): JMBigInteger; overload; virtual; abstract;
    function getIssuerDN(): JSPrincipal; overload; virtual; abstract;
    function getIssuerX500Principal(): JSAXX500Principal; overload; virtual;
    function getSubjectDN(): JSPrincipal; overload; virtual; abstract;
    function getSubjectX500Principal(): JSAXX500Principal; overload; virtual;
    function getNotBefore(): JUDate; overload; virtual; abstract;
    function getNotAfter(): JUDate; overload; virtual; abstract;
    function getTBSCertificate(): Arr1jbyte; overload; virtual; abstract;  // throws java.security.cert.CertificateEncodingException
    function getSignature(): Arr1jbyte; overload; virtual; abstract;
    function getSigAlgName(): JLString; overload; virtual; abstract;
    function getSigAlgOID(): JLString; overload; virtual; abstract;
    function getSigAlgParams(): Arr1jbyte; overload; virtual; abstract;
    function getIssuerUniqueID(): Arr1jboolean; overload; virtual; abstract;
    function getSubjectUniqueID(): Arr1jboolean; overload; virtual; abstract;
    function getKeyUsage(): Arr1jboolean; overload; virtual; abstract;
    function getExtendedKeyUsage(): JUList; overload; virtual;  // throws java.security.cert.CertificateParsingException
    function getBasicConstraints(): jint; overload; virtual; abstract;
    function getSubjectAlternativeNames(): JUCollection; overload; virtual;  // throws java.security.cert.CertificateParsingException
    function getIssuerAlternativeNames(): JUCollection; overload; virtual;  // throws java.security.cert.CertificateParsingException
  end;

  JAAWTEvent = class abstract external 'java.awt' name 'AWTEvent' (JUEventObject)
  strict protected
    var
      fid: jint; external name 'id';
      fconsumed: jboolean; external name 'consumed';
  public
    const
      COMPONENT_EVENT_MASK = jlong(1);
      CONTAINER_EVENT_MASK = jlong(2);
      FOCUS_EVENT_MASK = jlong(4);
      KEY_EVENT_MASK = jlong(8);
      MOUSE_EVENT_MASK = jlong(16);
      MOUSE_MOTION_EVENT_MASK = jlong(32);
      WINDOW_EVENT_MASK = jlong(64);
      ACTION_EVENT_MASK = jlong(128);
      ADJUSTMENT_EVENT_MASK = jlong(256);
      ITEM_EVENT_MASK = jlong(512);
      TEXT_EVENT_MASK = jlong(1024);
      INPUT_METHOD_EVENT_MASK = jlong(2048);
      PAINT_EVENT_MASK = jlong(8192);
      INVOCATION_EVENT_MASK = jlong(16384);
      HIERARCHY_EVENT_MASK = jlong(32768);
      HIERARCHY_BOUNDS_EVENT_MASK = jlong(65536);
      MOUSE_WHEEL_EVENT_MASK = jlong(131072);
      WINDOW_STATE_EVENT_MASK = jlong(262144);
      WINDOW_FOCUS_EVENT_MASK = jlong(524288);
      RESERVED_ID_MAX = 1999;
  public
    constructor create(para1: JAEvent); overload;
    constructor create(para1: JLObject; para2: jint); overload;
    procedure setSource(para1: JLObject); overload; virtual;
    function getID(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function paramString(): JLString; overload; virtual;
  strict protected
    procedure consume(); overload; virtual;
    function isConsumed(): jboolean; overload; virtual;
  end;

  JADFlavorEvent = class external 'java.awt.datatransfer' name 'FlavorEvent' (JUEventObject)
  public
    constructor create(para1: JADClipboard); overload;
  end;

  JADDragGestureEvent = class external 'java.awt.dnd' name 'DragGestureEvent' (JUEventObject)
  public
    constructor create(para1: JADDragGestureRecognizer; para2: jint; para3: JAPoint; para4: JUList); overload;
    function getSourceAsDragGestureRecognizer(): JADDragGestureRecognizer; overload; virtual;
    function getComponent(): JAComponent; overload; virtual;
    function getDragSource(): JADDragSource; overload; virtual;
    function getDragOrigin(): JAPoint; overload; virtual;
    function iterator(): JUIterator; overload; virtual;
    function toArray(): Arr1JLObject; overload; virtual;
    function toArray(para1: Arr1JLObject): Arr1JLObject; overload; virtual;
    function toArray(var para1: array of JLObject): Arr1JLObject; overload; virtual;
    function getDragAction(): jint; overload; virtual;
    function getTriggerEvent(): JAEInputEvent; overload; virtual;
    procedure startDrag(para1: JACursor; para2: JADTransferable); overload; virtual;  // throws java.awt.dnd.InvalidDnDOperationException
    procedure startDrag(para1: JACursor; para2: JADTransferable; para3: JADDragSourceListener); overload; virtual;  // throws java.awt.dnd.InvalidDnDOperationException
    procedure startDrag(para1: JACursor; para2: JAImage; para3: JAPoint; para4: JADTransferable; para5: JADDragSourceListener); overload; virtual;  // throws java.awt.dnd.InvalidDnDOperationException
  end;

  JADDragSourceEvent = class external 'java.awt.dnd' name 'DragSourceEvent' (JUEventObject)
  public
    constructor create(para1: JADDragSourceContext); overload;
    constructor create(para1: JADDragSourceContext; para2: jint; para3: jint); overload;
    function getDragSourceContext(): JADDragSourceContext; overload; virtual;
    function getLocation(): JAPoint; overload; virtual;
    function getX(): jint; overload; virtual;
    function getY(): jint; overload; virtual;
  end;

  JADDropTargetEvent = class external 'java.awt.dnd' name 'DropTargetEvent' (JUEventObject)
  strict protected
    var
      fcontext: JADDropTargetContext; external name 'context';
  public
    constructor create(para1: JADDropTargetContext); overload;
    function getDropTargetContext(): JADDropTargetContext; overload; virtual;
  end;

  JBPropertyChangeEvent = class external 'java.beans' name 'PropertyChangeEvent' (JUEventObject)
  public
    constructor create(para1: JLObject; para2: JLString; para3: JLObject; para4: JLObject); overload;
    function getPropertyName(): JLString; overload; virtual;
    function getNewValue(): JLObject; overload; virtual;
    function getOldValue(): JLObject; overload; virtual;
    procedure setPropagationId(para1: JLObject); overload; virtual;
    function getPropagationId(): JLObject; overload; virtual;
  end;

  JBBBeanContextEvent = class abstract external 'java.beans.beancontext' name 'BeanContextEvent' (JUEventObject)
  strict protected
    var
      fpropagatedFrom: JBBBeanContext; external name 'propagatedFrom';
  strict protected
    constructor create(para1: JBBBeanContext); overload;
  public
    function getBeanContext(): JBBBeanContext; overload; virtual;
    procedure setPropagatedFrom(para1: JBBBeanContext); overload; virtual;
    function getPropagatedFrom(): JBBBeanContext; overload; virtual;
    function isPropagated(): jboolean; overload; virtual;
  end;

  JUPNodeChangeEvent = class external 'java.util.prefs' name 'NodeChangeEvent' (JUEventObject)
  public
    constructor create(para1: JUPPreferences; para2: JUPPreferences); overload;
    function getParent(): JUPPreferences; overload; virtual;
    function getChild(): JUPPreferences; overload; virtual;
  end;

  JUPPreferenceChangeEvent = class external 'java.util.prefs' name 'PreferenceChangeEvent' (JUEventObject)
  public
    constructor create(para1: JUPPreferences; para2: JLString; para3: JLString); overload;
    function getNode(): JUPPreferences; overload; virtual;
    function getKey(): JLString; overload; virtual;
    function getNewValue(): JLString; overload; virtual;
  end;

  JMNotification = class external 'javax.management' name 'Notification' (JUEventObject)
  strict protected
    var
      fsource: JLObject; external name 'source';
  public
    constructor create(para1: JLString; para2: JLObject; para3: jlong); overload;
    constructor create(para1: JLString; para2: JLObject; para3: jlong; para4: JLString); overload;
    constructor create(para1: JLString; para2: JLObject; para3: jlong; para4: jlong); overload;
    constructor create(para1: JLString; para2: JLObject; para3: jlong; para4: jlong; para5: JLString); overload;
    procedure setSource(para1: JLObject); overload; virtual;
    function getSequenceNumber(): jlong; overload; virtual;
    procedure setSequenceNumber(para1: jlong); overload; virtual;
    function getType(): JLString; overload; virtual;
    function getTimeStamp(): jlong; overload; virtual;
    procedure setTimeStamp(para1: jlong); overload; virtual;
    function getMessage(): JLString; overload; virtual;
    function getUserData(): JLObject; overload; virtual;
    procedure setUserData(para1: JLObject); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JNENamingEvent = class external 'javax.naming.event' name 'NamingEvent' (JUEventObject)
  public
    const
      OBJECT_ADDED = 0;
      OBJECT_REMOVED = 1;
      OBJECT_RENAMED = 2;
      OBJECT_CHANGED = 3;
  strict protected
    var
      fchangeInfo: JLObject; external name 'changeInfo';
      ftype: jint; external name 'type';
      foldBinding: JNBinding; external name 'oldBinding';
      fnewBinding: JNBinding; external name 'newBinding';
  public
    constructor create(para1: JNEEventContext; para2: jint; para3: JNBinding; para4: JNBinding; para5: JLObject); overload;
    function getType(): jint; overload; virtual;
    function getEventContext(): JNEEventContext; overload; virtual;
    function getOldBinding(): JNBinding; overload; virtual;
    function getNewBinding(): JNBinding; overload; virtual;
    function getChangeInfo(): JLObject; overload; virtual;
    procedure dispatch(para1: JNENamingListener); overload; virtual;
  end;

  JNENamingExceptionEvent = class external 'javax.naming.event' name 'NamingExceptionEvent' (JUEventObject)
  public
    constructor create(para1: JNEEventContext; para2: JNNamingException); overload;
    function getException(): JNNamingException; overload; virtual;
    function getEventContext(): JNEEventContext; overload; virtual;
    procedure dispatch(para1: JNENamingListener); overload; virtual;
  end;

  JNLUnsolicitedNotificationEvent = class external 'javax.naming.ldap' name 'UnsolicitedNotificationEvent' (JUEventObject)
  public
    constructor create(para1: JLObject; para2: JNLUnsolicitedNotification); overload;
    function getNotification(): JNLUnsolicitedNotification; overload; virtual;
    procedure dispatch(para1: JNLUnsolicitedNotificationListener); overload; virtual;
  end;

  JNSHandshakeCompletedEvent = class external 'javax.net.ssl' name 'HandshakeCompletedEvent' (JUEventObject)
  public
    constructor create(para1: JNSSSLSocket; para2: JNSSSLSession); overload;
    function getSession(): JNSSSLSession; overload; virtual;
    function getCipherSuite(): JLString; overload; virtual;
    function getLocalCertificates(): Arr1JSCCertificate; overload; virtual;
    function getPeerCertificates(): Arr1JSCCertificate; overload; virtual;  // throws javax.net.ssl.SSLPeerUnverifiedException
    function getPeerCertificateChain(): Arr1JxSCX509Certificate; overload; virtual;  // throws javax.net.ssl.SSLPeerUnverifiedException
    function getPeerPrincipal(): JSPrincipal; overload; virtual;  // throws javax.net.ssl.SSLPeerUnverifiedException
    function getLocalPrincipal(): JSPrincipal; overload; virtual;
    function getSocket(): JNSSSLSocket; overload; virtual;
  end;

  JNSSSLSessionBindingEvent = class external 'javax.net.ssl' name 'SSLSessionBindingEvent' (JUEventObject)
  public
    constructor create(para1: JNSSSLSession; para2: JLString); overload;
    function getName(): JLString; overload; virtual;
    function getSession(): JNSSSLSession; overload; virtual;
  end;

  JPEPrintEvent = class external 'javax.print.event' name 'PrintEvent' (JUEventObject)
  public
    constructor create(para1: JLObject); overload;
    function toString(): JLString; overload; virtual;
  end;

  JSSLineEvent = class external 'javax.sound.sampled' name 'LineEvent' (JUEventObject)
  public
    type
      InnerType = class;
      Arr1InnerType = array of InnerType;
      Arr2InnerType = array of Arr1InnerType;
      Arr3InnerType = array of Arr2InnerType;
      InnerType = class external 'javax.sound.sampled' name 'Type' (JLObject)
      public
        final class var
          fOPEN: JSSLineEvent.InnerType; external name 'OPEN';
          fCLOSE: JSSLineEvent.InnerType; external name 'CLOSE';
          fSTART: JSSLineEvent.InnerType; external name 'START';
          fSTOP: JSSLineEvent.InnerType; external name 'STOP';
      strict protected
        constructor create(para1: JLString); overload;
      public
        function equals(para1: JLObject): jboolean; overload; virtual; final;
        function hashCode(): jint; overload; virtual; final;
        function toString(): JLString; overload; virtual;
      end;

  public
    constructor create(para1: JSSLine; para2: JSSLineEvent.InnerType; para3: jlong); overload;
    function getLine(): JSSLine; overload; virtual; final;
    function getType(): JSSLineEvent.InnerType; overload; virtual; final;
    function getFramePosition(): jlong; overload; virtual; final;
    function toString(): JLString; overload; virtual;
  end;

  JSConnectionEvent = class external 'javax.sql' name 'ConnectionEvent' (JUEventObject)
  public
    constructor create(para1: JSPooledConnection); overload;
    constructor create(para1: JSPooledConnection; para2: JSSQLException); overload;
    function getSQLException(): JSSQLException; overload; virtual;
  end;

  JSRowSetEvent = class external 'javax.sql' name 'RowSetEvent' (JUEventObject)
  public
    constructor create(para1: JSRowSet); overload;
  end;

  JSStatementEvent = class external 'javax.sql' name 'StatementEvent' (JUEventObject)
  public
    constructor create(para1: JSPooledConnection; para2: JSPreparedStatement); overload;
    constructor create(para1: JSPooledConnection; para2: JSPreparedStatement; para3: JSSQLException); overload;
    function getStatement(): JSPreparedStatement; overload; virtual;
    function getSQLException(): JSSQLException; overload; virtual;
  end;

  JSECaretEvent = class abstract external 'javax.swing.event' name 'CaretEvent' (JUEventObject)
  public
    constructor create(para1: JLObject); overload;
    function getDot(): jint; overload; virtual; abstract;
    function getMark(): jint; overload; virtual; abstract;
  end;

  JSEChangeEvent = class external 'javax.swing.event' name 'ChangeEvent' (JUEventObject)
  public
    constructor create(para1: JLObject); overload;
  end;

  JSEHyperlinkEvent = class external 'javax.swing.event' name 'HyperlinkEvent' (JUEventObject)
  public
    type
      InnerEventType = class;
      Arr1InnerEventType = array of InnerEventType;
      Arr2InnerEventType = array of Arr1InnerEventType;
      Arr3InnerEventType = array of Arr2InnerEventType;
      InnerEventType = class sealed external 'javax.swing.event' name 'EventType' (JLObject)
      public
        final class var
          fENTERED: JSEHyperlinkEvent.InnerEventType; external name 'ENTERED';
          fEXITED: JSEHyperlinkEvent.InnerEventType; external name 'EXITED';
          fACTIVATED: JSEHyperlinkEvent.InnerEventType; external name 'ACTIVATED';
      public
        function toString(): JLString; overload; virtual;
      end;

  public
    constructor create(para1: JLObject; para2: JSEHyperlinkEvent.InnerEventType; para3: JNURL); overload;
    constructor create(para1: JLObject; para2: JSEHyperlinkEvent.InnerEventType; para3: JNURL; para4: JLString); overload;
    constructor create(para1: JLObject; para2: JSEHyperlinkEvent.InnerEventType; para3: JNURL; para4: JLString; para5: JSTElement); overload;
    function getEventType(): JSEHyperlinkEvent.InnerEventType; overload; virtual;
    function getDescription(): JLString; overload; virtual;
    function getURL(): JNURL; overload; virtual;
    function getSourceElement(): JSTElement; overload; virtual;
  end;

  JSEListDataEvent = class external 'javax.swing.event' name 'ListDataEvent' (JUEventObject)
  public
    const
      CONTENTS_CHANGED = 0;
      INTERVAL_ADDED = 1;
      INTERVAL_REMOVED = 2;
  public
    function getType(): jint; overload; virtual;
    function getIndex0(): jint; overload; virtual;
    function getIndex1(): jint; overload; virtual;
    constructor create(para1: JLObject; para2: jint; para3: jint; para4: jint); overload;
    function toString(): JLString; overload; virtual;
  end;

  JSEListSelectionEvent = class external 'javax.swing.event' name 'ListSelectionEvent' (JUEventObject)
  public
    constructor create(para1: JLObject; para2: jint; para3: jint; para4: jboolean); overload;
    function getFirstIndex(): jint; overload; virtual;
    function getLastIndex(): jint; overload; virtual;
    function getValueIsAdjusting(): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSEMenuEvent = class external 'javax.swing.event' name 'MenuEvent' (JUEventObject)
  public
    constructor create(para1: JLObject); overload;
  end;

  JSEPopupMenuEvent = class external 'javax.swing.event' name 'PopupMenuEvent' (JUEventObject)
  public
    constructor create(para1: JLObject); overload;
  end;

  JSERowSorterEvent = class external 'javax.swing.event' name 'RowSorterEvent' (JUEventObject)
  public
    type
      InnerType = class;
      Arr1InnerType = array of InnerType;
      Arr2InnerType = array of Arr1InnerType;
      Arr3InnerType = array of Arr2InnerType;
      InnerType = class sealed external 'javax.swing.event' name 'Type' (JLEnum)
      public
        final class var
          fSORT_ORDER_CHANGED: JSERowSorterEvent.InnerType; external name 'SORT_ORDER_CHANGED';
          fSORTED: JSERowSorterEvent.InnerType; external name 'SORTED';
      public
        class function values(): JSERowSorterEvent.Arr1InnerType; static; overload;
        class function valueOf(para1: JLString): JSERowSorterEvent.InnerType; static; overload;
      end;

  public
    constructor create(para1: JSRowSorter); overload;
    constructor create(para1: JSRowSorter; para2: JSERowSorterEvent.InnerType; para3: Arr1jint); overload;
    constructor create(para1: JSRowSorter; para2: JSERowSorterEvent.InnerType; const para3: array of jint); overload;
    function getSource(): JSRowSorter; overload; virtual;
    function getType(): JSERowSorterEvent.InnerType; overload; virtual;
    function convertPreviousRowIndexToModel(para1: jint): jint; overload; virtual;
    function getPreviousRowCount(): jint; overload; virtual;
    function getSource(): JLObject; overload; virtual;
  end;

  JSETableColumnModelEvent = class external 'javax.swing.event' name 'TableColumnModelEvent' (JUEventObject)
  strict protected
    var
      ffromIndex: jint; external name 'fromIndex';
      ftoIndex: jint; external name 'toIndex';
  public
    constructor create(para1: JSTTableColumnModel; para2: jint; para3: jint); overload;
    function getFromIndex(): jint; overload; virtual;
    function getToIndex(): jint; overload; virtual;
  end;

  JSETableModelEvent = class external 'javax.swing.event' name 'TableModelEvent' (JUEventObject)
  public
    const
      INSERT = 1;
      UPDATE = 0;
      DELETE = -1;
      HEADER_ROW = -1;
      ALL_COLUMNS = -1;
  strict protected
    var
      ftype: jint; external name 'type';
      ffirstRow: jint; external name 'firstRow';
      flastRow: jint; external name 'lastRow';
      fcolumn: jint; external name 'column';
  public
    constructor create(para1: JSTTableModel); overload;
    constructor create(para1: JSTTableModel; para2: jint); overload;
    constructor create(para1: JSTTableModel; para2: jint; para3: jint); overload;
    constructor create(para1: JSTTableModel; para2: jint; para3: jint; para4: jint); overload;
    constructor create(para1: JSTTableModel; para2: jint; para3: jint; para4: jint; para5: jint); overload;
    function getFirstRow(): jint; overload; virtual;
    function getLastRow(): jint; overload; virtual;
    function getColumn(): jint; overload; virtual;
    function getType(): jint; overload; virtual;
  end;

  JSETreeExpansionEvent = class external 'javax.swing.event' name 'TreeExpansionEvent' (JUEventObject)
  strict protected
    var
      fpath: JSTTreePath; external name 'path';
  public
    constructor create(para1: JLObject; para2: JSTTreePath); overload;
    function getPath(): JSTTreePath; overload; virtual;
  end;

  JSETreeModelEvent = class external 'javax.swing.event' name 'TreeModelEvent' (JUEventObject)
  strict protected
    var
      fpath: JSTTreePath; external name 'path';
      fchildIndices: Arr1jint; external name 'childIndices';
      fchildren: Arr1JLObject; external name 'children';
  public
    constructor create(para1: JLObject; para2: Arr1JLObject; para3: Arr1jint; para4: Arr1JLObject); overload;
    constructor create(para1: JLObject; const para2: array of JLObject; const para3: array of jint; const para4: array of JLObject); overload;
    constructor create(para1: JLObject; para2: JSTTreePath; para3: Arr1jint; para4: Arr1JLObject); overload;
    constructor create(para1: JLObject; para2: JSTTreePath; const para3: array of jint; const para4: array of JLObject); overload;
    constructor create(para1: JLObject; para2: Arr1JLObject); overload;
    constructor create(para1: JLObject; const para2: array of JLObject); overload;
    constructor create(para1: JLObject; para2: JSTTreePath); overload;
    function getTreePath(): JSTTreePath; overload; virtual;
    function getPath(): Arr1JLObject; overload; virtual;
    function getChildren(): Arr1JLObject; overload; virtual;
    function getChildIndices(): Arr1jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSETreeSelectionEvent = class external 'javax.swing.event' name 'TreeSelectionEvent' (JUEventObject)
  strict protected
    var
      fpaths: Arr1JSTTreePath; external name 'paths';
      fareNew: Arr1jboolean; external name 'areNew';
      foldLeadSelectionPath: JSTTreePath; external name 'oldLeadSelectionPath';
      fnewLeadSelectionPath: JSTTreePath; external name 'newLeadSelectionPath';
  public
    constructor create(para1: JLObject; para2: Arr1JSTTreePath; para3: Arr1jboolean; para4: JSTTreePath; para5: JSTTreePath); overload;
    constructor create(para1: JLObject; const para2: array of JSTTreePath; const para3: array of jboolean; para4: JSTTreePath; para5: JSTTreePath); overload;
    constructor create(para1: JLObject; para2: JSTTreePath; para3: jboolean; para4: JSTTreePath; para5: JSTTreePath); overload;
    function getPaths(): Arr1JSTTreePath; overload; virtual;
    function getPath(): JSTTreePath; overload; virtual;
    function isAddedPath(): jboolean; overload; virtual;
    function isAddedPath(para1: JSTTreePath): jboolean; overload; virtual;
    function isAddedPath(para1: jint): jboolean; overload; virtual;
    function getOldLeadSelectionPath(): JSTTreePath; overload; virtual;
    function getNewLeadSelectionPath(): JSTTreePath; overload; virtual;
    function cloneWithSource(para1: JLObject): JLObject; overload; virtual;
  end;

  JSEUndoableEditEvent = class external 'javax.swing.event' name 'UndoableEditEvent' (JUEventObject)
  public
    constructor create(para1: JLObject; para2: JSUUndoableEdit); overload;
    function getEdit(): JSUUndoableEdit; overload; virtual;
  end;

  JSSecureRandom = class external 'java.security' name 'SecureRandom' (JURandom)
  public
    constructor create(); overload;
    constructor create(para1: Arr1jbyte); overload;
    constructor create(const para1: array of jbyte); overload;
  strict protected
    constructor create(para1: JSSecureRandomSpi; para2: JSProvider); overload;
  public
    class function getInstance(para1: JLString): JSSecureRandom; static; overload;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString): JSSecureRandom; static; overload;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    class function getInstance(para1: JLString; para2: JSProvider): JSSecureRandom; static; overload;  // throws java.security.NoSuchAlgorithmException
    function getProvider(): JSProvider; overload; virtual; final;
    function getAlgorithm(): JLString; overload; virtual;
    procedure setSeed(para1: Arr1jbyte); overload; virtual;
    procedure setSeed(var para1: array of jbyte); overload; virtual;
    procedure setSeed(para1: jlong); overload; virtual;
    procedure nextBytes(para1: Arr1jbyte); overload; virtual;
    procedure nextBytes(var para1: array of jbyte); overload; virtual;
  strict protected
    function next(para1: jint): jint; overload; virtual; final;
  public
    class function getSeed(para1: jint): Arr1jbyte; static; overload;
    function generateSeed(para1: jint): Arr1jbyte; overload; virtual;
  end;

  JUCLAbstractQueuedLongSynchronizer = class abstract external 'java.util.concurrent.locks' name 'AbstractQueuedLongSynchronizer' (JUCLAbstractOwnableSynchronizer, JISerializable)
  public
    type
      InnerNode = class;
      Arr1InnerNode = array of InnerNode;
      Arr2InnerNode = array of Arr1InnerNode;
      Arr3InnerNode = array of Arr2InnerNode;
      InnerNode = class sealed external 'java.util.concurrent.locks' name 'Node' 
      end;

  public
    type
      InnerConditionObject = class;
      Arr1InnerConditionObject = array of InnerConditionObject;
      Arr2InnerConditionObject = array of Arr1InnerConditionObject;
      Arr3InnerConditionObject = array of Arr2InnerConditionObject;
      InnerConditionObject = class external 'java.util.concurrent.locks' name 'ConditionObject' 
      end;

  strict protected
    constructor create(); overload;
    function getState(): jlong; overload; virtual; final;
    procedure setState(para1: jlong); overload; virtual; final;
    function compareAndSetState(para1: jlong; para2: jlong): jboolean; overload; virtual; final;
    function tryAcquire(para1: jlong): jboolean; overload; virtual;
    function tryRelease(para1: jlong): jboolean; overload; virtual;
    function tryAcquireShared(para1: jlong): jlong; overload; virtual;
    function tryReleaseShared(para1: jlong): jboolean; overload; virtual;
    function isHeldExclusively(): jboolean; overload; virtual;
  public
    procedure acquire(para1: jlong); overload; virtual; final;
    procedure acquireInterruptibly(para1: jlong); overload; virtual; final;  // throws java.lang.InterruptedException
    function tryAcquireNanos(para1: jlong; para2: jlong): jboolean; overload; virtual; final;  // throws java.lang.InterruptedException
    function release(para1: jlong): jboolean; overload; virtual; final;
    procedure acquireShared(para1: jlong); overload; virtual; final;
    procedure acquireSharedInterruptibly(para1: jlong); overload; virtual; final;  // throws java.lang.InterruptedException
    function tryAcquireSharedNanos(para1: jlong; para2: jlong): jboolean; overload; virtual; final;  // throws java.lang.InterruptedException
    function releaseShared(para1: jlong): jboolean; overload; virtual; final;
    function hasQueuedThreads(): jboolean; overload; virtual; final;
    function hasContended(): jboolean; overload; virtual; final;
    function getFirstQueuedThread(): JLThread; overload; virtual; final;
    function isQueued(para1: JLThread): jboolean; overload; virtual; final;
    function getQueueLength(): jint; overload; virtual; final;
    function getQueuedThreads(): JUCollection; overload; virtual; final;
    function getExclusiveQueuedThreads(): JUCollection; overload; virtual; final;
    function getSharedQueuedThreads(): JUCollection; overload; virtual; final;
    function toString(): JLString; overload; virtual;
    function owns(para1: JUCLAbstractQueuedLongSynchronizer.InnerConditionObject): jboolean; overload; virtual; final;
    function hasWaiters(para1: JUCLAbstractQueuedLongSynchronizer.InnerConditionObject): jboolean; overload; virtual; final;
    function getWaitQueueLength(para1: JUCLAbstractQueuedLongSynchronizer.InnerConditionObject): jint; overload; virtual; final;
    function getWaitingThreads(para1: JUCLAbstractQueuedLongSynchronizer.InnerConditionObject): JUCollection; overload; virtual; final;
  end;

  JUCLAbstractQueuedSynchronizer = class abstract external 'java.util.concurrent.locks' name 'AbstractQueuedSynchronizer' (JUCLAbstractOwnableSynchronizer, JISerializable)
  public
    type
      InnerNode = class;
      Arr1InnerNode = array of InnerNode;
      Arr2InnerNode = array of Arr1InnerNode;
      Arr3InnerNode = array of Arr2InnerNode;
      InnerNode = class sealed external 'java.util.concurrent.locks' name 'Node' 
      end;

  public
    type
      InnerConditionObject = class;
      Arr1InnerConditionObject = array of InnerConditionObject;
      Arr2InnerConditionObject = array of Arr1InnerConditionObject;
      Arr3InnerConditionObject = array of Arr2InnerConditionObject;
      InnerConditionObject = class external 'java.util.concurrent.locks' name 'ConditionObject' 
      end;

  strict protected
    constructor create(); overload;
    function getState(): jint; overload; virtual; final;
    procedure setState(para1: jint); overload; virtual; final;
    function compareAndSetState(para1: jint; para2: jint): jboolean; overload; virtual; final;
    function tryAcquire(para1: jint): jboolean; overload; virtual;
    function tryRelease(para1: jint): jboolean; overload; virtual;
    function tryAcquireShared(para1: jint): jint; overload; virtual;
    function tryReleaseShared(para1: jint): jboolean; overload; virtual;
    function isHeldExclusively(): jboolean; overload; virtual;
  public
    procedure acquire(para1: jint); overload; virtual; final;
    procedure acquireInterruptibly(para1: jint); overload; virtual; final;  // throws java.lang.InterruptedException
    function tryAcquireNanos(para1: jint; para2: jlong): jboolean; overload; virtual; final;  // throws java.lang.InterruptedException
    function release(para1: jint): jboolean; overload; virtual; final;
    procedure acquireShared(para1: jint); overload; virtual; final;
    procedure acquireSharedInterruptibly(para1: jint); overload; virtual; final;  // throws java.lang.InterruptedException
    function tryAcquireSharedNanos(para1: jint; para2: jlong): jboolean; overload; virtual; final;  // throws java.lang.InterruptedException
    function releaseShared(para1: jint): jboolean; overload; virtual; final;
    function hasQueuedThreads(): jboolean; overload; virtual; final;
    function hasContended(): jboolean; overload; virtual; final;
    function getFirstQueuedThread(): JLThread; overload; virtual; final;
    function isQueued(para1: JLThread): jboolean; overload; virtual; final;
    function getQueueLength(): jint; overload; virtual; final;
    function getQueuedThreads(): JUCollection; overload; virtual; final;
    function getExclusiveQueuedThreads(): JUCollection; overload; virtual; final;
    function getSharedQueuedThreads(): JUCollection; overload; virtual; final;
    function toString(): JLString; overload; virtual;
    function owns(para1: JUCLAbstractQueuedSynchronizer.InnerConditionObject): jboolean; overload; virtual; final;
    function hasWaiters(para1: JUCLAbstractQueuedSynchronizer.InnerConditionObject): jboolean; overload; virtual; final;
    function getWaitQueueLength(para1: JUCLAbstractQueuedSynchronizer.InnerConditionObject): jint; overload; virtual; final;
    function getWaitingThreads(para1: JUCLAbstractQueuedSynchronizer.InnerConditionObject): JUCollection; overload; virtual; final;
  end;

  JMAttributeChangeNotificationFilter = class external 'javax.management' name 'AttributeChangeNotificationFilter' (JLObject, JMNotificationFilter)
  public
    constructor create(); overload;
    function isNotificationEnabled(para1: JMNotification): jboolean; overload; virtual;
    procedure enableAttribute(para1: JLString); overload; virtual;  // throws java.lang.IllegalArgumentException
    procedure disableAttribute(para1: JLString); overload; virtual;
    procedure disableAllAttributes(); overload; virtual;
    function getEnabledAttributes(): JUVector; overload; virtual;
  end;

  JMNotificationFilterSupport = class external 'javax.management' name 'NotificationFilterSupport' (JLObject, JMNotificationFilter)
  public
    constructor create(); overload;
    function isNotificationEnabled(para1: JMNotification): jboolean; overload; virtual;
    procedure enableType(para1: JLString); overload; virtual;  // throws java.lang.IllegalArgumentException
    procedure disableType(para1: JLString); overload; virtual;
    procedure disableAllTypes(); overload; virtual;
    function getEnabledTypes(): JUVector; overload; virtual;
  end;

  JMAndQueryExp = class external 'javax.management' name 'AndQueryExp' (JMQueryEval, JMQueryExp)
  public
    constructor create(); overload;
    constructor create(para1: JMQueryExp; para2: JMQueryExp); overload;
    function getLeftExp(): JMQueryExp; overload; virtual;
    function getRightExp(): JMQueryExp; overload; virtual;
    function apply(para1: JMObjectName): jboolean; overload; virtual;  // throws javax.management.BadStringOperationException, javax.management.BadBinaryOpValueExpException, javax.management.BadAttributeValueExpException, javax.management.InvalidApplicationException
    function toString(): JLString; overload; virtual;
  end;

  JMBetweenQueryExp = class external 'javax.management' name 'BetweenQueryExp' (JMQueryEval, JMQueryExp)
  public
    constructor create(); overload;
    constructor create(para1: JMValueExp; para2: JMValueExp; para3: JMValueExp); overload;
    function getCheckedValue(): JMValueExp; overload; virtual;
    function getLowerBound(): JMValueExp; overload; virtual;
    function getUpperBound(): JMValueExp; overload; virtual;
    function apply(para1: JMObjectName): jboolean; overload; virtual;  // throws javax.management.BadStringOperationException, javax.management.BadBinaryOpValueExpException, javax.management.BadAttributeValueExpException, javax.management.InvalidApplicationException
    function toString(): JLString; overload; virtual;
  end;

  JMBinaryRelQueryExp = class external 'javax.management' name 'BinaryRelQueryExp' (JMQueryEval, JMQueryExp)
  public
    constructor create(); overload;
    constructor create(para1: jint; para2: JMValueExp; para3: JMValueExp); overload;
    function getOperator(): jint; overload; virtual;
    function getLeftValue(): JMValueExp; overload; virtual;
    function getRightValue(): JMValueExp; overload; virtual;
    function apply(para1: JMObjectName): jboolean; overload; virtual;  // throws javax.management.BadStringOperationException, javax.management.BadBinaryOpValueExpException, javax.management.BadAttributeValueExpException, javax.management.InvalidApplicationException
    function toString(): JLString; overload; virtual;
  end;

  JMInQueryExp = class external 'javax.management' name 'InQueryExp' (JMQueryEval, JMQueryExp)
  public
    constructor create(); overload;
    constructor create(para1: JMValueExp; para2: Arr1JMValueExp); overload;
    constructor create(para1: JMValueExp; const para2: array of JMValueExp); overload;
    function getCheckedValue(): JMValueExp; overload; virtual;
    function getExplicitValues(): Arr1JMValueExp; overload; virtual;
    function apply(para1: JMObjectName): jboolean; overload; virtual;  // throws javax.management.BadStringOperationException, javax.management.BadBinaryOpValueExpException, javax.management.BadAttributeValueExpException, javax.management.InvalidApplicationException
    function toString(): JLString; overload; virtual;
  end;

  JMInstanceOfQueryExp = class external 'javax.management' name 'InstanceOfQueryExp' (JMQueryEval, JMQueryExp)
  public
    constructor create(para1: JMStringValueExp); overload;
    function getClassNameValue(): JMStringValueExp; overload; virtual;
    function apply(para1: JMObjectName): jboolean; overload; virtual;  // throws javax.management.BadStringOperationException, javax.management.BadBinaryOpValueExpException, javax.management.BadAttributeValueExpException, javax.management.InvalidApplicationException
    function toString(): JLString; overload; virtual;
  end;

  JMMatchQueryExp = class external 'javax.management' name 'MatchQueryExp' (JMQueryEval, JMQueryExp)
  public
    constructor create(); overload;
    constructor create(para1: JMAttributeValueExp; para2: JMStringValueExp); overload;
    function getAttribute(): JMAttributeValueExp; overload; virtual;
    function getPattern(): JLString; overload; virtual;
    function apply(para1: JMObjectName): jboolean; overload; virtual;  // throws javax.management.BadStringOperationException, javax.management.BadBinaryOpValueExpException, javax.management.BadAttributeValueExpException, javax.management.InvalidApplicationException
    function toString(): JLString; overload; virtual;
  end;

  JMNotQueryExp = class external 'javax.management' name 'NotQueryExp' (JMQueryEval, JMQueryExp)
  public
    constructor create(); overload;
    constructor create(para1: JMQueryExp); overload;
    function getNegatedExp(): JMQueryExp; overload; virtual;
    function apply(para1: JMObjectName): jboolean; overload; virtual;  // throws javax.management.BadStringOperationException, javax.management.BadBinaryOpValueExpException, javax.management.BadAttributeValueExpException, javax.management.InvalidApplicationException
    function toString(): JLString; overload; virtual;
  end;

  JMObjectName = class external 'javax.management' name 'ObjectName' (JLObject, JLComparable, JMQueryExp)
  public
    type
      InnerPatternProperty = class;
      Arr1InnerPatternProperty = array of InnerPatternProperty;
      Arr2InnerPatternProperty = array of Arr1InnerPatternProperty;
      Arr3InnerPatternProperty = array of Arr2InnerPatternProperty;
      InnerProperty = class;
      Arr1InnerProperty = array of InnerProperty;
      Arr2InnerProperty = array of Arr1InnerProperty;
      Arr3InnerProperty = array of Arr2InnerProperty;
      InnerPatternProperty = class external 'javax.management' name 'PatternProperty' 
      end;

      InnerProperty = class external 'javax.management' name 'Property' 
      end;

  public
    final class var
      fWILDCARD: JMObjectName; external name 'WILDCARD';
  public
    class function getInstance(para1: JLString): JMObjectName; static; overload;  // throws javax.management.MalformedObjectNameException, java.lang.NullPointerException
    class function getInstance(para1: JLString; para2: JLString; para3: JLString): JMObjectName; static; overload;  // throws javax.management.MalformedObjectNameException, java.lang.NullPointerException
    class function getInstance(para1: JLString; para2: JUHashtable): JMObjectName; static; overload;  // throws javax.management.MalformedObjectNameException, java.lang.NullPointerException
    class function getInstance(para1: JMObjectName): JMObjectName; static; overload;  // throws java.lang.NullPointerException
    constructor create(para1: JLString); overload;  // throws javax.management.MalformedObjectNameException, java.lang.NullPointerException
    constructor create(para1: JLString; para2: JLString; para3: JLString); overload;  // throws javax.management.MalformedObjectNameException, java.lang.NullPointerException
    constructor create(para1: JLString; para2: JUHashtable); overload;  // throws javax.management.MalformedObjectNameException, java.lang.NullPointerException
    function isPattern(): jboolean; overload; virtual;
    function isDomainPattern(): jboolean; overload; virtual;
    function isPropertyPattern(): jboolean; overload; virtual;
    function isPropertyListPattern(): jboolean; overload; virtual;
    function isPropertyValuePattern(): jboolean; overload; virtual;
    function isPropertyValuePattern(para1: JLString): jboolean; overload; virtual;  // throws java.lang.NullPointerException, java.lang.IllegalArgumentException
    function getCanonicalName(): JLString; overload; virtual;
    function getDomain(): JLString; overload; virtual;
    function getKeyProperty(para1: JLString): JLString; overload; virtual;  // throws java.lang.NullPointerException
    function getKeyPropertyList(): JUHashtable; overload; virtual;
    function getKeyPropertyListString(): JLString; overload; virtual;
    function getCanonicalKeyPropertyListString(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    class function quote(para1: JLString): JLString; static; overload;  // throws java.lang.NullPointerException
    class function unquote(para1: JLString): JLString; static; overload;  // throws java.lang.IllegalArgumentException, java.lang.NullPointerException
    function apply(para1: JMObjectName): jboolean; overload; virtual;  // throws java.lang.NullPointerException
    procedure setMBeanServer(para1: JMMBeanServer); overload; virtual;
    function compareTo(para1: JMObjectName): jint; overload; virtual;
    function compareTo(para1: JLObject): jint; overload; virtual;
  end;

  JMOrQueryExp = class external 'javax.management' name 'OrQueryExp' (JMQueryEval, JMQueryExp)
  public
    constructor create(); overload;
    constructor create(para1: JMQueryExp; para2: JMQueryExp); overload;
    function getLeftExp(): JMQueryExp; overload; virtual;
    function getRightExp(): JMQueryExp; overload; virtual;
    function apply(para1: JMObjectName): jboolean; overload; virtual;  // throws javax.management.BadStringOperationException, javax.management.BadBinaryOpValueExpException, javax.management.BadAttributeValueExpException, javax.management.InvalidApplicationException
    function toString(): JLString; overload; virtual;
  end;

  JMAttributeValueExp = class external 'javax.management' name 'AttributeValueExp' (JLObject, JMValueExp)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    function getAttributeName(): JLString; overload; virtual;
    function apply(para1: JMObjectName): JMValueExp; overload; virtual;  // throws javax.management.BadStringOperationException, javax.management.BadBinaryOpValueExpException, javax.management.BadAttributeValueExpException, javax.management.InvalidApplicationException
    function toString(): JLString; overload; virtual;
    procedure setMBeanServer(para1: JMMBeanServer); overload; virtual;
  strict protected
    function getAttribute(para1: JMObjectName): JLObject; overload; virtual;
  end;

  JMBinaryOpValueExp = class external 'javax.management' name 'BinaryOpValueExp' (JMQueryEval, JMValueExp)
  public
    constructor create(); overload;
    constructor create(para1: jint; para2: JMValueExp; para3: JMValueExp); overload;
    function getOperator(): jint; overload; virtual;
    function getLeftValue(): JMValueExp; overload; virtual;
    function getRightValue(): JMValueExp; overload; virtual;
    function apply(para1: JMObjectName): JMValueExp; overload; virtual;  // throws javax.management.BadStringOperationException, javax.management.BadBinaryOpValueExpException, javax.management.BadAttributeValueExpException, javax.management.InvalidApplicationException
    function toString(): JLString; overload; virtual;
  end;

  JMBooleanValueExp = class external 'javax.management' name 'BooleanValueExp' (JMQueryEval, JMValueExp)
  public
    function getValue(): JLBoolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    function apply(para1: JMObjectName): JMValueExp; overload; virtual;  // throws javax.management.BadStringOperationException, javax.management.BadBinaryOpValueExpException, javax.management.BadAttributeValueExpException, javax.management.InvalidApplicationException
  end;

  JMNumericValueExp = class external 'javax.management' name 'NumericValueExp' (JMQueryEval, JMValueExp)
  public
    constructor create(); overload;
    function doubleValue(): jdouble; overload; virtual;
    function longValue(): jlong; overload; virtual;
    function isLong(): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    function apply(para1: JMObjectName): JMValueExp; overload; virtual;  // throws javax.management.BadStringOperationException, javax.management.BadBinaryOpValueExpException, javax.management.BadAttributeValueExpException, javax.management.InvalidApplicationException
  end;

  JMStringValueExp = class external 'javax.management' name 'StringValueExp' (JLObject, JMValueExp)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    function getValue(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure setMBeanServer(para1: JMMBeanServer); overload; virtual;
    function apply(para1: JMObjectName): JMValueExp; overload; virtual;  // throws javax.management.BadStringOperationException, javax.management.BadBinaryOpValueExpException, javax.management.BadAttributeValueExpException, javax.management.InvalidApplicationException
  end;

  JMOArrayType = class external 'javax.management.openmbean' name 'ArrayType' (JMOOpenType)
  public
    constructor create(para1: jint; para2: JMOOpenType); overload;  // throws javax.management.openmbean.OpenDataException
    constructor create(para1: JMOSimpleType; para2: jboolean); overload;  // throws javax.management.openmbean.OpenDataException
    function getDimension(): jint; overload; virtual;
    function getElementOpenType(): JMOOpenType; overload; virtual;
    function isPrimitiveArray(): jboolean; overload; virtual;
    function isValue(para1: JLObject): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    class function getArrayType(para1: JMOOpenType): JMOArrayType; static; overload;  // throws javax.management.openmbean.OpenDataException
    class function getPrimitiveArrayType(para1: JLClass): JMOArrayType; static; overload;
  end;

  JMOCompositeType = class external 'javax.management.openmbean' name 'CompositeType' (JMOOpenType)
  public
    constructor create(para1: JLString; para2: JLString; para3: Arr1JLString; para4: Arr1JLString; para5: Arr1JMOOpenType); overload;  // throws javax.management.openmbean.OpenDataException
    constructor create(para1: JLString; para2: JLString; const para3: array of JLString; const para4: array of JLString; const para5: array of JMOOpenType); overload;  // throws javax.management.openmbean.OpenDataException
    function containsKey(para1: JLString): jboolean; overload; virtual;
    function getDescription(para1: JLString): JLString; overload; virtual;
    function getType(para1: JLString): JMOOpenType; overload; virtual;
    function keySet(): JUSet; overload; virtual;
    function isValue(para1: JLObject): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JMOSimpleType = class sealed external 'javax.management.openmbean' name 'SimpleType' (JMOOpenType)
  public
    final class var
      fVOID: JMOSimpleType; external name 'VOID';
      fBOOLEAN: JMOSimpleType; external name 'BOOLEAN';
      fCHARACTER: JMOSimpleType; external name 'CHARACTER';
      fBYTE: JMOSimpleType; external name 'BYTE';
      fSHORT: JMOSimpleType; external name 'SHORT';
      fINTEGER: JMOSimpleType; external name 'INTEGER';
      fLONG: JMOSimpleType; external name 'LONG';
      fFLOAT: JMOSimpleType; external name 'FLOAT';
      fDOUBLE: JMOSimpleType; external name 'DOUBLE';
      fSTRING: JMOSimpleType; external name 'STRING';
      fBIGDECIMAL: JMOSimpleType; external name 'BIGDECIMAL';
      fBIGINTEGER: JMOSimpleType; external name 'BIGINTEGER';
      fDATE: JMOSimpleType; external name 'DATE';
      fOBJECTNAME: JMOSimpleType; external name 'OBJECTNAME';
  public
    function isValue(para1: JLObject): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function readResolve(): JLObject; overload; virtual;  // throws java.io.ObjectStreamException
  end;

  JMOTabularType = class external 'javax.management.openmbean' name 'TabularType' (JMOOpenType)
  public
    constructor create(para1: JLString; para2: JLString; para3: JMOCompositeType; para4: Arr1JLString); overload;  // throws javax.management.openmbean.OpenDataException
    constructor create(para1: JLString; para2: JLString; para3: JMOCompositeType; const para4: array of JLString); overload;  // throws javax.management.openmbean.OpenDataException
    function getRowType(): JMOCompositeType; overload; virtual;
    function getIndexNames(): JUList; overload; virtual;
    function isValue(para1: JLObject): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JMRRelationTypeSupport = class external 'javax.management.relation' name 'RelationTypeSupport' (JLObject, JMRRelationType)
  public
    constructor create(para1: JLString; para2: Arr1JMRRoleInfo); overload;  // throws java.lang.IllegalArgumentException, javax.management.relation.InvalidRelationTypeException
    constructor create(para1: JLString; const para2: array of JMRRoleInfo); overload;  // throws java.lang.IllegalArgumentException, javax.management.relation.InvalidRelationTypeException
  strict protected
    constructor create(para1: JLString); overload;
  public
    function getRelationTypeName(): JLString; overload; virtual;
    function getRoleInfos(): JUList; overload; virtual;
    function getRoleInfo(para1: JLString): JMRRoleInfo; overload; virtual;  // throws java.lang.IllegalArgumentException, javax.management.relation.RoleInfoNotFoundException
  strict protected
    procedure addRoleInfo(para1: JMRRoleInfo); overload; virtual;  // throws java.lang.IllegalArgumentException, javax.management.relation.InvalidRelationTypeException
  end;

  JNBinding = class external 'javax.naming' name 'Binding' (JNNameClassPair)
  public
    constructor create(para1: JLString; para2: JLObject); overload;
    constructor create(para1: JLString; para2: JLObject; para3: jboolean); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLObject); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLObject; para4: jboolean); overload;
    function getClassName(): JLString; overload; virtual;
    function getObject(): JLObject; overload; virtual;
    procedure setObject(para1: JLObject); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JNBinaryRefAddr = class external 'javax.naming' name 'BinaryRefAddr' (JNRefAddr)
  public
    constructor create(para1: JLString; para2: Arr1jbyte); overload;
    constructor create(para1: JLString; const para2: array of jbyte); overload;
    constructor create(para1: JLString; para2: Arr1jbyte; para3: jint; para4: jint); overload;
    constructor create(para1: JLString; const para2: array of jbyte; para3: jint; para4: jint); overload;
    function getContent(): JLObject; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JNStringRefAddr = class external 'javax.naming' name 'StringRefAddr' (JNRefAddr)
  public
    constructor create(para1: JLString; para2: JLString); overload;
    function getContent(): JLObject; overload; virtual;
  end;

  JNLBasicControl = class external 'javax.naming.ldap' name 'BasicControl' (JLObject, JNLControl)
  strict protected
    var
      fid: JLString; external name 'id';
      fcriticality: jboolean; external name 'criticality';
      fvalue: Arr1jbyte; external name 'value';
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: jboolean; para3: Arr1jbyte); overload;
    constructor create(para1: JLString; para2: jboolean; const para3: array of jbyte); overload;
    function getID(): JLString; overload; virtual;
    function isCritical(): jboolean; overload; virtual;
    function getEncodedValue(): Arr1jbyte; overload; virtual;
  end;

  JNLStartTlsRequest = class external 'javax.naming.ldap' name 'StartTlsRequest' (JLObject, JNLExtendedRequest)
  public
    const
      OID = '1.3.6.1.4.1.1466.20037';
  public
    constructor create(); overload;
    function getID(): JLString; overload; virtual;
    function getEncodedValue(): Arr1jbyte; overload; virtual;
    function createExtendedResponse(para1: JLString; para2: Arr1jbyte; para3: jint; para4: jint): JNLExtendedResponse; overload; virtual;  // throws javax.naming.NamingException
    function createExtendedResponse(para1: JLString; var para2: array of jbyte; para3: jint; para4: jint): JNLExtendedResponse; overload; virtual;  // throws javax.naming.NamingException
  end;

  JNLStartTlsResponse = class abstract external 'javax.naming.ldap' name 'StartTlsResponse' (JLObject, JNLExtendedResponse)
  public
    const
      OID = '1.3.6.1.4.1.1466.20037';
  strict protected
    constructor create(); overload;
  public
    function getID(): JLString; overload; virtual;
    function getEncodedValue(): Arr1jbyte; overload; virtual;
    procedure setEnabledCipherSuites(para1: Arr1JLString); overload; virtual; abstract;
    procedure setEnabledCipherSuites(var para1: array of JLString); overload; virtual; abstract;
    procedure setHostnameVerifier(para1: JNSHostnameVerifier); overload; virtual; abstract;
    function negotiate(): JNSSSLSession; overload; virtual; abstract;  // throws java.io.IOException
    function negotiate(para1: JNSSSLSocketFactory): JNSSSLSession; overload; virtual; abstract;  // throws java.io.IOException
    procedure close(); overload; virtual; abstract;  // throws java.io.IOException
  end;

  JNLUnsolicitedNotification = interface external 'javax.naming.ldap' name 'UnsolicitedNotification' (JNLExtendedResponse, JNLHasControls)
    function getReferrals(): Arr1JLString; overload;
    function getException(): JNNamingException; overload;
  end;

  JPADocAttribute = interface external 'javax.print.attribute' name 'DocAttribute' (JPAAttribute)
  end;

  JPAPrintJobAttribute = interface external 'javax.print.attribute' name 'PrintJobAttribute' (JPAAttribute)
  end;

  JPAPrintRequestAttribute = interface external 'javax.print.attribute' name 'PrintRequestAttribute' (JPAAttribute)
  end;

  JPAPrintServiceAttribute = interface external 'javax.print.attribute' name 'PrintServiceAttribute' (JPAAttribute)
  end;

  JPASupportedValuesAttribute = interface external 'javax.print.attribute' name 'SupportedValuesAttribute' (JPAAttribute)
  end;

  JSPActionMapUIResource = class external 'javax.swing.plaf' name 'ActionMapUIResource' (JSActionMap, JSPUIResource)
  public
    constructor create(); overload;
  end;

  JSComponentInputMap = class external 'javax.swing' name 'ComponentInputMap' (JSInputMap)
  public
    constructor create(para1: JSJComponent); overload;
    procedure setParent(para1: JSInputMap); overload; virtual;
    function getComponent(): JSJComponent; overload; virtual;
    procedure put(para1: JSKeyStroke; para2: JLObject); overload; virtual;
    procedure remove(para1: JSKeyStroke); overload; virtual;
    procedure clear(); overload; virtual;
  end;

  JSPInputMapUIResource = class external 'javax.swing.plaf' name 'InputMapUIResource' (JSInputMap, JSPUIResource)
  public
    constructor create(); overload;
  end;

  JSJDialog = class external 'javax.swing' name 'JDialog' (JADialog, JSWindowConstants, JAAccessible, JSRootPaneContainer, JSTransferHandler.InnerHasGetTransferHandler)
  public
    type
      InnerAccessibleJDialog = class;
      Arr1InnerAccessibleJDialog = array of InnerAccessibleJDialog;
      Arr2InnerAccessibleJDialog = array of Arr1InnerAccessibleJDialog;
      Arr3InnerAccessibleJDialog = array of Arr2InnerAccessibleJDialog;
      InnerAccessibleJDialog = class external 'javax.swing' name 'AccessibleJDialog' 
      end;

  strict protected
    var
      frootPane: JSJRootPane; external name 'rootPane';
      frootPaneCheckingEnabled: jboolean; external name 'rootPaneCheckingEnabled';
      faccessibleContext: JAAccessibleContext; external name 'accessibleContext';
  public
    constructor create(); overload;
    constructor create(para1: JAFrame); overload;
    constructor create(para1: JAFrame; para2: jboolean); overload;
    constructor create(para1: JAFrame; para2: JLString); overload;
    constructor create(para1: JAFrame; para2: JLString; para3: jboolean); overload;
    constructor create(para1: JAFrame; para2: JLString; para3: jboolean; para4: JAGraphicsConfiguration); overload;
    constructor create(para1: JADialog); overload;
    constructor create(para1: JADialog; para2: jboolean); overload;
    constructor create(para1: JADialog; para2: JLString); overload;
    constructor create(para1: JADialog; para2: JLString; para3: jboolean); overload;
    constructor create(para1: JADialog; para2: JLString; para3: jboolean; para4: JAGraphicsConfiguration); overload;
    constructor create(para1: JAWindow); overload;
    constructor create(para1: JAWindow; para2: JADialog.InnerModalityType); overload;
    constructor create(para1: JAWindow; para2: JLString); overload;
    constructor create(para1: JAWindow; para2: JLString; para3: JADialog.InnerModalityType); overload;
    constructor create(para1: JAWindow; para2: JLString; para3: JADialog.InnerModalityType; para4: JAGraphicsConfiguration); overload;
  strict protected
    procedure dialogInit(); overload; virtual;
    function createRootPane(): JSJRootPane; overload; virtual;
    procedure processWindowEvent(para1: JAEWindowEvent); overload; virtual;
  public
    procedure setDefaultCloseOperation(para1: jint); overload; virtual;
    function getDefaultCloseOperation(): jint; overload; virtual;
    procedure setTransferHandler(para1: JSTransferHandler); overload; virtual;
    function getTransferHandler(): JSTransferHandler; overload; virtual;
    procedure update(para1: JAGraphics); overload; virtual;
    procedure setJMenuBar(para1: JSJMenuBar); overload; virtual;
    function getJMenuBar(): JSJMenuBar; overload; virtual;
  strict protected
    function isRootPaneCheckingEnabled(): jboolean; overload; virtual;
    procedure setRootPaneCheckingEnabled(para1: jboolean); overload; virtual;
    procedure addImpl(para1: JAComponent; para2: JLObject; para3: jint); overload; virtual;
  public
    procedure remove(para1: JAComponent); overload; virtual;
    procedure setLayout(para1: JALayoutManager); overload; virtual;
    function getRootPane(): JSJRootPane; overload; virtual;
  strict protected
    procedure setRootPane(para1: JSJRootPane); overload; virtual;
  public
    function getContentPane(): JAContainer; overload; virtual;
    procedure setContentPane(para1: JAContainer); overload; virtual;
    function getLayeredPane(): JSJLayeredPane; overload; virtual;
    procedure setLayeredPane(para1: JSJLayeredPane); overload; virtual;
    function getGlassPane(): JAComponent; overload; virtual;
    procedure setGlassPane(para1: JAComponent); overload; virtual;
    function getGraphics(): JAGraphics; overload; virtual;
    procedure repaint(para1: jlong; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    class procedure setDefaultLookAndFeelDecorated(para1: jboolean); static; overload;
    class function isDefaultLookAndFeelDecorated(): jboolean; static; overload;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSTHHTMLWriter = class external 'javax.swing.text.html' name 'HTMLWriter' (JSTAbstractWriter)
  public
    constructor create(para1: JIWriter; para2: JSTHHTMLDocument); overload;
    constructor create(para1: JIWriter; para2: JSTHHTMLDocument; para3: jint; para4: jint); overload;
    procedure write(); overload; virtual;  // throws java.io.IOException, javax.swing.text.BadLocationException
  strict protected
    procedure writeAttributes(para1: JSTAttributeSet); overload; virtual;  // throws java.io.IOException
    procedure emptyTag(para1: JSTElement); overload; virtual;  // throws javax.swing.text.BadLocationException, java.io.IOException
    function isBlockTag(para1: JSTAttributeSet): jboolean; overload; virtual;
    procedure startTag(para1: JSTElement); overload; virtual;  // throws java.io.IOException, javax.swing.text.BadLocationException
    procedure textAreaContent(para1: JSTAttributeSet); overload; virtual;  // throws javax.swing.text.BadLocationException, java.io.IOException
    procedure text(para1: JSTElement); overload; virtual;  // throws javax.swing.text.BadLocationException, java.io.IOException
    procedure selectContent(para1: JSTAttributeSet); overload; virtual;  // throws java.io.IOException
    procedure writeOption(para1: JSTHOption); overload; virtual;  // throws java.io.IOException
    procedure endTag(para1: JSTElement); overload; virtual;  // throws java.io.IOException
    procedure comment(para1: JSTElement); overload; virtual;  // throws javax.swing.text.BadLocationException, java.io.IOException
    function synthesizedElement(para1: JSTElement): jboolean; overload; virtual;
    function matchNameAttribute(para1: JSTAttributeSet; para2: JSTHHTML.InnerTag): jboolean; overload; virtual;
    procedure writeEmbeddedTags(para1: JSTAttributeSet); overload; virtual;  // throws java.io.IOException
    procedure closeOutUnwantedEmbeddedTags(para1: JSTAttributeSet); overload; virtual;  // throws java.io.IOException
    procedure writeLineSeparator(); overload; virtual;  // throws java.io.IOException
    procedure output(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure output(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
  end;

  JSTHPTagElement = class external 'javax.swing.text.html.parser' name 'TagElement' (JLObject)
  public
    constructor create(para1: JSTHPElement); overload;
    constructor create(para1: JSTHPElement; para2: jboolean); overload;
    function breaksFlow(): jboolean; overload; virtual;
    function isPreformatted(): jboolean; overload; virtual;
    function getElement(): JSTHPElement; overload; virtual;
    function getHTMLTag(): JSTHHTML.InnerTag; overload; virtual;
    function fictional(): jboolean; overload; virtual;
  end;

  OOCAny = class abstract external 'org.omg.CORBA' name 'Any' (JLObject, OOCPIDLEntity)
  public
    constructor create(); overload;
    function equal(para1: OOCAny): jboolean; overload; virtual; abstract;
    function &type(): OOCTypeCode; overload; virtual; abstract;
    procedure &type(para1: OOCTypeCode); overload; virtual; abstract;
    procedure read_value(para1: OOCPInputStream; para2: OOCTypeCode); overload; virtual; abstract;  // throws org.omg.CORBA.MARSHAL
    procedure write_value(para1: OOCPOutputStream); overload; virtual; abstract;
    function create_output_stream(): OOCPOutputStream; overload; virtual; abstract;
    function create_input_stream(): OOCPInputStream; overload; virtual; abstract;
    function extract_short(): jshort; overload; virtual; abstract;  // throws org.omg.CORBA.BAD_OPERATION
    procedure insert_short(para1: jshort); overload; virtual; abstract;
    function extract_long(): jint; overload; virtual; abstract;  // throws org.omg.CORBA.BAD_OPERATION
    procedure insert_long(para1: jint); overload; virtual; abstract;
    function extract_longlong(): jlong; overload; virtual; abstract;  // throws org.omg.CORBA.BAD_OPERATION
    procedure insert_longlong(para1: jlong); overload; virtual; abstract;
    function extract_ushort(): jshort; overload; virtual; abstract;  // throws org.omg.CORBA.BAD_OPERATION
    procedure insert_ushort(para1: jshort); overload; virtual; abstract;
    function extract_ulong(): jint; overload; virtual; abstract;  // throws org.omg.CORBA.BAD_OPERATION
    procedure insert_ulong(para1: jint); overload; virtual; abstract;
    function extract_ulonglong(): jlong; overload; virtual; abstract;  // throws org.omg.CORBA.BAD_OPERATION
    procedure insert_ulonglong(para1: jlong); overload; virtual; abstract;
    function extract_float(): jfloat; overload; virtual; abstract;  // throws org.omg.CORBA.BAD_OPERATION
    procedure insert_float(para1: jfloat); overload; virtual; abstract;
    function extract_double(): jdouble; overload; virtual; abstract;  // throws org.omg.CORBA.BAD_OPERATION
    procedure insert_double(para1: jdouble); overload; virtual; abstract;
    function extract_boolean(): jboolean; overload; virtual; abstract;  // throws org.omg.CORBA.BAD_OPERATION
    procedure insert_boolean(para1: jboolean); overload; virtual; abstract;
    function extract_char(): jchar; overload; virtual; abstract;  // throws org.omg.CORBA.BAD_OPERATION
    procedure insert_char(para1: jchar); overload; virtual; abstract;  // throws org.omg.CORBA.DATA_CONVERSION
    function extract_wchar(): jchar; overload; virtual; abstract;  // throws org.omg.CORBA.BAD_OPERATION
    procedure insert_wchar(para1: jchar); overload; virtual; abstract;
    function extract_octet(): jbyte; overload; virtual; abstract;  // throws org.omg.CORBA.BAD_OPERATION
    procedure insert_octet(para1: jbyte); overload; virtual; abstract;
    function extract_any(): OOCAny; overload; virtual; abstract;  // throws org.omg.CORBA.BAD_OPERATION
    procedure insert_any(para1: OOCAny); overload; virtual; abstract;
    function extract_Object(): OOCObject; overload; virtual; abstract;  // throws org.omg.CORBA.BAD_OPERATION
    procedure insert_Object(para1: OOCObject); overload; virtual; abstract;
    function extract_Value(): JISerializable; overload; virtual; abstract;  // throws org.omg.CORBA.BAD_OPERATION
    procedure insert_Value(para1: JISerializable); overload; virtual; abstract;
    procedure insert_Value(para1: JISerializable; para2: OOCTypeCode); overload; virtual; abstract;  // throws org.omg.CORBA.MARSHAL
    procedure insert_Object(para1: OOCObject; para2: OOCTypeCode); overload; virtual; abstract;  // throws org.omg.CORBA.BAD_PARAM
    function extract_string(): JLString; overload; virtual; abstract;  // throws org.omg.CORBA.BAD_OPERATION
    procedure insert_string(para1: JLString); overload; virtual; abstract;  // throws org.omg.CORBA.DATA_CONVERSION, org.omg.CORBA.MARSHAL
    function extract_wstring(): JLString; overload; virtual; abstract;  // throws org.omg.CORBA.BAD_OPERATION
    procedure insert_wstring(para1: JLString); overload; virtual; abstract;  // throws org.omg.CORBA.MARSHAL
    function extract_TypeCode(): OOCTypeCode; overload; virtual; abstract;  // throws org.omg.CORBA.BAD_OPERATION
    procedure insert_TypeCode(para1: OOCTypeCode); overload; virtual; abstract;
    function extract_Principal(): OOCPrincipal; overload; virtual;  // throws org.omg.CORBA.BAD_OPERATION
    procedure insert_Principal(para1: OOCPrincipal); overload; virtual;
    function extract_Streamable(): OOCPStreamable; overload; virtual;  // throws org.omg.CORBA.BAD_INV_ORDER
    procedure insert_Streamable(para1: OOCPStreamable); overload; virtual;
    function extract_fixed(): JMBigDecimal; overload; virtual;
    procedure insert_fixed(para1: JMBigDecimal); overload; virtual;
    procedure insert_fixed(para1: JMBigDecimal; para2: OOCTypeCode); overload; virtual;  // throws org.omg.CORBA.BAD_INV_ORDER
  end;

  OOCCompletionStatus = class sealed external 'org.omg.CORBA' name 'CompletionStatus' (JLObject, OOCPIDLEntity)
  public
    const
      _COMPLETED_YES = 0;
      _COMPLETED_NO = 1;
      _COMPLETED_MAYBE = 2;
  public
    final class var
      fCOMPLETED_YES: OOCCompletionStatus; external name 'COMPLETED_YES';
      fCOMPLETED_NO: OOCCompletionStatus; external name 'COMPLETED_NO';
      fCOMPLETED_MAYBE: OOCCompletionStatus; external name 'COMPLETED_MAYBE';
  public
    function value(): jint; overload; virtual;
    class function from_int(para1: jint): OOCCompletionStatus; static; overload;
  end;

  OOCCurrent = interface external 'org.omg.CORBA' name 'Current' (OOCCurrentOperations, OOCObject, OOCPIDLEntity)
  end;

  OOCDefinitionKind = class external 'org.omg.CORBA' name 'DefinitionKind' (JLObject, OOCPIDLEntity)
  public
    const
      _dk_none = 0;
      _dk_all = 1;
      _dk_Attribute = 2;
      _dk_Constant = 3;
      _dk_Exception = 4;
      _dk_Interface = 5;
      _dk_Module = 6;
      _dk_Operation = 7;
      _dk_Typedef = 8;
      _dk_Alias = 9;
      _dk_Struct = 10;
      _dk_Union = 11;
      _dk_Enum = 12;
      _dk_Primitive = 13;
      _dk_String = 14;
      _dk_Sequence = 15;
      _dk_Array = 16;
      _dk_Repository = 17;
      _dk_Wstring = 18;
      _dk_Fixed = 19;
      _dk_Value = 20;
      _dk_ValueBox = 21;
      _dk_ValueMember = 22;
      _dk_Native = 23;
      _dk_AbstractInterface = 24;
  public
    final class var
      fdk_none: OOCDefinitionKind; external name 'dk_none';
      fdk_all: OOCDefinitionKind; external name 'dk_all';
      fdk_Attribute: OOCDefinitionKind; external name 'dk_Attribute';
      fdk_Constant: OOCDefinitionKind; external name 'dk_Constant';
      fdk_Exception: OOCDefinitionKind; external name 'dk_Exception';
      fdk_Interface: OOCDefinitionKind; external name 'dk_Interface';
      fdk_Module: OOCDefinitionKind; external name 'dk_Module';
      fdk_Operation: OOCDefinitionKind; external name 'dk_Operation';
      fdk_Typedef: OOCDefinitionKind; external name 'dk_Typedef';
      fdk_Alias: OOCDefinitionKind; external name 'dk_Alias';
      fdk_Struct: OOCDefinitionKind; external name 'dk_Struct';
      fdk_Union: OOCDefinitionKind; external name 'dk_Union';
      fdk_Enum: OOCDefinitionKind; external name 'dk_Enum';
      fdk_Primitive: OOCDefinitionKind; external name 'dk_Primitive';
      fdk_String: OOCDefinitionKind; external name 'dk_String';
      fdk_Sequence: OOCDefinitionKind; external name 'dk_Sequence';
      fdk_Array: OOCDefinitionKind; external name 'dk_Array';
      fdk_Repository: OOCDefinitionKind; external name 'dk_Repository';
      fdk_Wstring: OOCDefinitionKind; external name 'dk_Wstring';
      fdk_Fixed: OOCDefinitionKind; external name 'dk_Fixed';
      fdk_Value: OOCDefinitionKind; external name 'dk_Value';
      fdk_ValueBox: OOCDefinitionKind; external name 'dk_ValueBox';
      fdk_ValueMember: OOCDefinitionKind; external name 'dk_ValueMember';
      fdk_Native: OOCDefinitionKind; external name 'dk_Native';
      fdk_AbstractInterface: OOCDefinitionKind; external name 'dk_AbstractInterface';
  public
    function value(): jint; overload; virtual;
    class function from_int(para1: jint): OOCDefinitionKind; static; overload;
  strict protected
    constructor create(para1: jint); overload;
  end;

  OOCDomainManager = interface external 'org.omg.CORBA' name 'DomainManager' (OOCDomainManagerOperations, OOCObject, OOCPIDLEntity)
  end;

  OOCIRObject = interface external 'org.omg.CORBA' name 'IRObject' (OOCIRObjectOperations, OOCObject, OOCPIDLEntity)
  end;

  OOCNameValuePair = class sealed external 'org.omg.CORBA' name 'NameValuePair' (JLObject, OOCPIDLEntity)
  public
    var
      fid: JLString; external name 'id';
      fvalue: OOCAny; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: JLString; para2: OOCAny); overload;
  end;

  OOCParameterMode = class external 'org.omg.CORBA' name 'ParameterMode' (JLObject, OOCPIDLEntity)
  public
    const
      _PARAM_IN = 0;
  public
    final class var
      fPARAM_IN: OOCParameterMode; external name 'PARAM_IN';
  public
    const
      _PARAM_OUT = 1;
  public
    final class var
      fPARAM_OUT: OOCParameterMode; external name 'PARAM_OUT';
  public
    const
      _PARAM_INOUT = 2;
  public
    final class var
      fPARAM_INOUT: OOCParameterMode; external name 'PARAM_INOUT';
  public
    function value(): jint; overload; virtual;
    class function from_int(para1: jint): OOCParameterMode; static; overload;
  strict protected
    constructor create(para1: jint); overload;
  end;

  OOCPolicy = interface external 'org.omg.CORBA' name 'Policy' (OOCPolicyOperations, OOCObject, OOCPIDLEntity)
  end;

  OOCServiceDetail = class sealed external 'org.omg.CORBA' name 'ServiceDetail' (JLObject, OOCPIDLEntity)
  public
    var
      fservice_detail_type: jint; external name 'service_detail_type';
      fservice_detail: Arr1jbyte; external name 'service_detail';
  public
    constructor create(); overload;
    constructor create(para1: jint; para2: Arr1jbyte); overload;
    constructor create(para1: jint; const para2: array of jbyte); overload;
  end;

  OOCServiceInformation = class sealed external 'org.omg.CORBA' name 'ServiceInformation' (JLObject, OOCPIDLEntity)
  public
    var
      fservice_options: Arr1jint; external name 'service_options';
      fservice_details: Arr1OOCServiceDetail; external name 'service_details';
  public
    constructor create(); overload;
    constructor create(para1: Arr1jint; para2: Arr1OOCServiceDetail); overload;
    constructor create(const para1: array of jint; const para2: array of OOCServiceDetail); overload;
  end;

  OOCSetOverrideType = class external 'org.omg.CORBA' name 'SetOverrideType' (JLObject, OOCPIDLEntity)
  public
    const
      _SET_OVERRIDE = 0;
      _ADD_OVERRIDE = 1;
  public
    final class var
      fSET_OVERRIDE: OOCSetOverrideType; external name 'SET_OVERRIDE';
      fADD_OVERRIDE: OOCSetOverrideType; external name 'ADD_OVERRIDE';
  public
    function value(): jint; overload; virtual;
    class function from_int(para1: jint): OOCSetOverrideType; static; overload;
  strict protected
    constructor create(para1: jint); overload;
  end;

  OOCStructMember = class sealed external 'org.omg.CORBA' name 'StructMember' (JLObject, OOCPIDLEntity)
  public
    var
      fname: JLString; external name 'name';
      ftype: OOCTypeCode; external name 'type';
      ftype_def: OOCIDLType; external name 'type_def';
  public
    constructor create(); overload;
    constructor create(para1: JLString; para2: OOCTypeCode; para3: OOCIDLType); overload;
  end;

  OOCTypeCode = class abstract external 'org.omg.CORBA' name 'TypeCode' (JLObject, OOCPIDLEntity)
  public
    constructor create(); overload;
    function equal(para1: OOCTypeCode): jboolean; overload; virtual; abstract;
    function equivalent(para1: OOCTypeCode): jboolean; overload; virtual; abstract;
    function get_compact_typecode(): OOCTypeCode; overload; virtual; abstract;
    function kind(): OOCTCKind; overload; virtual; abstract;
    function id(): JLString; overload; virtual; abstract;  // throws org.omg.CORBA.TypeCodePackage.BadKind
    function name(): JLString; overload; virtual; abstract;  // throws org.omg.CORBA.TypeCodePackage.BadKind
    function member_count(): jint; overload; virtual; abstract;  // throws org.omg.CORBA.TypeCodePackage.BadKind
    function member_name(para1: jint): JLString; overload; virtual; abstract;  // throws org.omg.CORBA.TypeCodePackage.BadKind, org.omg.CORBA.TypeCodePackage.Bounds
    function member_type(para1: jint): OOCTypeCode; overload; virtual; abstract;  // throws org.omg.CORBA.TypeCodePackage.BadKind, org.omg.CORBA.TypeCodePackage.Bounds
    function member_label(para1: jint): OOCAny; overload; virtual; abstract;  // throws org.omg.CORBA.TypeCodePackage.BadKind, org.omg.CORBA.TypeCodePackage.Bounds
    function discriminator_type(): OOCTypeCode; overload; virtual; abstract;  // throws org.omg.CORBA.TypeCodePackage.BadKind
    function default_index(): jint; overload; virtual; abstract;  // throws org.omg.CORBA.TypeCodePackage.BadKind
    function length(): jint; overload; virtual; abstract;  // throws org.omg.CORBA.TypeCodePackage.BadKind
    function content_type(): OOCTypeCode; overload; virtual; abstract;  // throws org.omg.CORBA.TypeCodePackage.BadKind
    function fixed_digits(): jshort; overload; virtual; abstract;  // throws org.omg.CORBA.TypeCodePackage.BadKind
    function fixed_scale(): jshort; overload; virtual; abstract;  // throws org.omg.CORBA.TypeCodePackage.BadKind
    function member_visibility(para1: jint): jshort; overload; virtual; abstract;  // throws org.omg.CORBA.TypeCodePackage.BadKind, org.omg.CORBA.TypeCodePackage.Bounds
    function type_modifier(): jshort; overload; virtual; abstract;  // throws org.omg.CORBA.TypeCodePackage.BadKind
    function concrete_base_type(): OOCTypeCode; overload; virtual; abstract;  // throws org.omg.CORBA.TypeCodePackage.BadKind
  end;

  OOCUnionMember = class sealed external 'org.omg.CORBA' name 'UnionMember' (JLObject, OOCPIDLEntity)
  public
    var
      fname: JLString; external name 'name';
      flabel: OOCAny; external name 'label';
      ftype: OOCTypeCode; external name 'type';
      ftype_def: OOCIDLType; external name 'type_def';
  public
    constructor create(); overload;
    constructor create(para1: JLString; para2: OOCAny; para3: OOCTypeCode; para4: OOCIDLType); overload;
  end;

  OOCUserException = class abstract external 'org.omg.CORBA' name 'UserException' (JLException, OOCPIDLEntity)
  strict protected
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOCValueMember = class sealed external 'org.omg.CORBA' name 'ValueMember' (JLObject, OOCPIDLEntity)
  public
    var
      fname: JLString; external name 'name';
      fid: JLString; external name 'id';
      fdefined_in: JLString; external name 'defined_in';
      fversion: JLString; external name 'version';
      ftype: OOCTypeCode; external name 'type';
      ftype_def: OOCIDLType; external name 'type_def';
      faccess: jshort; external name 'access';
  public
    constructor create(); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLString; para4: JLString; para5: OOCTypeCode; para6: OOCIDLType; para7: jshort); overload;
  end;

  OOCPValueBase = interface external 'org.omg.CORBA.portable' name 'ValueBase' (OOCPIDLEntity)
    function _truncatable_ids(): Arr1JLString; overload;
  end;

  OOCBinding = class sealed external 'org.omg.CosNaming' name 'Binding' (JLObject, OOCPIDLEntity)
  public
    var
      fbinding_name: Arr1OOCNameComponent; external name 'binding_name';
      fbinding_type: OOCBindingType; external name 'binding_type';
  public
    constructor create(); overload;
    constructor create(para1: Arr1OOCNameComponent; para2: OOCBindingType); overload;
    constructor create(const para1: array of OOCNameComponent; para2: OOCBindingType); overload;
  end;

  OOCBindingIterator = interface external 'org.omg.CosNaming' name 'BindingIterator' (OOCBindingIteratorOperations, OOCObject, OOCPIDLEntity)
  end;

  OOCBindingType = class external 'org.omg.CosNaming' name 'BindingType' (JLObject, OOCPIDLEntity)
  public
    const
      _nobject = 0;
  public
    final class var
      fnobject: OOCBindingType; external name 'nobject';
  public
    const
      _ncontext = 1;
  public
    final class var
      fncontext: OOCBindingType; external name 'ncontext';
  public
    function value(): jint; overload; virtual;
    class function from_int(para1: jint): OOCBindingType; static; overload;
  strict protected
    constructor create(para1: jint); overload;
  end;

  OOCNameComponent = class sealed external 'org.omg.CosNaming' name 'NameComponent' (JLObject, OOCPIDLEntity)
  public
    var
      fid: JLString; external name 'id';
      fkind: JLString; external name 'kind';
  public
    constructor create(); overload;
    constructor create(para1: JLString; para2: JLString); overload;
  end;

  OOCNamingContext = interface external 'org.omg.CosNaming' name 'NamingContext' (OOCNamingContextOperations, OOCObject, OOCPIDLEntity)
  end;

  OOCNNotFoundReason = class external 'org.omg.CosNaming.NamingContextPackage' name 'NotFoundReason' (JLObject, OOCPIDLEntity)
  public
    const
      _missing_node = 0;
  public
    final class var
      fmissing_node: OOCNNotFoundReason; external name 'missing_node';
  public
    const
      _not_context = 1;
  public
    final class var
      fnot_context: OOCNNotFoundReason; external name 'not_context';
  public
    const
      _not_object = 2;
  public
    final class var
      fnot_object: OOCNNotFoundReason; external name 'not_object';
  public
    function value(): jint; overload; virtual;
    class function from_int(para1: jint): OOCNNotFoundReason; static; overload;
  strict protected
    constructor create(para1: jint); overload;
  end;

  OODParameter = class sealed external 'org.omg.Dynamic' name 'Parameter' (JLObject, OOCPIDLEntity)
  public
    var
      fargument: OOCAny; external name 'argument';
      fmode: OOCParameterMode; external name 'mode';
  public
    constructor create(); overload;
    constructor create(para1: OOCAny; para2: OOCParameterMode); overload;
  end;

  OODDynAny = interface external 'org.omg.DynamicAny' name 'DynAny' (OODDynAnyOperations, OOCObject, OOCPIDLEntity)
  end;

  OODDynAnyFactory = interface external 'org.omg.DynamicAny' name 'DynAnyFactory' (OODDynAnyFactoryOperations, OOCObject, OOCPIDLEntity)
  end;

  OODNameDynAnyPair = class sealed external 'org.omg.DynamicAny' name 'NameDynAnyPair' (JLObject, OOCPIDLEntity)
  public
    var
      fid: JLString; external name 'id';
      fvalue: OODDynAny; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: JLString; para2: OODDynAny); overload;
  end;

  OODNameValuePair = class sealed external 'org.omg.DynamicAny' name 'NameValuePair' (JLObject, OOCPIDLEntity)
  public
    var
      fid: JLString; external name 'id';
      fvalue: OOCAny; external name 'value';
  public
    constructor create(); overload;
    constructor create(para1: JLString; para2: OOCAny); overload;
  end;

  OOICodec = interface external 'org.omg.IOP' name 'Codec' (OOICodecOperations, OOCObject, OOCPIDLEntity)
  end;

  OOICodecFactory = interface external 'org.omg.IOP' name 'CodecFactory' (OOICodecFactoryOperations, OOCObject, OOCPIDLEntity)
  end;

  OOIEncoding = class sealed external 'org.omg.IOP' name 'Encoding' (JLObject, OOCPIDLEntity)
  public
    var
      fformat: jshort; external name 'format';
      fmajor_version: jbyte; external name 'major_version';
      fminor_version: jbyte; external name 'minor_version';
  public
    constructor create(); overload;
    constructor create(para1: jshort; para2: jbyte; para3: jbyte); overload;
  end;

  OOIIOR = class sealed external 'org.omg.IOP' name 'IOR' (JLObject, OOCPIDLEntity)
  public
    var
      ftype_id: JLString; external name 'type_id';
      fprofiles: Arr1OOITaggedProfile; external name 'profiles';
  public
    constructor create(); overload;
    constructor create(para1: JLString; para2: Arr1OOITaggedProfile); overload;
    constructor create(para1: JLString; const para2: array of OOITaggedProfile); overload;
  end;

  OOIServiceContext = class sealed external 'org.omg.IOP' name 'ServiceContext' (JLObject, OOCPIDLEntity)
  public
    var
      fcontext_id: jint; external name 'context_id';
      fcontext_data: Arr1jbyte; external name 'context_data';
  public
    constructor create(); overload;
    constructor create(para1: jint; para2: Arr1jbyte); overload;
    constructor create(para1: jint; const para2: array of jbyte); overload;
  end;

  OOITaggedComponent = class sealed external 'org.omg.IOP' name 'TaggedComponent' (JLObject, OOCPIDLEntity)
  public
    var
      ftag: jint; external name 'tag';
      fcomponent_data: Arr1jbyte; external name 'component_data';
  public
    constructor create(); overload;
    constructor create(para1: jint; para2: Arr1jbyte); overload;
    constructor create(para1: jint; const para2: array of jbyte); overload;
  end;

  OOITaggedProfile = class sealed external 'org.omg.IOP' name 'TaggedProfile' (JLObject, OOCPIDLEntity)
  public
    var
      ftag: jint; external name 'tag';
      fprofile_data: Arr1jbyte; external name 'profile_data';
  public
    constructor create(); overload;
    constructor create(para1: jint; para2: Arr1jbyte); overload;
    constructor create(para1: jint; const para2: array of jbyte); overload;
  end;

  OOPIORInfo = interface external 'org.omg.PortableInterceptor' name 'IORInfo' (OOPIORInfoOperations, OOCObject, OOCPIDLEntity)
  end;

  OOPInterceptor = interface external 'org.omg.PortableInterceptor' name 'Interceptor' (OOPInterceptorOperations, OOCObject, OOCPIDLEntity)
  end;

  OOPORBInitInfo = interface external 'org.omg.PortableInterceptor' name 'ORBInitInfo' (OOPORBInitInfoOperations, OOCObject, OOCPIDLEntity)
  end;

  OOPORBInitializer = interface external 'org.omg.PortableInterceptor' name 'ORBInitializer' (OOPORBInitializerOperations, OOCObject, OOCPIDLEntity)
  end;

  OOPPolicyFactory = interface external 'org.omg.PortableInterceptor' name 'PolicyFactory' (OOPPolicyFactoryOperations, OOCObject, OOCPIDLEntity)
  end;

  OOPRequestInfo = interface external 'org.omg.PortableInterceptor' name 'RequestInfo' (OOPRequestInfoOperations, OOCObject, OOCPIDLEntity)
  end;

  OOPAdapterActivator = interface external 'org.omg.PortableServer' name 'AdapterActivator' (OOPAdapterActivatorOperations, OOCObject, OOCPIDLEntity)
  end;

  OOPIdAssignmentPolicyValue = class external 'org.omg.PortableServer' name 'IdAssignmentPolicyValue' (JLObject, OOCPIDLEntity)
  public
    const
      _USER_ID = 0;
  public
    final class var
      fUSER_ID: OOPIdAssignmentPolicyValue; external name 'USER_ID';
  public
    const
      _SYSTEM_ID = 1;
  public
    final class var
      fSYSTEM_ID: OOPIdAssignmentPolicyValue; external name 'SYSTEM_ID';
  public
    function value(): jint; overload; virtual;
    class function from_int(para1: jint): OOPIdAssignmentPolicyValue; static; overload;
  strict protected
    constructor create(para1: jint); overload;
  end;

  OOPIdUniquenessPolicyValue = class external 'org.omg.PortableServer' name 'IdUniquenessPolicyValue' (JLObject, OOCPIDLEntity)
  public
    const
      _UNIQUE_ID = 0;
  public
    final class var
      fUNIQUE_ID: OOPIdUniquenessPolicyValue; external name 'UNIQUE_ID';
  public
    const
      _MULTIPLE_ID = 1;
  public
    final class var
      fMULTIPLE_ID: OOPIdUniquenessPolicyValue; external name 'MULTIPLE_ID';
  public
    function value(): jint; overload; virtual;
    class function from_int(para1: jint): OOPIdUniquenessPolicyValue; static; overload;
  strict protected
    constructor create(para1: jint); overload;
  end;

  OOPImplicitActivationPolicyValue = class external 'org.omg.PortableServer' name 'ImplicitActivationPolicyValue' (JLObject, OOCPIDLEntity)
  public
    const
      _IMPLICIT_ACTIVATION = 0;
  public
    final class var
      fIMPLICIT_ACTIVATION: OOPImplicitActivationPolicyValue; external name 'IMPLICIT_ACTIVATION';
  public
    const
      _NO_IMPLICIT_ACTIVATION = 1;
  public
    final class var
      fNO_IMPLICIT_ACTIVATION: OOPImplicitActivationPolicyValue; external name 'NO_IMPLICIT_ACTIVATION';
  public
    function value(): jint; overload; virtual;
    class function from_int(para1: jint): OOPImplicitActivationPolicyValue; static; overload;
  strict protected
    constructor create(para1: jint); overload;
  end;

  OOPLifespanPolicyValue = class external 'org.omg.PortableServer' name 'LifespanPolicyValue' (JLObject, OOCPIDLEntity)
  public
    const
      _TRANSIENT = 0;
  public
    final class var
      fTRANSIENT: OOPLifespanPolicyValue; external name 'TRANSIENT';
  public
    const
      _PERSISTENT = 1;
  public
    final class var
      fPERSISTENT: OOPLifespanPolicyValue; external name 'PERSISTENT';
  public
    function value(): jint; overload; virtual;
    class function from_int(para1: jint): OOPLifespanPolicyValue; static; overload;
  strict protected
    constructor create(para1: jint); overload;
  end;

  OOPPOA = interface external 'org.omg.PortableServer' name 'POA' (OOPPOAOperations, OOCObject, OOCPIDLEntity)
  end;

  OOPPOAManager = interface external 'org.omg.PortableServer' name 'POAManager' (OOPPOAManagerOperations, OOCObject, OOCPIDLEntity)
  end;

  OOPPState = class external 'org.omg.PortableServer.POAManagerPackage' name 'State' (JLObject, OOCPIDLEntity)
  public
    const
      _HOLDING = 0;
  public
    final class var
      fHOLDING: OOPPState; external name 'HOLDING';
  public
    const
      _ACTIVE = 1;
  public
    final class var
      fACTIVE: OOPPState; external name 'ACTIVE';
  public
    const
      _DISCARDING = 2;
  public
    final class var
      fDISCARDING: OOPPState; external name 'DISCARDING';
  public
    const
      _INACTIVE = 3;
  public
    final class var
      fINACTIVE: OOPPState; external name 'INACTIVE';
  public
    function value(): jint; overload; virtual;
    class function from_int(para1: jint): OOPPState; static; overload;
  strict protected
    constructor create(para1: jint); overload;
  end;

  OOPRequestProcessingPolicyValue = class external 'org.omg.PortableServer' name 'RequestProcessingPolicyValue' (JLObject, OOCPIDLEntity)
  public
    const
      _USE_ACTIVE_OBJECT_MAP_ONLY = 0;
  public
    final class var
      fUSE_ACTIVE_OBJECT_MAP_ONLY: OOPRequestProcessingPolicyValue; external name 'USE_ACTIVE_OBJECT_MAP_ONLY';
  public
    const
      _USE_DEFAULT_SERVANT = 1;
  public
    final class var
      fUSE_DEFAULT_SERVANT: OOPRequestProcessingPolicyValue; external name 'USE_DEFAULT_SERVANT';
  public
    const
      _USE_SERVANT_MANAGER = 2;
  public
    final class var
      fUSE_SERVANT_MANAGER: OOPRequestProcessingPolicyValue; external name 'USE_SERVANT_MANAGER';
  public
    function value(): jint; overload; virtual;
    class function from_int(para1: jint): OOPRequestProcessingPolicyValue; static; overload;
  strict protected
    constructor create(para1: jint); overload;
  end;

  OOPServantManager = interface external 'org.omg.PortableServer' name 'ServantManager' (OOPServantManagerOperations, OOCObject, OOCPIDLEntity)
  end;

  OOPServantRetentionPolicyValue = class external 'org.omg.PortableServer' name 'ServantRetentionPolicyValue' (JLObject, OOCPIDLEntity)
  public
    const
      _RETAIN = 0;
  public
    final class var
      fRETAIN: OOPServantRetentionPolicyValue; external name 'RETAIN';
  public
    const
      _NON_RETAIN = 1;
  public
    final class var
      fNON_RETAIN: OOPServantRetentionPolicyValue; external name 'NON_RETAIN';
  public
    function value(): jint; overload; virtual;
    class function from_int(para1: jint): OOPServantRetentionPolicyValue; static; overload;
  strict protected
    constructor create(para1: jint); overload;
  end;

  OOPThreadPolicyValue = class external 'org.omg.PortableServer' name 'ThreadPolicyValue' (JLObject, OOCPIDLEntity)
  public
    const
      _ORB_CTRL_MODEL = 0;
  public
    final class var
      fORB_CTRL_MODEL: OOPThreadPolicyValue; external name 'ORB_CTRL_MODEL';
  public
    const
      _SINGLE_THREAD_MODEL = 1;
  public
    final class var
      fSINGLE_THREAD_MODEL: OOPThreadPolicyValue; external name 'SINGLE_THREAD_MODEL';
  public
    function value(): jint; overload; virtual;
    class function from_int(para1: jint): OOPThreadPolicyValue; static; overload;
  strict protected
    constructor create(para1: jint); overload;
  end;

  OOSRunTime = interface external 'org.omg.SendingContext' name 'RunTime' (OOSRunTimeOperations, OOCObject, OOCPIDLEntity)
  end;

  JSPInsetsUIResource = class external 'javax.swing.plaf' name 'InsetsUIResource' (JAInsets, JSPUIResource)
  public
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint); overload;
  end;

  JADimension = class external 'java.awt' name 'Dimension' (JAGDimension2D, JISerializable)
  public
    var
      fwidth: jint; external name 'width';
      fheight: jint; external name 'height';
  public
    constructor create(); overload;
    constructor create(para1: JADimension); overload;
    constructor create(para1: jint; para2: jint); overload;
    function getWidth(): jdouble; overload; virtual;
    function getHeight(): jdouble; overload; virtual;
    procedure setSize(para1: jdouble; para2: jdouble); overload; virtual;
    function getSize(): JADimension; overload; virtual;
    procedure setSize(para1: JADimension); overload; virtual;
    procedure setSize(para1: jint; para2: jint); overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JAPoint = class external 'java.awt' name 'Point' (JAGPoint2D, JISerializable)
  public
    var
      fx: jint; external name 'x';
      fy: jint; external name 'y';
  public
    constructor create(); overload;
    constructor create(para1: JAPoint); overload;
    constructor create(para1: jint; para2: jint); overload;
    function getX(): jdouble; overload; virtual;
    function getY(): jdouble; overload; virtual;
    function getLocation(): JAPoint; overload; virtual;
    procedure setLocation(para1: JAPoint); overload; virtual;
    procedure setLocation(para1: jint; para2: jint); overload; virtual;
    procedure setLocation(para1: jdouble; para2: jdouble); overload; virtual;
    procedure move(para1: jint; para2: jint); overload; virtual;
    procedure translate(para1: jint; para2: jint); overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSCX509CRLSelector = class external 'java.security.cert' name 'X509CRLSelector' (JLObject, JSCCRLSelector)
  public
    constructor create(); overload;
    procedure setIssuers(para1: JUCollection); overload; virtual;
    procedure setIssuerNames(para1: JUCollection); overload; virtual;  // throws java.io.IOException
    procedure addIssuer(para1: JSAXX500Principal); overload; virtual;
    procedure addIssuerName(para1: JLString); overload; virtual;  // throws java.io.IOException
    procedure addIssuerName(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure addIssuerName(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
    procedure setMinCRLNumber(para1: JMBigInteger); overload; virtual;
    procedure setMaxCRLNumber(para1: JMBigInteger); overload; virtual;
    procedure setDateAndTime(para1: JUDate); overload; virtual;
    procedure setCertificateChecking(para1: JSCX509Certificate); overload; virtual;
    function getIssuers(): JUCollection; overload; virtual;
    function getIssuerNames(): JUCollection; overload; virtual;
    function getMinCRL(): JMBigInteger; overload; virtual;
    function getMaxCRL(): JMBigInteger; overload; virtual;
    function getDateAndTime(): JUDate; overload; virtual;
    function getCertificateChecking(): JSCX509Certificate; overload; virtual;
    function toString(): JLString; overload; virtual;
    function match(para1: JSCCRL): jboolean; overload; virtual;
    function clone(): JLObject; overload; virtual;
  end;

  JSCPKIXParameters = class external 'java.security.cert' name 'PKIXParameters' (JLObject, JSCCertPathParameters)
  public
    constructor create(para1: JUSet); overload;  // throws java.security.InvalidAlgorithmParameterException
    constructor create(para1: JSKeyStore); overload;  // throws java.security.KeyStoreException, java.security.InvalidAlgorithmParameterException
    function getTrustAnchors(): JUSet; overload; virtual;
    procedure setTrustAnchors(para1: JUSet); overload; virtual;  // throws java.security.InvalidAlgorithmParameterException
    function getInitialPolicies(): JUSet; overload; virtual;
    procedure setInitialPolicies(para1: JUSet); overload; virtual;
    procedure setCertStores(para1: JUList); overload; virtual;
    procedure addCertStore(para1: JSCCertStore); overload; virtual;
    function getCertStores(): JUList; overload; virtual;
    procedure setRevocationEnabled(para1: jboolean); overload; virtual;
    function isRevocationEnabled(): jboolean; overload; virtual;
    procedure setExplicitPolicyRequired(para1: jboolean); overload; virtual;
    function isExplicitPolicyRequired(): jboolean; overload; virtual;
    procedure setPolicyMappingInhibited(para1: jboolean); overload; virtual;
    function isPolicyMappingInhibited(): jboolean; overload; virtual;
    procedure setAnyPolicyInhibited(para1: jboolean); overload; virtual;
    function isAnyPolicyInhibited(): jboolean; overload; virtual;
    procedure setPolicyQualifiersRejected(para1: jboolean); overload; virtual;
    function getPolicyQualifiersRejected(): jboolean; overload; virtual;
    function getDate(): JUDate; overload; virtual;
    procedure setDate(para1: JUDate); overload; virtual;
    procedure setCertPathCheckers(para1: JUList); overload; virtual;
    function getCertPathCheckers(): JUList; overload; virtual;
    procedure addCertPathChecker(para1: JSCPKIXCertPathChecker); overload; virtual;
    function getSigProvider(): JLString; overload; virtual;
    procedure setSigProvider(para1: JLString); overload; virtual;
    function getTargetCertConstraints(): JSCCertSelector; overload; virtual;
    procedure setTargetCertConstraints(para1: JSCCertSelector); overload; virtual;
    function clone(): JLObject; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSCPKIXCertPathValidatorResult = class external 'java.security.cert' name 'PKIXCertPathValidatorResult' (JLObject, JSCCertPathValidatorResult)
  public
    constructor create(para1: JSCTrustAnchor; para2: JSCPolicyNode; para3: JSPublicKey); overload;
    function getTrustAnchor(): JSCTrustAnchor; overload; virtual;
    function getPolicyTree(): JSCPolicyNode; overload; virtual;
    function getPublicKey(): JSPublicKey; overload; virtual;
    function clone(): JLObject; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSCX509CertSelector = class external 'java.security.cert' name 'X509CertSelector' (JLObject, JSCCertSelector)
  public
    constructor create(); overload;
    procedure setCertificate(para1: JSCX509Certificate); overload; virtual;
    procedure setSerialNumber(para1: JMBigInteger); overload; virtual;
    procedure setIssuer(para1: JSAXX500Principal); overload; virtual;
    procedure setIssuer(para1: JLString); overload; virtual;  // throws java.io.IOException
    procedure setIssuer(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure setIssuer(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
    procedure setSubject(para1: JSAXX500Principal); overload; virtual;
    procedure setSubject(para1: JLString); overload; virtual;  // throws java.io.IOException
    procedure setSubject(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure setSubject(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
    procedure setSubjectKeyIdentifier(para1: Arr1jbyte); overload; virtual;
    procedure setSubjectKeyIdentifier(var para1: array of jbyte); overload; virtual;
    procedure setAuthorityKeyIdentifier(para1: Arr1jbyte); overload; virtual;
    procedure setAuthorityKeyIdentifier(var para1: array of jbyte); overload; virtual;
    procedure setCertificateValid(para1: JUDate); overload; virtual;
    procedure setPrivateKeyValid(para1: JUDate); overload; virtual;
    procedure setSubjectPublicKeyAlgID(para1: JLString); overload; virtual;  // throws java.io.IOException
    procedure setSubjectPublicKey(para1: JSPublicKey); overload; virtual;
    procedure setSubjectPublicKey(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure setSubjectPublicKey(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
    procedure setKeyUsage(para1: Arr1jboolean); overload; virtual;
    procedure setKeyUsage(var para1: array of jboolean); overload; virtual;
    procedure setExtendedKeyUsage(para1: JUSet); overload; virtual;  // throws java.io.IOException
    procedure setMatchAllSubjectAltNames(para1: jboolean); overload; virtual;
    procedure setSubjectAlternativeNames(para1: JUCollection); overload; virtual;  // throws java.io.IOException
    procedure addSubjectAlternativeName(para1: jint; para2: JLString); overload; virtual;  // throws java.io.IOException
    procedure addSubjectAlternativeName(para1: jint; para2: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure addSubjectAlternativeName(para1: jint; var para2: array of jbyte); overload; virtual;  // throws java.io.IOException
    procedure setNameConstraints(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure setNameConstraints(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
    procedure setBasicConstraints(para1: jint); overload; virtual;
    procedure setPolicy(para1: JUSet); overload; virtual;  // throws java.io.IOException
    procedure setPathToNames(para1: JUCollection); overload; virtual;  // throws java.io.IOException
    procedure addPathToName(para1: jint; para2: JLString); overload; virtual;  // throws java.io.IOException
    procedure addPathToName(para1: jint; para2: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure addPathToName(para1: jint; var para2: array of jbyte); overload; virtual;  // throws java.io.IOException
    function getCertificate(): JSCX509Certificate; overload; virtual;
    function getSerialNumber(): JMBigInteger; overload; virtual;
    function getIssuer(): JSAXX500Principal; overload; virtual;
    function getIssuerAsString(): JLString; overload; virtual;
    function getIssuerAsBytes(): Arr1jbyte; overload; virtual;  // throws java.io.IOException
    function getSubject(): JSAXX500Principal; overload; virtual;
    function getSubjectAsString(): JLString; overload; virtual;
    function getSubjectAsBytes(): Arr1jbyte; overload; virtual;  // throws java.io.IOException
    function getSubjectKeyIdentifier(): Arr1jbyte; overload; virtual;
    function getAuthorityKeyIdentifier(): Arr1jbyte; overload; virtual;
    function getCertificateValid(): JUDate; overload; virtual;
    function getPrivateKeyValid(): JUDate; overload; virtual;
    function getSubjectPublicKeyAlgID(): JLString; overload; virtual;
    function getSubjectPublicKey(): JSPublicKey; overload; virtual;
    function getKeyUsage(): Arr1jboolean; overload; virtual;
    function getExtendedKeyUsage(): JUSet; overload; virtual;
    function getMatchAllSubjectAltNames(): jboolean; overload; virtual;
    function getSubjectAlternativeNames(): JUCollection; overload; virtual;
    function getNameConstraints(): Arr1jbyte; overload; virtual;
    function getBasicConstraints(): jint; overload; virtual;
    function getPolicy(): JUSet; overload; virtual;
    function getPathToNames(): JUCollection; overload; virtual;
    function toString(): JLString; overload; virtual;
    function match(para1: JSCCertificate): jboolean; overload; virtual;
    function clone(): JLObject; overload; virtual;
  end;

  JSCCollectionCertStoreParameters = class external 'java.security.cert' name 'CollectionCertStoreParameters' (JLObject, JSCCertStoreParameters)
  public
    constructor create(para1: JUCollection); overload;
    constructor create(); overload;
    function getCollection(): JUCollection; overload; virtual;
    function clone(): JLObject; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSCLDAPCertStoreParameters = class external 'java.security.cert' name 'LDAPCertStoreParameters' (JLObject, JSCCertStoreParameters)
  public
    constructor create(para1: JLString; para2: jint); overload;
    constructor create(para1: JLString); overload;
    constructor create(); overload;
    function getServerName(): JLString; overload; virtual;
    function getPort(): jint; overload; virtual;
    function clone(): JLObject; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JTRuleBasedBreakIterator = class external 'java.text' name 'RuleBasedBreakIterator' (JTBreakIterator)
  public
    type
      InnerSafeCharIterator = class;
      Arr1InnerSafeCharIterator = array of InnerSafeCharIterator;
      Arr2InnerSafeCharIterator = array of Arr1InnerSafeCharIterator;
      Arr3InnerSafeCharIterator = array of Arr2InnerSafeCharIterator;
      InnerSafeCharIterator = class sealed external 'java.text' name 'SafeCharIterator' 
      end;

  strict protected
    const
      IGNORE = -1;
  public
    constructor create(para1: JLString); overload;  // throws java.io.IOException, java.util.MissingResourceException
  strict protected
    procedure readTables(para1: JLString); overload; virtual;  // throws java.io.IOException, java.util.MissingResourceException
    function readFile(para1: JLString): Arr1jbyte; overload; virtual;  // throws java.io.IOException, java.util.MissingResourceException
  public
    function clone(): JLObject; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function first(): jint; overload; virtual;
    function last(): jint; overload; virtual;
    function next(para1: jint): jint; overload; virtual;
    function next(): jint; overload; virtual;
    function previous(): jint; overload; virtual;
  strict protected
    class procedure checkOffset(para1: jint; para2: JTCharacterIterator); static; overload; final;
  public
    function following(para1: jint): jint; overload; virtual;
    function preceding(para1: jint): jint; overload; virtual;
    function isBoundary(para1: jint): jboolean; overload; virtual;
    function current(): jint; overload; virtual;
    function getText(): JTCharacterIterator; overload; virtual;
    procedure setText(para1: JTCharacterIterator); overload; virtual;
  strict protected
    function handleNext(): jint; overload; virtual;
    function handlePrevious(): jint; overload; virtual;
    function lookupCategory(para1: jint): jint; overload; virtual;
    function lookupState(para1: jint; para2: jint): jint; overload; virtual;
    function lookupBackwardState(para1: jint; para2: jint): jint; overload; virtual;
  end;

  JAFCharArrayIterator = class external 'java.awt.font' name 'CharArrayIterator' (JLObject, JTCharacterIterator)
  public
    function first(): jchar; overload; virtual;
    function last(): jchar; overload; virtual;
    function current(): jchar; overload; virtual;
    function next(): jchar; overload; virtual;
    function previous(): jchar; overload; virtual;
    function setIndex(para1: jint): jchar; overload; virtual;
    function getBeginIndex(): jint; overload; virtual;
    function getEndIndex(): jint; overload; virtual;
    function getIndex(): jint; overload; virtual;
    function clone(): JLObject; overload; virtual;
  end;

  JTAttributedCharacterIterator = interface external 'java.text' name 'AttributedCharacterIterator' (JTCharacterIterator)
    type
      InnerAttribute = class;
      Arr1InnerAttribute = array of InnerAttribute;
      Arr2InnerAttribute = array of Arr1InnerAttribute;
      Arr3InnerAttribute = array of Arr2InnerAttribute;
      InnerAttribute = class external 'java.text' name 'Attribute' (JLObject, JISerializable)
      public
        final class var
          fLANGUAGE: JTAttributedCharacterIterator.InnerAttribute; external name 'LANGUAGE';
          fREADING: JTAttributedCharacterIterator.InnerAttribute; external name 'READING';
          fINPUT_METHOD_SEGMENT: JTAttributedCharacterIterator.InnerAttribute; external name 'INPUT_METHOD_SEGMENT';
      strict protected
        constructor create(para1: JLString); overload;
      public
        function equals(para1: JLObject): jboolean; overload; virtual; final;
        function hashCode(): jint; overload; virtual; final;
        function toString(): JLString; overload; virtual;
      strict protected
        function getName(): JLString; overload; virtual;
        function readResolve(): JLObject; overload; virtual;  // throws java.io.InvalidObjectException
      end;

    function getRunStart(): jint; overload;
    function getRunStart(para1: JTAttributedCharacterIterator.InnerAttribute): jint; overload;
    function getRunStart(para1: JUSet): jint; overload;
    function getRunLimit(): jint; overload;
    function getRunLimit(para1: JTAttributedCharacterIterator.InnerAttribute): jint; overload;
    function getRunLimit(para1: JUSet): jint; overload;
    function getAttributes(): JUMap; overload;
    function getAttribute(para1: JTAttributedCharacterIterator.InnerAttribute): JLObject; overload;
    function getAllAttributeKeys(): JUSet; overload;
  end;

  JTStringCharacterIterator = class sealed external 'java.text' name 'StringCharacterIterator' (JLObject, JTCharacterIterator)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: jint); overload;
    constructor create(para1: JLString; para2: jint; para3: jint; para4: jint); overload;
    procedure setText(para1: JLString); overload; virtual;
    function first(): jchar; overload; virtual;
    function last(): jchar; overload; virtual;
    function setIndex(para1: jint): jchar; overload; virtual;
    function current(): jchar; overload; virtual;
    function next(): jchar; overload; virtual;
    function previous(): jchar; overload; virtual;
    function getBeginIndex(): jint; overload; virtual;
    function getEndIndex(): jint; overload; virtual;
    function getIndex(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function clone(): JLObject; overload; virtual;
  end;

  JSTSegment = class external 'javax.swing.text' name 'Segment' (JLObject, JLCloneable, JTCharacterIterator, JLCharSequence)
  public
    var
      farray: Arr1jchar; external name 'array';
      foffset: jint; external name 'offset';
      fcount: jint; external name 'count';
  public
    constructor create(); overload;
    constructor create(para1: Arr1jchar; para2: jint; para3: jint); overload;
    constructor create(const para1: array of jchar; para2: jint; para3: jint); overload;
    procedure setPartialReturn(para1: jboolean); overload; virtual;
    function isPartialReturn(): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    function first(): jchar; overload; virtual;
    function last(): jchar; overload; virtual;
    function current(): jchar; overload; virtual;
    function next(): jchar; overload; virtual;
    function previous(): jchar; overload; virtual;
    function setIndex(para1: jint): jchar; overload; virtual;
    function getBeginIndex(): jint; overload; virtual;
    function getEndIndex(): jint; overload; virtual;
    function getIndex(): jint; overload; virtual;
    function charAt(para1: jint): jchar; overload; virtual;
    function length(): jint; overload; virtual;
    function subSequence(para1: jint; para2: jint): JLCharSequence; overload; virtual;
    function clone(): JLObject; overload; virtual;
  end;

  JUSimpleTimeZone = class external 'java.util' name 'SimpleTimeZone' (JUTimeZone)
  public
    const
      WALL_TIME = 0;
      STANDARD_TIME = 1;
      UTC_TIME = 2;
  public
    constructor create(para1: jint; para2: JLString); overload;
    constructor create(para1: jint; para2: JLString; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: jint; para10: jint); overload;
    constructor create(para1: jint; para2: JLString; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: jint; para10: jint; para11: jint); overload;
    constructor create(para1: jint; para2: JLString; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: jint; para10: jint; para11: jint; para12: jint; para13: jint); overload;
    procedure setStartYear(para1: jint); overload; virtual;
    procedure setStartRule(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure setStartRule(para1: jint; para2: jint; para3: jint); overload; virtual;
    procedure setStartRule(para1: jint; para2: jint; para3: jint; para4: jint; para5: jboolean); overload; virtual;
    procedure setEndRule(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure setEndRule(para1: jint; para2: jint; para3: jint); overload; virtual;
    procedure setEndRule(para1: jint; para2: jint; para3: jint; para4: jint; para5: jboolean); overload; virtual;
    function getOffset(para1: jlong): jint; overload; virtual;
    function getOffset(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint): jint; overload; virtual;
    function getRawOffset(): jint; overload; virtual;
    procedure setRawOffset(para1: jint); overload; virtual;
    procedure setDSTSavings(para1: jint); overload; virtual;
    function getDSTSavings(): jint; overload; virtual;
    function useDaylightTime(): jboolean; overload; virtual;
    function inDaylightTime(para1: JUDate): jboolean; overload; virtual;
    function clone(): JLObject; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hasSameRules(para1: JUTimeZone): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JMImmutableDescriptor = class external 'javax.management' name 'ImmutableDescriptor' (JLObject, JMDescriptor)
  public
    final class var
      fEMPTY_DESCRIPTOR: JMImmutableDescriptor; external name 'EMPTY_DESCRIPTOR';
  public
    constructor create(para1: Arr1JLString; para2: Arr1JLObject); overload;
    constructor create(const para1: array of JLString; const para2: array of JLObject); overload;
    constructor create(para1: Arr1JLString); overload;
    constructor create(const para1: array of JLString); overload;
    constructor create(para1: JUMap); overload;
    class function union(para1: Arr1JMDescriptor): JMImmutableDescriptor; static; overload;
    class function union(const para1: array of JMDescriptor): JMImmutableDescriptor; static; overload;
    function getFieldValue(para1: JLString): JLObject; overload; virtual; final;
    function getFields(): Arr1JLString; overload; virtual; final;
    function getFieldValues(para1: Arr1JLString): Arr1JLObject; overload; virtual; final;
    function getFieldValues(const para1: array of JLString): Arr1JLObject; overload; virtual; final;
    function getFieldNames(): Arr1JLString; overload; virtual; final;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function isValid(): jboolean; overload; virtual;
    function clone(): JMDescriptor; overload; virtual;
    procedure setFields(para1: Arr1JLString; para2: Arr1JLObject); overload; virtual; final;  // throws javax.management.RuntimeOperationsException
    procedure setFields(var para1: array of JLString; var para2: array of JLObject); overload; virtual; final;  // throws javax.management.RuntimeOperationsException
    procedure setField(para1: JLString; para2: JLObject); overload; virtual; final;  // throws javax.management.RuntimeOperationsException
    procedure removeField(para1: JLString); overload; virtual; final;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  JMMDescriptorSupport = class external 'javax.management.modelmbean' name 'DescriptorSupport' (JLObject, JMDescriptor)
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
    constructor create(para1: JMMDescriptorSupport); overload;
    constructor create(para1: JLString); overload;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException, javax.management.modelmbean.XMLParseException
    constructor create(para1: Arr1JLString; para2: Arr1JLObject); overload;  // throws javax.management.RuntimeOperationsException
    constructor create(const para1: array of JLString; const para2: array of JLObject); overload;  // throws javax.management.RuntimeOperationsException
    constructor create(para1: Arr1JLString); overload;
    constructor create(const para1: array of JLString); overload;
    function getFieldValue(para1: JLString): JLObject; overload; virtual;  // throws javax.management.RuntimeOperationsException
    procedure setField(para1: JLString; para2: JLObject); overload; virtual;  // throws javax.management.RuntimeOperationsException
    function getFields(): Arr1JLString; overload; virtual;
    function getFieldNames(): Arr1JLString; overload; virtual;
    function getFieldValues(para1: Arr1JLString): Arr1JLObject; overload; virtual;
    function getFieldValues(const para1: array of JLString): Arr1JLObject; overload; virtual;
    procedure setFields(para1: Arr1JLString; para2: Arr1JLObject); overload; virtual;  // throws javax.management.RuntimeOperationsException
    procedure setFields(var para1: array of JLString; var para2: array of JLObject); overload; virtual;  // throws javax.management.RuntimeOperationsException
    function clone(): JLObject; overload; virtual;  // throws javax.management.RuntimeOperationsException
    procedure removeField(para1: JLString); overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function isValid(): jboolean; overload; virtual;  // throws javax.management.RuntimeOperationsException
    function toXMLString(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JNLinkRef = class external 'javax.naming' name 'LinkRef' (JNReference)
  public
    constructor create(para1: JNName); overload;
    constructor create(para1: JLString); overload;
    function getLinkName(): JLString; overload; virtual;  // throws javax.naming.NamingException
  end;

  JNDBasicAttribute = class external 'javax.naming.directory' name 'BasicAttribute' (JLObject, JNDAttribute)
  public
    type
      InnerValuesEnumImpl = class;
      Arr1InnerValuesEnumImpl = array of InnerValuesEnumImpl;
      Arr2InnerValuesEnumImpl = array of Arr1InnerValuesEnumImpl;
      Arr3InnerValuesEnumImpl = array of Arr2InnerValuesEnumImpl;
      InnerValuesEnumImpl = class external 'javax.naming.directory' name 'ValuesEnumImpl' 
      end;

  strict protected
    var
      fattrID: JLString; external name 'attrID';
      fvalues: JUVector; external name 'values';
      fordered: jboolean; external name 'ordered';
  public
    function clone(): JLObject; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLObject); overload;
    constructor create(para1: JLString; para2: jboolean); overload;
    constructor create(para1: JLString; para2: JLObject; para3: jboolean); overload;
    function getAll(): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
    function get(): JLObject; overload; virtual;  // throws javax.naming.NamingException
    function size(): jint; overload; virtual;
    function getID(): JLString; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function add(para1: JLObject): jboolean; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    procedure clear(); overload; virtual;
    function isOrdered(): jboolean; overload; virtual;
    function get(para1: jint): JLObject; overload; virtual;  // throws javax.naming.NamingException
    function remove(para1: jint): JLObject; overload; virtual;
    procedure add(para1: jint; para2: JLObject); overload; virtual;
    function &set(para1: jint; para2: JLObject): JLObject; overload; virtual;
    function getAttributeSyntaxDefinition(): JNDDirContext; overload; virtual;  // throws javax.naming.NamingException
    function getAttributeDefinition(): JNDDirContext; overload; virtual;  // throws javax.naming.NamingException
  end;

  JNDBasicAttributes = class external 'javax.naming.directory' name 'BasicAttributes' (JLObject, JNDAttributes)
  public
    type
      InnerAttrEnumImpl = class;
      Arr1InnerAttrEnumImpl = array of InnerAttrEnumImpl;
      Arr2InnerAttrEnumImpl = array of Arr1InnerAttrEnumImpl;
      Arr3InnerAttrEnumImpl = array of Arr2InnerAttrEnumImpl;
      InnerIDEnumImpl = class;
      Arr1InnerIDEnumImpl = array of InnerIDEnumImpl;
      Arr2InnerIDEnumImpl = array of Arr1InnerIDEnumImpl;
      Arr3InnerIDEnumImpl = array of Arr2InnerIDEnumImpl;
      InnerAttrEnumImpl = class external 'javax.naming.directory' name 'AttrEnumImpl' 
      end;

      InnerIDEnumImpl = class external 'javax.naming.directory' name 'IDEnumImpl' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: jboolean); overload;
    constructor create(para1: JLString; para2: JLObject); overload;
    constructor create(para1: JLString; para2: JLObject; para3: jboolean); overload;
    function clone(): JLObject; overload; virtual;
    function isCaseIgnored(): jboolean; overload; virtual;
    function size(): jint; overload; virtual;
    function get(para1: JLString): JNDAttribute; overload; virtual;
    function getAll(): JNNamingEnumeration; overload; virtual;
    function getIDs(): JNNamingEnumeration; overload; virtual;
    function put(para1: JLString; para2: JLObject): JNDAttribute; overload; virtual;
    function put(para1: JNDAttribute): JNDAttribute; overload; virtual;
    function remove(para1: JLString): JNDAttribute; overload; virtual;
    function toString(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JPASJobStateReason = class external 'javax.print.attribute.standard' name 'JobStateReason' (JPAEnumSyntax, JPAAttribute)
  public
    final class var
      fJOB_INCOMING: JPASJobStateReason; external name 'JOB_INCOMING';
      fJOB_DATA_INSUFFICIENT: JPASJobStateReason; external name 'JOB_DATA_INSUFFICIENT';
      fDOCUMENT_ACCESS_ERROR: JPASJobStateReason; external name 'DOCUMENT_ACCESS_ERROR';
      fSUBMISSION_INTERRUPTED: JPASJobStateReason; external name 'SUBMISSION_INTERRUPTED';
      fJOB_OUTGOING: JPASJobStateReason; external name 'JOB_OUTGOING';
      fJOB_HOLD_UNTIL_SPECIFIED: JPASJobStateReason; external name 'JOB_HOLD_UNTIL_SPECIFIED';
      fRESOURCES_ARE_NOT_READY: JPASJobStateReason; external name 'RESOURCES_ARE_NOT_READY';
      fPRINTER_STOPPED_PARTLY: JPASJobStateReason; external name 'PRINTER_STOPPED_PARTLY';
      fPRINTER_STOPPED: JPASJobStateReason; external name 'PRINTER_STOPPED';
      fJOB_INTERPRETING: JPASJobStateReason; external name 'JOB_INTERPRETING';
      fJOB_QUEUED: JPASJobStateReason; external name 'JOB_QUEUED';
      fJOB_TRANSFORMING: JPASJobStateReason; external name 'JOB_TRANSFORMING';
      fJOB_QUEUED_FOR_MARKER: JPASJobStateReason; external name 'JOB_QUEUED_FOR_MARKER';
      fJOB_PRINTING: JPASJobStateReason; external name 'JOB_PRINTING';
      fJOB_CANCELED_BY_USER: JPASJobStateReason; external name 'JOB_CANCELED_BY_USER';
      fJOB_CANCELED_BY_OPERATOR: JPASJobStateReason; external name 'JOB_CANCELED_BY_OPERATOR';
      fJOB_CANCELED_AT_DEVICE: JPASJobStateReason; external name 'JOB_CANCELED_AT_DEVICE';
      fABORTED_BY_SYSTEM: JPASJobStateReason; external name 'ABORTED_BY_SYSTEM';
      fUNSUPPORTED_COMPRESSION: JPASJobStateReason; external name 'UNSUPPORTED_COMPRESSION';
      fCOMPRESSION_ERROR: JPASJobStateReason; external name 'COMPRESSION_ERROR';
      fUNSUPPORTED_DOCUMENT_FORMAT: JPASJobStateReason; external name 'UNSUPPORTED_DOCUMENT_FORMAT';
      fDOCUMENT_FORMAT_ERROR: JPASJobStateReason; external name 'DOCUMENT_FORMAT_ERROR';
      fPROCESSING_TO_STOP_POINT: JPASJobStateReason; external name 'PROCESSING_TO_STOP_POINT';
      fSERVICE_OFF_LINE: JPASJobStateReason; external name 'SERVICE_OFF_LINE';
      fJOB_COMPLETED_SUCCESSFULLY: JPASJobStateReason; external name 'JOB_COMPLETED_SUCCESSFULLY';
      fJOB_COMPLETED_WITH_WARNINGS: JPASJobStateReason; external name 'JOB_COMPLETED_WITH_WARNINGS';
      fJOB_COMPLETED_WITH_ERRORS: JPASJobStateReason; external name 'JOB_COMPLETED_WITH_ERRORS';
      fJOB_RESTARTABLE: JPASJobStateReason; external name 'JOB_RESTARTABLE';
      fQUEUED_IN_DEVICE: JPASJobStateReason; external name 'QUEUED_IN_DEVICE';
  strict protected
    constructor create(para1: jint); overload;
    function getStringTable(): Arr1JLString; overload; virtual;
    function getEnumValueTable(): Arr1JPAEnumSyntax; overload; virtual;
  public
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASPrinterStateReason = class external 'javax.print.attribute.standard' name 'PrinterStateReason' (JPAEnumSyntax, JPAAttribute)
  public
    final class var
      fOTHER: JPASPrinterStateReason; external name 'OTHER';
      fMEDIA_NEEDED: JPASPrinterStateReason; external name 'MEDIA_NEEDED';
      fMEDIA_JAM: JPASPrinterStateReason; external name 'MEDIA_JAM';
      fMOVING_TO_PAUSED: JPASPrinterStateReason; external name 'MOVING_TO_PAUSED';
      fPAUSED: JPASPrinterStateReason; external name 'PAUSED';
      fSHUTDOWN: JPASPrinterStateReason; external name 'SHUTDOWN';
      fCONNECTING_TO_DEVICE: JPASPrinterStateReason; external name 'CONNECTING_TO_DEVICE';
      fTIMED_OUT: JPASPrinterStateReason; external name 'TIMED_OUT';
      fSTOPPING: JPASPrinterStateReason; external name 'STOPPING';
      fSTOPPED_PARTLY: JPASPrinterStateReason; external name 'STOPPED_PARTLY';
      fTONER_LOW: JPASPrinterStateReason; external name 'TONER_LOW';
      fTONER_EMPTY: JPASPrinterStateReason; external name 'TONER_EMPTY';
      fSPOOL_AREA_FULL: JPASPrinterStateReason; external name 'SPOOL_AREA_FULL';
      fCOVER_OPEN: JPASPrinterStateReason; external name 'COVER_OPEN';
      fINTERLOCK_OPEN: JPASPrinterStateReason; external name 'INTERLOCK_OPEN';
      fDOOR_OPEN: JPASPrinterStateReason; external name 'DOOR_OPEN';
      fINPUT_TRAY_MISSING: JPASPrinterStateReason; external name 'INPUT_TRAY_MISSING';
      fMEDIA_LOW: JPASPrinterStateReason; external name 'MEDIA_LOW';
      fMEDIA_EMPTY: JPASPrinterStateReason; external name 'MEDIA_EMPTY';
      fOUTPUT_TRAY_MISSING: JPASPrinterStateReason; external name 'OUTPUT_TRAY_MISSING';
      fOUTPUT_AREA_ALMOST_FULL: JPASPrinterStateReason; external name 'OUTPUT_AREA_ALMOST_FULL';
      fOUTPUT_AREA_FULL: JPASPrinterStateReason; external name 'OUTPUT_AREA_FULL';
      fMARKER_SUPPLY_LOW: JPASPrinterStateReason; external name 'MARKER_SUPPLY_LOW';
      fMARKER_SUPPLY_EMPTY: JPASPrinterStateReason; external name 'MARKER_SUPPLY_EMPTY';
      fMARKER_WASTE_ALMOST_FULL: JPASPrinterStateReason; external name 'MARKER_WASTE_ALMOST_FULL';
      fMARKER_WASTE_FULL: JPASPrinterStateReason; external name 'MARKER_WASTE_FULL';
      fFUSER_OVER_TEMP: JPASPrinterStateReason; external name 'FUSER_OVER_TEMP';
      fFUSER_UNDER_TEMP: JPASPrinterStateReason; external name 'FUSER_UNDER_TEMP';
      fOPC_NEAR_EOL: JPASPrinterStateReason; external name 'OPC_NEAR_EOL';
      fOPC_LIFE_OVER: JPASPrinterStateReason; external name 'OPC_LIFE_OVER';
      fDEVELOPER_LOW: JPASPrinterStateReason; external name 'DEVELOPER_LOW';
      fDEVELOPER_EMPTY: JPASPrinterStateReason; external name 'DEVELOPER_EMPTY';
      fINTERPRETER_RESOURCE_UNAVAILABLE: JPASPrinterStateReason; external name 'INTERPRETER_RESOURCE_UNAVAILABLE';
  strict protected
    constructor create(para1: jint); overload;
    function getStringTable(): Arr1JLString; overload; virtual;
    function getEnumValueTable(): Arr1JPAEnumSyntax; overload; virtual;
  public
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASReferenceUriSchemesSupported = class external 'javax.print.attribute.standard' name 'ReferenceUriSchemesSupported' (JPAEnumSyntax, JPAAttribute)
  public
    final class var
      fFTP: JPASReferenceUriSchemesSupported; external name 'FTP';
      fHTTP: JPASReferenceUriSchemesSupported; external name 'HTTP';
      fHTTPS: JPASReferenceUriSchemesSupported; external name 'HTTPS';
      fGOPHER: JPASReferenceUriSchemesSupported; external name 'GOPHER';
      fNEWS: JPASReferenceUriSchemesSupported; external name 'NEWS';
      fNNTP: JPASReferenceUriSchemesSupported; external name 'NNTP';
      fWAIS: JPASReferenceUriSchemesSupported; external name 'WAIS';
      fFILE: JPASReferenceUriSchemesSupported; external name 'FILE';
  strict protected
    constructor create(para1: jint); overload;
    function getStringTable(): Arr1JLString; overload; virtual;
    function getEnumValueTable(): Arr1JPAEnumSyntax; overload; virtual;
  public
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASSeverity = class sealed external 'javax.print.attribute.standard' name 'Severity' (JPAEnumSyntax, JPAAttribute)
  public
    final class var
      fREPORT: JPASSeverity; external name 'REPORT';
      fWARNING: JPASSeverity; external name 'WARNING';
      fERROR: JPASSeverity; external name 'ERROR';
  strict protected
    constructor create(para1: jint); overload;
    function getStringTable(): Arr1JLString; overload; virtual;
    function getEnumValueTable(): Arr1JPAEnumSyntax; overload; virtual;
  public
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASMediaSize = class external 'javax.print.attribute.standard' name 'MediaSize' (JPASize2DSyntax, JPAAttribute)
  public
    type
      InnerEngineering = class;
      Arr1InnerEngineering = array of InnerEngineering;
      Arr2InnerEngineering = array of Arr1InnerEngineering;
      Arr3InnerEngineering = array of Arr2InnerEngineering;
      InnerISO = class;
      Arr1InnerISO = array of InnerISO;
      Arr2InnerISO = array of Arr1InnerISO;
      Arr3InnerISO = array of Arr2InnerISO;
      InnerJIS = class;
      Arr1InnerJIS = array of InnerJIS;
      Arr2InnerJIS = array of Arr1InnerJIS;
      Arr3InnerJIS = array of Arr2InnerJIS;
      InnerNA = class;
      Arr1InnerNA = array of InnerNA;
      Arr2InnerNA = array of Arr1InnerNA;
      Arr3InnerNA = array of Arr2InnerNA;
      InnerOther = class;
      Arr1InnerOther = array of InnerOther;
      Arr2InnerOther = array of Arr1InnerOther;
      Arr3InnerOther = array of Arr2InnerOther;
      InnerEngineering = class sealed external 'javax.print.attribute.standard' name 'Engineering' (JLObject)
      public
        final class var
          fA: JPASMediaSize; external name 'A';
          fB: JPASMediaSize; external name 'B';
          fC: JPASMediaSize; external name 'C';
          fD: JPASMediaSize; external name 'D';
          fE: JPASMediaSize; external name 'E';
      end;

      InnerISO = class sealed external 'javax.print.attribute.standard' name 'ISO' (JLObject)
      public
        final class var
          fA0: JPASMediaSize; external name 'A0';
          fA1: JPASMediaSize; external name 'A1';
          fA2: JPASMediaSize; external name 'A2';
          fA3: JPASMediaSize; external name 'A3';
          fA4: JPASMediaSize; external name 'A4';
          fA5: JPASMediaSize; external name 'A5';
          fA6: JPASMediaSize; external name 'A6';
          fA7: JPASMediaSize; external name 'A7';
          fA8: JPASMediaSize; external name 'A8';
          fA9: JPASMediaSize; external name 'A9';
          fA10: JPASMediaSize; external name 'A10';
          fB0: JPASMediaSize; external name 'B0';
          fB1: JPASMediaSize; external name 'B1';
          fB2: JPASMediaSize; external name 'B2';
          fB3: JPASMediaSize; external name 'B3';
          fB4: JPASMediaSize; external name 'B4';
          fB5: JPASMediaSize; external name 'B5';
          fB6: JPASMediaSize; external name 'B6';
          fB7: JPASMediaSize; external name 'B7';
          fB8: JPASMediaSize; external name 'B8';
          fB9: JPASMediaSize; external name 'B9';
          fB10: JPASMediaSize; external name 'B10';
          fC3: JPASMediaSize; external name 'C3';
          fC4: JPASMediaSize; external name 'C4';
          fC5: JPASMediaSize; external name 'C5';
          fC6: JPASMediaSize; external name 'C6';
          fDESIGNATED_LONG: JPASMediaSize; external name 'DESIGNATED_LONG';
      end;

      InnerJIS = class sealed external 'javax.print.attribute.standard' name 'JIS' (JLObject)
      public
        final class var
          fB0: JPASMediaSize; external name 'B0';
          fB1: JPASMediaSize; external name 'B1';
          fB2: JPASMediaSize; external name 'B2';
          fB3: JPASMediaSize; external name 'B3';
          fB4: JPASMediaSize; external name 'B4';
          fB5: JPASMediaSize; external name 'B5';
          fB6: JPASMediaSize; external name 'B6';
          fB7: JPASMediaSize; external name 'B7';
          fB8: JPASMediaSize; external name 'B8';
          fB9: JPASMediaSize; external name 'B9';
          fB10: JPASMediaSize; external name 'B10';
          fCHOU_1: JPASMediaSize; external name 'CHOU_1';
          fCHOU_2: JPASMediaSize; external name 'CHOU_2';
          fCHOU_3: JPASMediaSize; external name 'CHOU_3';
          fCHOU_4: JPASMediaSize; external name 'CHOU_4';
          fCHOU_30: JPASMediaSize; external name 'CHOU_30';
          fCHOU_40: JPASMediaSize; external name 'CHOU_40';
          fKAKU_0: JPASMediaSize; external name 'KAKU_0';
          fKAKU_1: JPASMediaSize; external name 'KAKU_1';
          fKAKU_2: JPASMediaSize; external name 'KAKU_2';
          fKAKU_3: JPASMediaSize; external name 'KAKU_3';
          fKAKU_4: JPASMediaSize; external name 'KAKU_4';
          fKAKU_5: JPASMediaSize; external name 'KAKU_5';
          fKAKU_6: JPASMediaSize; external name 'KAKU_6';
          fKAKU_7: JPASMediaSize; external name 'KAKU_7';
          fKAKU_8: JPASMediaSize; external name 'KAKU_8';
          fKAKU_20: JPASMediaSize; external name 'KAKU_20';
          fKAKU_A4: JPASMediaSize; external name 'KAKU_A4';
          fYOU_1: JPASMediaSize; external name 'YOU_1';
          fYOU_2: JPASMediaSize; external name 'YOU_2';
          fYOU_3: JPASMediaSize; external name 'YOU_3';
          fYOU_4: JPASMediaSize; external name 'YOU_4';
          fYOU_5: JPASMediaSize; external name 'YOU_5';
          fYOU_6: JPASMediaSize; external name 'YOU_6';
          fYOU_7: JPASMediaSize; external name 'YOU_7';
      end;

      InnerNA = class sealed external 'javax.print.attribute.standard' name 'NA' (JLObject)
      public
        final class var
          fLETTER: JPASMediaSize; external name 'LETTER';
          fLEGAL: JPASMediaSize; external name 'LEGAL';
          fNA_5X7: JPASMediaSize; external name 'NA_5X7';
          fNA_8X10: JPASMediaSize; external name 'NA_8X10';
          fNA_NUMBER_9_ENVELOPE: JPASMediaSize; external name 'NA_NUMBER_9_ENVELOPE';
          fNA_NUMBER_10_ENVELOPE: JPASMediaSize; external name 'NA_NUMBER_10_ENVELOPE';
          fNA_NUMBER_11_ENVELOPE: JPASMediaSize; external name 'NA_NUMBER_11_ENVELOPE';
          fNA_NUMBER_12_ENVELOPE: JPASMediaSize; external name 'NA_NUMBER_12_ENVELOPE';
          fNA_NUMBER_14_ENVELOPE: JPASMediaSize; external name 'NA_NUMBER_14_ENVELOPE';
          fNA_6X9_ENVELOPE: JPASMediaSize; external name 'NA_6X9_ENVELOPE';
          fNA_7X9_ENVELOPE: JPASMediaSize; external name 'NA_7X9_ENVELOPE';
          fNA_9x11_ENVELOPE: JPASMediaSize; external name 'NA_9x11_ENVELOPE';
          fNA_9x12_ENVELOPE: JPASMediaSize; external name 'NA_9x12_ENVELOPE';
          fNA_10x13_ENVELOPE: JPASMediaSize; external name 'NA_10x13_ENVELOPE';
          fNA_10x14_ENVELOPE: JPASMediaSize; external name 'NA_10x14_ENVELOPE';
          fNA_10X15_ENVELOPE: JPASMediaSize; external name 'NA_10X15_ENVELOPE';
      end;

      InnerOther = class sealed external 'javax.print.attribute.standard' name 'Other' (JLObject)
      public
        final class var
          fEXECUTIVE: JPASMediaSize; external name 'EXECUTIVE';
          fLEDGER: JPASMediaSize; external name 'LEDGER';
          fTABLOID: JPASMediaSize; external name 'TABLOID';
          fINVOICE: JPASMediaSize; external name 'INVOICE';
          fFOLIO: JPASMediaSize; external name 'FOLIO';
          fQUARTO: JPASMediaSize; external name 'QUARTO';
          fITALY_ENVELOPE: JPASMediaSize; external name 'ITALY_ENVELOPE';
          fMONARCH_ENVELOPE: JPASMediaSize; external name 'MONARCH_ENVELOPE';
          fPERSONAL_ENVELOPE: JPASMediaSize; external name 'PERSONAL_ENVELOPE';
          fJAPANESE_POSTCARD: JPASMediaSize; external name 'JAPANESE_POSTCARD';
          fJAPANESE_DOUBLE_POSTCARD: JPASMediaSize; external name 'JAPANESE_DOUBLE_POSTCARD';
      end;

  public
    constructor create(para1: jfloat; para2: jfloat; para3: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint); overload;
    constructor create(para1: jfloat; para2: jfloat; para3: jint; para4: JPASMediaSizeName); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: JPASMediaSizeName); overload;
    function getMediaSizeName(): JPASMediaSizeName; overload; virtual;
    class function getMediaSizeForName(para1: JPASMediaSizeName): JPASMediaSize; static; overload;
    class function findMedia(para1: jfloat; para2: jfloat; para3: jint): JPASMediaSizeName; static; overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JSMMetaMessage = class external 'javax.sound.midi' name 'MetaMessage' (JSMMidiMessage)
  public
    const
      META = 255;
  public
    constructor create(); overload;
  strict protected
    constructor create(para1: Arr1jbyte); overload;
    constructor create(const para1: array of jbyte); overload;
  public
    procedure setMessage(para1: jint; para2: Arr1jbyte; para3: jint); overload; virtual;  // throws javax.sound.midi.InvalidMidiDataException
    procedure setMessage(para1: jint; var para2: array of jbyte; para3: jint); overload; virtual;  // throws javax.sound.midi.InvalidMidiDataException
    function getType(): jint; overload; virtual;
    function getData(): Arr1jbyte; overload; virtual;
    function clone(): JLObject; overload; virtual;
  end;

  JSMShortMessage = class external 'javax.sound.midi' name 'ShortMessage' (JSMMidiMessage)
  public
    const
      MIDI_TIME_CODE = 241;
      SONG_POSITION_POINTER = 242;
      SONG_SELECT = 243;
      TUNE_REQUEST = 246;
      END_OF_EXCLUSIVE = 247;
      TIMING_CLOCK = 248;
      START = 250;
      CONTINUE = 251;
      STOP = 252;
      ACTIVE_SENSING = 254;
      SYSTEM_RESET = 255;
      NOTE_OFF = 128;
      NOTE_ON = 144;
      POLY_PRESSURE = 160;
      CONTROL_CHANGE = 176;
      PROGRAM_CHANGE = 192;
      CHANNEL_PRESSURE = 208;
      PITCH_BEND = 224;
  public
    constructor create(); overload;
  strict protected
    constructor create(para1: Arr1jbyte); overload;
    constructor create(const para1: array of jbyte); overload;
  public
    procedure setMessage(para1: jint); overload; virtual;  // throws javax.sound.midi.InvalidMidiDataException
    procedure setMessage(para1: jint; para2: jint; para3: jint); overload; virtual;  // throws javax.sound.midi.InvalidMidiDataException
    procedure setMessage(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;  // throws javax.sound.midi.InvalidMidiDataException
    function getChannel(): jint; overload; virtual;
    function getCommand(): jint; overload; virtual;
    function getData1(): jint; overload; virtual;
    function getData2(): jint; overload; virtual;
    function clone(): JLObject; overload; virtual;
  strict protected
    function getDataLength(para1: jint): jint; overload; virtual; final;  // throws javax.sound.midi.InvalidMidiDataException
  end;

  JSMSysexMessage = class external 'javax.sound.midi' name 'SysexMessage' (JSMMidiMessage)
  public
    const
      SYSTEM_EXCLUSIVE = 240;
      SPECIAL_SYSTEM_EXCLUSIVE = 247;
  public
    constructor create(); overload;
  strict protected
    constructor create(para1: Arr1jbyte); overload;
    constructor create(const para1: array of jbyte); overload;
  public
    procedure setMessage(para1: Arr1jbyte; para2: jint); overload; virtual;  // throws javax.sound.midi.InvalidMidiDataException
    procedure setMessage(var para1: array of jbyte; para2: jint); overload; virtual;  // throws javax.sound.midi.InvalidMidiDataException
    procedure setMessage(para1: jint; para2: Arr1jbyte; para3: jint); overload; virtual;  // throws javax.sound.midi.InvalidMidiDataException
    procedure setMessage(para1: jint; var para2: array of jbyte; para3: jint); overload; virtual;  // throws javax.sound.midi.InvalidMidiDataException
    function getData(): Arr1jbyte; overload; virtual;
    function clone(): JLObject; overload; virtual;
  end;

  JAPDesktopPeer = interface external 'java.awt.peer' name 'DesktopPeer' 
    function isSupported(para1: JADesktop.InnerAction): jboolean; overload;
    procedure open(para1: JIFile); overload;  // throws java.io.IOException
    procedure edit(para1: JIFile); overload;  // throws java.io.IOException
    procedure print(para1: JIFile); overload;  // throws java.io.IOException
    procedure mail(para1: JNURI); overload;  // throws java.io.IOException
    procedure browse(para1: JNURI); overload;  // throws java.io.IOException
  end;

  JAModalEventFilter = class abstract external 'java.awt' name 'ModalEventFilter' (JLObject, JAEventFilter)
  public
    type
      InnerApplicationModalEventFilter = class;
      Arr1InnerApplicationModalEventFilter = array of InnerApplicationModalEventFilter;
      Arr2InnerApplicationModalEventFilter = array of Arr1InnerApplicationModalEventFilter;
      Arr3InnerApplicationModalEventFilter = array of Arr2InnerApplicationModalEventFilter;
      InnerDocumentModalEventFilter = class;
      Arr1InnerDocumentModalEventFilter = array of InnerDocumentModalEventFilter;
      Arr2InnerDocumentModalEventFilter = array of Arr1InnerDocumentModalEventFilter;
      Arr3InnerDocumentModalEventFilter = array of Arr2InnerDocumentModalEventFilter;
      InnerToolkitModalEventFilter = class;
      Arr1InnerToolkitModalEventFilter = array of InnerToolkitModalEventFilter;
      Arr2InnerToolkitModalEventFilter = array of Arr1InnerToolkitModalEventFilter;
      Arr3InnerToolkitModalEventFilter = array of Arr2InnerToolkitModalEventFilter;
      InnerApplicationModalEventFilter = class external 'java.awt' name 'ApplicationModalEventFilter' 
      end;

      InnerDocumentModalEventFilter = class external 'java.awt' name 'DocumentModalEventFilter' 
      end;

      InnerToolkitModalEventFilter = class external 'java.awt' name 'ToolkitModalEventFilter' 
      end;

  strict protected
    var
      fmodalDialog: JADialog; external name 'modalDialog';
      fdisabled: jboolean; external name 'disabled';
  strict protected
    constructor create(para1: JADialog); overload;
  public
    function acceptEvent(para1: JAAWTEvent): JAEventFilter.InnerFilterAction; overload; virtual;
  strict protected
    function acceptWindow(para1: JAWindow): JAEventFilter.InnerFilterAction; overload; virtual; abstract;
  end;

  JNSSSLEngine = class abstract external 'javax.net.ssl' name 'SSLEngine' (JLObject)
  strict protected
    constructor create(); overload;
    constructor create(para1: JLString; para2: jint); overload;
  public
    function getPeerHost(): JLString; overload; virtual;
    function getPeerPort(): jint; overload; virtual;
    function wrap(para1: JNByteBuffer; para2: JNByteBuffer): JNSSSLEngineResult; overload; virtual;  // throws javax.net.ssl.SSLException
    function wrap(para1: Arr1JNByteBuffer; para2: JNByteBuffer): JNSSSLEngineResult; overload; virtual;  // throws javax.net.ssl.SSLException
    function wrap(var para1: array of JNByteBuffer; para2: JNByteBuffer): JNSSSLEngineResult; overload; virtual;  // throws javax.net.ssl.SSLException
    function wrap(para1: Arr1JNByteBuffer; para2: jint; para3: jint; para4: JNByteBuffer): JNSSSLEngineResult; overload; virtual; abstract;  // throws javax.net.ssl.SSLException
    function wrap(var para1: array of JNByteBuffer; para2: jint; para3: jint; para4: JNByteBuffer): JNSSSLEngineResult; overload; virtual; abstract;  // throws javax.net.ssl.SSLException
    function unwrap(para1: JNByteBuffer; para2: JNByteBuffer): JNSSSLEngineResult; overload; virtual;  // throws javax.net.ssl.SSLException
    function unwrap(para1: JNByteBuffer; para2: Arr1JNByteBuffer): JNSSSLEngineResult; overload; virtual;  // throws javax.net.ssl.SSLException
    function unwrap(para1: JNByteBuffer; var para2: array of JNByteBuffer): JNSSSLEngineResult; overload; virtual;  // throws javax.net.ssl.SSLException
    function unwrap(para1: JNByteBuffer; para2: Arr1JNByteBuffer; para3: jint; para4: jint): JNSSSLEngineResult; overload; virtual; abstract;  // throws javax.net.ssl.SSLException
    function unwrap(para1: JNByteBuffer; var para2: array of JNByteBuffer; para3: jint; para4: jint): JNSSSLEngineResult; overload; virtual; abstract;  // throws javax.net.ssl.SSLException
    function getDelegatedTask(): JLRunnable; overload; virtual; abstract;
    procedure closeInbound(); overload; virtual; abstract;  // throws javax.net.ssl.SSLException
    function isInboundDone(): jboolean; overload; virtual; abstract;
    procedure closeOutbound(); overload; virtual; abstract;
    function isOutboundDone(): jboolean; overload; virtual; abstract;
    function getSupportedCipherSuites(): Arr1JLString; overload; virtual; abstract;
    function getEnabledCipherSuites(): Arr1JLString; overload; virtual; abstract;
    procedure setEnabledCipherSuites(para1: Arr1JLString); overload; virtual; abstract;
    procedure setEnabledCipherSuites(var para1: array of JLString); overload; virtual; abstract;
    function getSupportedProtocols(): Arr1JLString; overload; virtual; abstract;
    function getEnabledProtocols(): Arr1JLString; overload; virtual; abstract;
    procedure setEnabledProtocols(para1: Arr1JLString); overload; virtual; abstract;
    procedure setEnabledProtocols(var para1: array of JLString); overload; virtual; abstract;
    function getSession(): JNSSSLSession; overload; virtual; abstract;
    procedure beginHandshake(); overload; virtual; abstract;  // throws javax.net.ssl.SSLException
    function getHandshakeStatus(): JNSSSLEngineResult.InnerHandshakeStatus; overload; virtual; abstract;
    procedure setUseClientMode(para1: jboolean); overload; virtual; abstract;
    function getUseClientMode(): jboolean; overload; virtual; abstract;
    procedure setNeedClientAuth(para1: jboolean); overload; virtual; abstract;
    function getNeedClientAuth(): jboolean; overload; virtual; abstract;
    procedure setWantClientAuth(para1: jboolean); overload; virtual; abstract;
    function getWantClientAuth(): jboolean; overload; virtual; abstract;
    procedure setEnableSessionCreation(para1: jboolean); overload; virtual; abstract;
    function getEnableSessionCreation(): jboolean; overload; virtual; abstract;
    function getSSLParameters(): JNSSSLParameters; overload; virtual;
    procedure setSSLParameters(para1: JNSSSLParameters); overload; virtual;
  end;

  JAPMessager = interface external 'javax.annotation.processing' name 'Messager' 
    procedure printMessage(para1: JTDiagnostic.InnerKind; para2: JLCharSequence); overload;
    procedure printMessage(para1: JTDiagnostic.InnerKind; para2: JLCharSequence; para3: JLMEElement); overload;
    procedure printMessage(para1: JTDiagnostic.InnerKind; para2: JLCharSequence; para3: JLMEElement; para4: JLMEAnnotationMirror); overload;
    procedure printMessage(para1: JTDiagnostic.InnerKind; para2: JLCharSequence; para3: JLMEElement; para4: JLMEAnnotationMirror; para5: JLMEAnnotationValue); overload;
  end;

  JXWServiceMode = interface external 'javax.xml.ws' name 'ServiceMode' (JLAAnnotation)
    function value(): JXWService.InnerMode; overload;
  end;

  JXWSServiceDelegate = class abstract external 'javax.xml.ws.spi' name 'ServiceDelegate' (JLObject)
  strict protected
    constructor create(); overload;
  public
    function getPort(para1: JXNQName; para2: JLClass): JLObject; overload; virtual; abstract;
    function getPort(para1: JXNQName; para2: JLClass; para3: Arr1JXWWebServiceFeature): JLObject; overload; virtual; abstract;
    function getPort(para1: JXNQName; para2: JLClass; const para3: array of JXWWebServiceFeature): JLObject; overload; virtual; abstract;
    function getPort(para1: JXWEndpointReference; para2: JLClass; para3: Arr1JXWWebServiceFeature): JLObject; overload; virtual; abstract;
    function getPort(para1: JXWEndpointReference; para2: JLClass; const para3: array of JXWWebServiceFeature): JLObject; overload; virtual; abstract;
    function getPort(para1: JLClass): JLObject; overload; virtual; abstract;
    function getPort(para1: JLClass; para2: Arr1JXWWebServiceFeature): JLObject; overload; virtual; abstract;
    function getPort(para1: JLClass; const para2: array of JXWWebServiceFeature): JLObject; overload; virtual; abstract;
    procedure addPort(para1: JXNQName; para2: JLString; para3: JLString); overload; virtual; abstract;
    function createDispatch(para1: JXNQName; para2: JLClass; para3: JXWService.InnerMode): JXWDispatch; overload; virtual; abstract;
    function createDispatch(para1: JXNQName; para2: JLClass; para3: JXWService.InnerMode; para4: Arr1JXWWebServiceFeature): JXWDispatch; overload; virtual; abstract;
    function createDispatch(para1: JXNQName; para2: JLClass; para3: JXWService.InnerMode; const para4: array of JXWWebServiceFeature): JXWDispatch; overload; virtual; abstract;
    function createDispatch(para1: JXWEndpointReference; para2: JLClass; para3: JXWService.InnerMode; para4: Arr1JXWWebServiceFeature): JXWDispatch; overload; virtual; abstract;
    function createDispatch(para1: JXWEndpointReference; para2: JLClass; para3: JXWService.InnerMode; const para4: array of JXWWebServiceFeature): JXWDispatch; overload; virtual; abstract;
    function createDispatch(para1: JXNQName; para2: JXBJAXBContext; para3: JXWService.InnerMode): JXWDispatch; overload; virtual; abstract;
    function createDispatch(para1: JXNQName; para2: JXBJAXBContext; para3: JXWService.InnerMode; para4: Arr1JXWWebServiceFeature): JXWDispatch; overload; virtual; abstract;
    function createDispatch(para1: JXNQName; para2: JXBJAXBContext; para3: JXWService.InnerMode; const para4: array of JXWWebServiceFeature): JXWDispatch; overload; virtual; abstract;
    function createDispatch(para1: JXWEndpointReference; para2: JXBJAXBContext; para3: JXWService.InnerMode; para4: Arr1JXWWebServiceFeature): JXWDispatch; overload; virtual; abstract;
    function createDispatch(para1: JXWEndpointReference; para2: JXBJAXBContext; para3: JXWService.InnerMode; const para4: array of JXWWebServiceFeature): JXWDispatch; overload; virtual; abstract;
    function getServiceName(): JXNQName; overload; virtual; abstract;
    function getPorts(): JUIterator; overload; virtual; abstract;
    function getWSDLDocumentLocation(): JNURL; overload; virtual; abstract;
    function getHandlerResolver(): JXWHHandlerResolver; overload; virtual; abstract;
    procedure setHandlerResolver(para1: JXWHHandlerResolver); overload; virtual; abstract;
    function getExecutor(): JUCExecutor; overload; virtual; abstract;
    procedure setExecutor(para1: JUCExecutor); overload; virtual; abstract;
  end;

  JAGraphics2D = class abstract external 'java.awt' name 'Graphics2D' (JAGraphics)
  strict protected
    constructor create(); overload;
  public
    procedure draw3DRect(para1: jint; para2: jint; para3: jint; para4: jint; para5: jboolean); overload; virtual;
    procedure fill3DRect(para1: jint; para2: jint; para3: jint; para4: jint; para5: jboolean); overload; virtual;
    procedure draw(para1: JAShape); overload; virtual; abstract;
    function drawImage(para1: JAImage; para2: JAGAffineTransform; para3: JAIImageObserver): jboolean; overload; virtual; abstract;
    procedure drawImage(para1: JAIBufferedImage; para2: JAIBufferedImageOp; para3: jint; para4: jint); overload; virtual; abstract;
    procedure drawRenderedImage(para1: JAIRenderedImage; para2: JAGAffineTransform); overload; virtual; abstract;
    procedure drawRenderableImage(para1: JAIRRenderableImage; para2: JAGAffineTransform); overload; virtual; abstract;
    procedure drawString(para1: JLString; para2: jint; para3: jint); overload; virtual; abstract;
    procedure drawString(para1: JLString; para2: jfloat; para3: jfloat); overload; virtual; abstract;
    procedure drawString(para1: JTAttributedCharacterIterator; para2: jint; para3: jint); overload; virtual; abstract;
    procedure drawString(para1: JTAttributedCharacterIterator; para2: jfloat; para3: jfloat); overload; virtual; abstract;
    procedure drawGlyphVector(para1: JAFGlyphVector; para2: jfloat; para3: jfloat); overload; virtual; abstract;
    procedure fill(para1: JAShape); overload; virtual; abstract;
    function hit(para1: JARectangle; para2: JAShape; para3: jboolean): jboolean; overload; virtual; abstract;
    function getDeviceConfiguration(): JAGraphicsConfiguration; overload; virtual; abstract;
    procedure setComposite(para1: JAComposite); overload; virtual; abstract;
    procedure setPaint(para1: JAPaint); overload; virtual; abstract;
    procedure setStroke(para1: JAStroke); overload; virtual; abstract;
    procedure setRenderingHint(para1: JARenderingHints.InnerKey; para2: JLObject); overload; virtual; abstract;
    function getRenderingHint(para1: JARenderingHints.InnerKey): JLObject; overload; virtual; abstract;
    procedure setRenderingHints(para1: JUMap); overload; virtual; abstract;
    procedure addRenderingHints(para1: JUMap); overload; virtual; abstract;
    function getRenderingHints(): JARenderingHints; overload; virtual; abstract;
    procedure translate(para1: jint; para2: jint); overload; virtual; abstract;
    procedure translate(para1: jdouble; para2: jdouble); overload; virtual; abstract;
    procedure rotate(para1: jdouble); overload; virtual; abstract;
    procedure rotate(para1: jdouble; para2: jdouble; para3: jdouble); overload; virtual; abstract;
    procedure scale(para1: jdouble; para2: jdouble); overload; virtual; abstract;
    procedure shear(para1: jdouble; para2: jdouble); overload; virtual; abstract;
    procedure transform(para1: JAGAffineTransform); overload; virtual; abstract;
    procedure setTransform(para1: JAGAffineTransform); overload; virtual; abstract;
    function getTransform(): JAGAffineTransform; overload; virtual; abstract;
    function getPaint(): JAPaint; overload; virtual; abstract;
    function getComposite(): JAComposite; overload; virtual; abstract;
    procedure setBackground(para1: JAColor); overload; virtual; abstract;
    function getBackground(): JAColor; overload; virtual; abstract;
    function getStroke(): JAStroke; overload; virtual; abstract;
    procedure clip(para1: JAShape); overload; virtual; abstract;
    function getFontRenderContext(): JAFFontRenderContext; overload; virtual; abstract;
  end;

  JUNavigableMap = interface external 'java.util' name 'NavigableMap' (JUSortedMap)
    function lowerEntry(para1: JLObject): JUMap.InnerEntry; overload;
    function lowerKey(para1: JLObject): JLObject; overload;
    function floorEntry(para1: JLObject): JUMap.InnerEntry; overload;
    function floorKey(para1: JLObject): JLObject; overload;
    function ceilingEntry(para1: JLObject): JUMap.InnerEntry; overload;
    function ceilingKey(para1: JLObject): JLObject; overload;
    function higherEntry(para1: JLObject): JUMap.InnerEntry; overload;
    function higherKey(para1: JLObject): JLObject; overload;
    function firstEntry(): JUMap.InnerEntry; overload;
    function lastEntry(): JUMap.InnerEntry; overload;
    function pollFirstEntry(): JUMap.InnerEntry; overload;
    function pollLastEntry(): JUMap.InnerEntry; overload;
    function descendingMap(): JUNavigableMap; overload;
    function navigableKeySet(): JUNavigableSet; overload;
    function descendingKeySet(): JUNavigableSet; overload;
    function subMap(para1: JLObject; para2: jboolean; para3: JLObject; para4: jboolean): JUNavigableMap; overload;
    function headMap(para1: JLObject; para2: jboolean): JUNavigableMap; overload;
    function tailMap(para1: JLObject; para2: jboolean): JUNavigableMap; overload;
    function subMap(para1: JLObject; para2: JLObject): JUSortedMap; overload;
    function headMap(para1: JLObject): JUSortedMap; overload;
    function tailMap(para1: JLObject): JUSortedMap; overload;
  end;

  JUCConcurrentHashMap = class external 'java.util.concurrent' name 'ConcurrentHashMap' (JUAbstractMap, JUCConcurrentMap, JISerializable)
  public
    type
      InnerEntryIterator = class;
      Arr1InnerEntryIterator = array of InnerEntryIterator;
      Arr2InnerEntryIterator = array of Arr1InnerEntryIterator;
      Arr3InnerEntryIterator = array of Arr2InnerEntryIterator;
      InnerEntrySet = class;
      Arr1InnerEntrySet = array of InnerEntrySet;
      Arr2InnerEntrySet = array of Arr1InnerEntrySet;
      Arr3InnerEntrySet = array of Arr2InnerEntrySet;
      InnerKeySet = class;
      Arr1InnerKeySet = array of InnerKeySet;
      Arr2InnerKeySet = array of Arr1InnerKeySet;
      Arr3InnerKeySet = array of Arr2InnerKeySet;
      InnerHashEntry = class;
      Arr1InnerHashEntry = array of InnerHashEntry;
      Arr2InnerHashEntry = array of Arr1InnerHashEntry;
      Arr3InnerHashEntry = array of Arr2InnerHashEntry;
      InnerHashIterator = class;
      Arr1InnerHashIterator = array of InnerHashIterator;
      Arr2InnerHashIterator = array of Arr1InnerHashIterator;
      Arr3InnerHashIterator = array of Arr2InnerHashIterator;
      InnerKeyIterator = class;
      Arr1InnerKeyIterator = array of InnerKeyIterator;
      Arr2InnerKeyIterator = array of Arr1InnerKeyIterator;
      Arr3InnerKeyIterator = array of Arr2InnerKeyIterator;
      InnerValueIterator = class;
      Arr1InnerValueIterator = array of InnerValueIterator;
      Arr2InnerValueIterator = array of Arr1InnerValueIterator;
      Arr3InnerValueIterator = array of Arr2InnerValueIterator;
      InnerSegment = class;
      Arr1InnerSegment = array of InnerSegment;
      Arr2InnerSegment = array of Arr1InnerSegment;
      Arr3InnerSegment = array of Arr2InnerSegment;
      InnerValues = class;
      Arr1InnerValues = array of InnerValues;
      Arr2InnerValues = array of Arr1InnerValues;
      Arr3InnerValues = array of Arr2InnerValues;
      InnerWriteThroughEntry = class;
      Arr1InnerWriteThroughEntry = array of InnerWriteThroughEntry;
      Arr2InnerWriteThroughEntry = array of Arr1InnerWriteThroughEntry;
      Arr3InnerWriteThroughEntry = array of Arr2InnerWriteThroughEntry;
      InnerEntryIterator = class sealed external 'java.util.concurrent' name 'EntryIterator' 
      end;

      InnerEntrySet = class sealed external 'java.util.concurrent' name 'EntrySet' 
      end;

      InnerKeySet = class sealed external 'java.util.concurrent' name 'KeySet' 
      end;

      InnerHashEntry = class sealed external 'java.util.concurrent' name 'HashEntry' 
      end;

      InnerHashIterator = class abstract external 'java.util.concurrent' name 'HashIterator' 
      end;

      InnerKeyIterator = class sealed external 'java.util.concurrent' name 'KeyIterator' 
      end;

      InnerValueIterator = class sealed external 'java.util.concurrent' name 'ValueIterator' 
      end;

      InnerSegment = class sealed external 'java.util.concurrent' name 'Segment' 
      end;

      InnerValues = class sealed external 'java.util.concurrent' name 'Values' 
      end;

      InnerWriteThroughEntry = class sealed external 'java.util.concurrent' name 'WriteThroughEntry' 
      end;

  public
    constructor create(para1: jint; para2: jfloat; para3: jint); overload;
    constructor create(para1: jint; para2: jfloat); overload;
    constructor create(para1: jint); overload;
    constructor create(); overload;
    constructor create(para1: JUMap); overload;
    function isEmpty(): jboolean; overload; virtual;
    function size(): jint; overload; virtual;
    function get(para1: JLObject): JLObject; overload; virtual;
    function containsKey(para1: JLObject): jboolean; overload; virtual;
    function containsValue(para1: JLObject): jboolean; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function put(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
    function putIfAbsent(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
    procedure putAll(para1: JUMap); overload; virtual;
    function remove(para1: JLObject): JLObject; overload; virtual;
    function remove(para1: JLObject; para2: JLObject): jboolean; overload; virtual;
    function replace(para1: JLObject; para2: JLObject; para3: JLObject): jboolean; overload; virtual;
    function replace(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
    procedure clear(); overload; virtual;
    function keySet(): JUSet; overload; virtual;
    function values(): JUCollection; overload; virtual;
    function entrySet(): JUSet; overload; virtual;
    function keys(): JUEnumeration; overload; virtual;
    function elements(): JUEnumeration; overload; virtual;
  end;

  JSSimpleBindings = class external 'javax.script' name 'SimpleBindings' (JLObject, JSBindings)
  public
    constructor create(para1: JUMap); overload;
    constructor create(); overload;
    function put(para1: JLString; para2: JLObject): JLObject; overload; virtual;
    procedure putAll(para1: JUMap); overload; virtual;
    procedure clear(); overload; virtual;
    function containsKey(para1: JLObject): jboolean; overload; virtual;
    function containsValue(para1: JLObject): jboolean; overload; virtual;
    function entrySet(): JUSet; overload; virtual;
    function get(para1: JLObject): JLObject; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function keySet(): JUSet; overload; virtual;
    function remove(para1: JLObject): JLObject; overload; virtual;
    function size(): jint; overload; virtual;
    function values(): JUCollection; overload; virtual;
    function put(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
  end;

  JXWHLogicalMessageContext = interface external 'javax.xml.ws.handler' name 'LogicalMessageContext' (JXWHMessageContext)
    function getMessage(): JXWLogicalMessage; overload;
  end;

  JXWHSSOAPMessageContext = interface external 'javax.xml.ws.handler.soap' name 'SOAPMessageContext' (JXWHMessageContext)
    function getMessage(): JXSSOAPMessage; overload;
    procedure setMessage(para1: JXSSOAPMessage); overload;
    function getHeaders(para1: JXNQName; para2: JXBJAXBContext; para3: jboolean): Arr1JLObject; overload;
    function getRoles(): JUSet; overload;
  end;

  JRRMISecurityException = class external 'java.rmi' name 'RMISecurityException' (JLSecurityException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
  end;

  JSAccessControlException = class external 'java.security' name 'AccessControlException' (JLSecurityException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JSPermission); overload;
    function getPermission(): JSPermission; overload; virtual;
  end;

  JUInputMismatchException = class external 'java.util' name 'InputMismatchException' (JUNoSuchElementException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JMRuntimeErrorException = class external 'javax.management' name 'RuntimeErrorException' (JMJMRuntimeException)
  public
    constructor create(para1: JLError); overload;
    constructor create(para1: JLError; para2: JLString); overload;
    function getTargetError(): JLError; overload; virtual;
    function getCause(): JLThrowable; overload; virtual;
  end;

  JMRuntimeMBeanException = class external 'javax.management' name 'RuntimeMBeanException' (JMJMRuntimeException)
  public
    constructor create(para1: JLRuntimeException); overload;
    constructor create(para1: JLRuntimeException; para2: JLString); overload;
    function getTargetException(): JLRuntimeException; overload; virtual;
    function getCause(): JLThrowable; overload; virtual;
  end;

  JMRuntimeOperationsException = class external 'javax.management' name 'RuntimeOperationsException' (JMJMRuntimeException)
  public
    constructor create(para1: JLRuntimeException); overload;
    constructor create(para1: JLRuntimeException; para2: JLString); overload;
    function getTargetException(): JLRuntimeException; overload; virtual;
    function getCause(): JLThrowable; overload; virtual;
  end;

  JMMMonitorSettingException = class external 'javax.management.monitor' name 'MonitorSettingException' (JMJMRuntimeException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JXWProtocolException = class external 'javax.xml.ws' name 'ProtocolException' (JXWWebServiceException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  OOCACTIVITY_COMPLETED = class sealed external 'org.omg.CORBA' name 'ACTIVITY_COMPLETED' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCACTIVITY_REQUIRED = class sealed external 'org.omg.CORBA' name 'ACTIVITY_REQUIRED' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCBAD_CONTEXT = class sealed external 'org.omg.CORBA' name 'BAD_CONTEXT' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCBAD_INV_ORDER = class sealed external 'org.omg.CORBA' name 'BAD_INV_ORDER' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCBAD_OPERATION = class sealed external 'org.omg.CORBA' name 'BAD_OPERATION' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCBAD_PARAM = class sealed external 'org.omg.CORBA' name 'BAD_PARAM' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCBAD_QOS = class sealed external 'org.omg.CORBA' name 'BAD_QOS' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCBAD_TYPECODE = class sealed external 'org.omg.CORBA' name 'BAD_TYPECODE' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCCODESET_INCOMPATIBLE = class sealed external 'org.omg.CORBA' name 'CODESET_INCOMPATIBLE' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCCOMM_FAILURE = class sealed external 'org.omg.CORBA' name 'COMM_FAILURE' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCDATA_CONVERSION = class sealed external 'org.omg.CORBA' name 'DATA_CONVERSION' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCFREE_MEM = class sealed external 'org.omg.CORBA' name 'FREE_MEM' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCIMP_LIMIT = class sealed external 'org.omg.CORBA' name 'IMP_LIMIT' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCINITIALIZE = class sealed external 'org.omg.CORBA' name 'INITIALIZE' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCINTERNAL = class sealed external 'org.omg.CORBA' name 'INTERNAL' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCINTF_REPOS = class sealed external 'org.omg.CORBA' name 'INTF_REPOS' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCINVALID_ACTIVITY = class sealed external 'org.omg.CORBA' name 'INVALID_ACTIVITY' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCINVALID_TRANSACTION = class sealed external 'org.omg.CORBA' name 'INVALID_TRANSACTION' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCINV_FLAG = class sealed external 'org.omg.CORBA' name 'INV_FLAG' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCINV_IDENT = class sealed external 'org.omg.CORBA' name 'INV_IDENT' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCINV_OBJREF = class sealed external 'org.omg.CORBA' name 'INV_OBJREF' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCINV_POLICY = class sealed external 'org.omg.CORBA' name 'INV_POLICY' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCMARSHAL = class sealed external 'org.omg.CORBA' name 'MARSHAL' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCNO_IMPLEMENT = class sealed external 'org.omg.CORBA' name 'NO_IMPLEMENT' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCNO_MEMORY = class sealed external 'org.omg.CORBA' name 'NO_MEMORY' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCNO_PERMISSION = class sealed external 'org.omg.CORBA' name 'NO_PERMISSION' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCNO_RESOURCES = class sealed external 'org.omg.CORBA' name 'NO_RESOURCES' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCNO_RESPONSE = class sealed external 'org.omg.CORBA' name 'NO_RESPONSE' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCOBJECT_NOT_EXIST = class sealed external 'org.omg.CORBA' name 'OBJECT_NOT_EXIST' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCOBJ_ADAPTER = class sealed external 'org.omg.CORBA' name 'OBJ_ADAPTER' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCPERSIST_STORE = class sealed external 'org.omg.CORBA' name 'PERSIST_STORE' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCREBIND = class sealed external 'org.omg.CORBA' name 'REBIND' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCTIMEOUT = class sealed external 'org.omg.CORBA' name 'TIMEOUT' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCTRANSACTION_MODE = class sealed external 'org.omg.CORBA' name 'TRANSACTION_MODE' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCTRANSACTION_REQUIRED = class sealed external 'org.omg.CORBA' name 'TRANSACTION_REQUIRED' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCTRANSACTION_ROLLEDBACK = class sealed external 'org.omg.CORBA' name 'TRANSACTION_ROLLEDBACK' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCTRANSACTION_UNAVAILABLE = class sealed external 'org.omg.CORBA' name 'TRANSACTION_UNAVAILABLE' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCTRANSIENT = class sealed external 'org.omg.CORBA' name 'TRANSIENT' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCUNKNOWN = class sealed external 'org.omg.CORBA' name 'UNKNOWN' (OOCSystemException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: OOCCompletionStatus); overload;
    constructor create(para1: JLString; para2: jint; para3: OOCCompletionStatus); overload;
  end;

  OOCPIndirectionException = class external 'org.omg.CORBA.portable' name 'IndirectionException' (OOCSystemException)
  public
    var
      foffset: jint; external name 'offset';
  public
    constructor create(para1: jint); overload;
  end;

  OOCPUnknownException = class external 'org.omg.CORBA.portable' name 'UnknownException' (OOCSystemException)
  public
    var
      foriginalEx: JLThrowable; external name 'originalEx';
  public
    constructor create(para1: JLThrowable); overload;
  end;

  JIMIIODOMException = class external 'javax.imageio.metadata' name 'IIODOMException' (OWDDOMException)
  public
    constructor create(para1: jshort; para2: JLString); overload;
  end;

  JUAbstractList = class abstract external 'java.util' name 'AbstractList' (JUAbstractCollection, JUList)
  public
    type
      InnerItr = class;
      Arr1InnerItr = array of InnerItr;
      Arr2InnerItr = array of Arr1InnerItr;
      Arr3InnerItr = array of Arr2InnerItr;
      InnerListItr = class;
      Arr1InnerListItr = array of InnerListItr;
      Arr2InnerListItr = array of Arr1InnerListItr;
      Arr3InnerListItr = array of Arr2InnerListItr;
      InnerItr = class external 'java.util' name 'Itr' 
      end;

      InnerListItr = class external 'java.util' name 'ListItr' 
      end;

  strict protected
    var
      fmodCount: jint; external name 'modCount';
  strict protected
    constructor create(); overload;
  public
    function add(para1: JLObject): jboolean; overload; virtual;
    function get(para1: jint): JLObject; overload; virtual; abstract;
    function &set(para1: jint; para2: JLObject): JLObject; overload; virtual;
    procedure add(para1: jint; para2: JLObject); overload; virtual;
    function remove(para1: jint): JLObject; overload; virtual;
    function indexOf(para1: JLObject): jint; overload; virtual;
    function lastIndexOf(para1: JLObject): jint; overload; virtual;
    procedure clear(); overload; virtual;
    function addAll(para1: jint; para2: JUCollection): jboolean; overload; virtual;
    function iterator(): JUIterator; overload; virtual;
    function listIterator(): JUListIterator; overload; virtual;
    function listIterator(para1: jint): JUListIterator; overload; virtual;
    function subList(para1: jint; para2: jint): JUList; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  strict protected
    procedure removeRange(para1: jint; para2: jint); overload; virtual;
  end;

  JUCCopyOnWriteArrayList = class external 'java.util.concurrent' name 'CopyOnWriteArrayList' (JLObject, JUList, JURandomAccess, JLCloneable, JISerializable)
  public
    type
      InnerCOWIterator = class;
      Arr1InnerCOWIterator = array of InnerCOWIterator;
      Arr2InnerCOWIterator = array of Arr1InnerCOWIterator;
      Arr3InnerCOWIterator = array of Arr2InnerCOWIterator;
      InnerCOWSubListIterator = class;
      Arr1InnerCOWSubListIterator = array of InnerCOWSubListIterator;
      Arr2InnerCOWSubListIterator = array of Arr1InnerCOWSubListIterator;
      Arr3InnerCOWSubListIterator = array of Arr2InnerCOWSubListIterator;
      InnerCOWSubList = class;
      Arr1InnerCOWSubList = array of InnerCOWSubList;
      Arr2InnerCOWSubList = array of Arr1InnerCOWSubList;
      Arr3InnerCOWSubList = array of Arr2InnerCOWSubList;
      InnerCOWIterator = class external 'java.util.concurrent' name 'COWIterator' 
      end;

      InnerCOWSubListIterator = class external 'java.util.concurrent' name 'COWSubListIterator' 
      end;

      InnerCOWSubList = class external 'java.util.concurrent' name 'COWSubList' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: JUCollection); overload;
    constructor create(para1: Arr1JLObject); overload;
    constructor create(const para1: array of JLObject); overload;
    function size(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function indexOf(para1: JLObject): jint; overload; virtual;
    function indexOf(para1: JLObject; para2: jint): jint; overload; virtual;
    function lastIndexOf(para1: JLObject): jint; overload; virtual;
    function lastIndexOf(para1: JLObject; para2: jint): jint; overload; virtual;
    function clone(): JLObject; overload; virtual;
    function toArray(): Arr1JLObject; overload; virtual;
    function toArray(para1: Arr1JLObject): Arr1JLObject; overload; virtual;
    function toArray(var para1: array of JLObject): Arr1JLObject; overload; virtual;
    function get(para1: jint): JLObject; overload; virtual;
    function &set(para1: jint; para2: JLObject): JLObject; overload; virtual;
    function add(para1: JLObject): jboolean; overload; virtual;
    procedure add(para1: jint; para2: JLObject); overload; virtual;
    function remove(para1: jint): JLObject; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    function addIfAbsent(para1: JLObject): jboolean; overload; virtual;
    function containsAll(para1: JUCollection): jboolean; overload; virtual;
    function removeAll(para1: JUCollection): jboolean; overload; virtual;
    function retainAll(para1: JUCollection): jboolean; overload; virtual;
    function addAllAbsent(para1: JUCollection): jint; overload; virtual;
    procedure clear(); overload; virtual;
    function addAll(para1: JUCollection): jboolean; overload; virtual;
    function addAll(para1: jint; para2: JUCollection): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function iterator(): JUIterator; overload; virtual;
    function listIterator(): JUListIterator; overload; virtual;
    function listIterator(para1: jint): JUListIterator; overload; virtual;
    function subList(para1: jint; para2: jint): JUList; overload; virtual;
  end;

  JUAbstractQueue = class abstract external 'java.util' name 'AbstractQueue' (JUAbstractCollection, JUQueue)
  strict protected
    constructor create(); overload;
  public
    function add(para1: JLObject): jboolean; overload; virtual;
    function remove(): JLObject; overload; virtual;
    function element(): JLObject; overload; virtual;
    procedure clear(); overload; virtual;
    function addAll(para1: JUCollection): jboolean; overload; virtual;
  end;

  JUDeque = interface external 'java.util' name 'Deque' (JUQueue)
    procedure addFirst(para1: JLObject); overload;
    procedure addLast(para1: JLObject); overload;
    function offerFirst(para1: JLObject): jboolean; overload;
    function offerLast(para1: JLObject): jboolean; overload;
    function removeFirst(): JLObject; overload;
    function removeLast(): JLObject; overload;
    function pollFirst(): JLObject; overload;
    function pollLast(): JLObject; overload;
    function getFirst(): JLObject; overload;
    function getLast(): JLObject; overload;
    function peekFirst(): JLObject; overload;
    function peekLast(): JLObject; overload;
    function removeFirstOccurrence(para1: JLObject): jboolean; overload;
    function removeLastOccurrence(para1: JLObject): jboolean; overload;
    function add(para1: JLObject): jboolean; overload;
    function offer(para1: JLObject): jboolean; overload;
    function remove(): JLObject; overload;
    function poll(): JLObject; overload;
    function element(): JLObject; overload;
    function peek(): JLObject; overload;
    procedure push(para1: JLObject); overload;
    function pop(): JLObject; overload;
    function remove(para1: JLObject): jboolean; overload;
    function contains(para1: JLObject): jboolean; overload;
    function size(): jint; overload;
    function iterator(): JUIterator; overload;
    function descendingIterator(): JUIterator; overload;
  end;

  JUCBlockingQueue = interface external 'java.util.concurrent' name 'BlockingQueue' (JUQueue)
    function add(para1: JLObject): jboolean; overload;
    function offer(para1: JLObject): jboolean; overload;
    procedure put(para1: JLObject); overload;  // throws java.lang.InterruptedException
    function offer(para1: JLObject; para2: jlong; para3: JUCTimeUnit): jboolean; overload;  // throws java.lang.InterruptedException
    function take(): JLObject; overload;  // throws java.lang.InterruptedException
    function poll(para1: jlong; para2: JUCTimeUnit): JLObject; overload;  // throws java.lang.InterruptedException
    function remainingCapacity(): jint; overload;
    function remove(para1: JLObject): jboolean; overload;
    function contains(para1: JLObject): jboolean; overload;
    function drainTo(para1: JUCollection): jint; overload;
    function drainTo(para1: JUCollection; para2: jint): jint; overload;
  end;

  JXSUEventReaderDelegate = class external 'javax.xml.stream.util' name 'EventReaderDelegate' (JLObject, JXSXMLEventReader)
  public
    constructor create(); overload;
    constructor create(para1: JXSXMLEventReader); overload;
    procedure setParent(para1: JXSXMLEventReader); overload; virtual;
    function getParent(): JXSXMLEventReader; overload; virtual;
    function nextEvent(): JXSEXMLEvent; overload; virtual;  // throws javax.xml.stream.XMLStreamException
    function next(): JLObject; overload; virtual;
    function hasNext(): jboolean; overload; virtual;
    function peek(): JXSEXMLEvent; overload; virtual;  // throws javax.xml.stream.XMLStreamException
    procedure close(); overload; virtual;  // throws javax.xml.stream.XMLStreamException
    function getElementText(): JLString; overload; virtual;  // throws javax.xml.stream.XMLStreamException
    function nextTag(): JXSEXMLEvent; overload; virtual;  // throws javax.xml.stream.XMLStreamException
    function getProperty(para1: JLString): JLObject; overload; virtual;  // throws java.lang.IllegalArgumentException
    procedure remove(); overload; virtual;
  end;

  JNSocketTimeoutException = class external 'java.net' name 'SocketTimeoutException' (JIInterruptedIOException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JIInvalidClassException = class external 'java.io' name 'InvalidClassException' (JIObjectStreamException)
  public
    var
      fclassname: JLString; external name 'classname';
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    function getMessage(): JLString; overload; virtual;
  end;

  JIInvalidObjectException = class external 'java.io' name 'InvalidObjectException' (JIObjectStreamException)
  public
    constructor create(para1: JLString); overload;
  end;

  JINotActiveException = class external 'java.io' name 'NotActiveException' (JIObjectStreamException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JINotSerializableException = class external 'java.io' name 'NotSerializableException' (JIObjectStreamException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JIOptionalDataException = class external 'java.io' name 'OptionalDataException' (JIObjectStreamException)
  public
    var
      flength: jint; external name 'length';
      feof: jboolean; external name 'eof';
  end;

  JIStreamCorruptedException = class external 'java.io' name 'StreamCorruptedException' (JIObjectStreamException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JIWriteAbortedException = class external 'java.io' name 'WriteAbortedException' (JIObjectStreamException)
  public
    var
      fdetail: JLException; external name 'detail';
  public
    constructor create(para1: JLString; para2: JLException); overload;
    function getMessage(): JLString; overload; virtual;
    function getCause(): JLThrowable; overload; virtual;
  end;

  JNBindException = class external 'java.net' name 'BindException' (JNSocketException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JNConnectException = class external 'java.net' name 'ConnectException' (JNSocketException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JNNoRouteToHostException = class external 'java.net' name 'NoRouteToHostException' (JNSocketException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JNPortUnreachableException = class external 'java.net' name 'PortUnreachableException' (JNSocketException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JNCAsynchronousCloseException = class external 'java.nio.channels' name 'AsynchronousCloseException' (JNCClosedChannelException)
  public
    constructor create(); overload;
  end;

  JRAccessException = class external 'java.rmi' name 'AccessException' (JRRemoteException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLException); overload;
  end;

  JRConnectException = class external 'java.rmi' name 'ConnectException' (JRRemoteException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLException); overload;
  end;

  JRConnectIOException = class external 'java.rmi' name 'ConnectIOException' (JRRemoteException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLException); overload;
  end;

  JRMarshalException = class external 'java.rmi' name 'MarshalException' (JRRemoteException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLException); overload;
  end;

  JRNoSuchObjectException = class external 'java.rmi' name 'NoSuchObjectException' (JRRemoteException)
  public
    constructor create(para1: JLString); overload;
  end;

  JRServerError = class external 'java.rmi' name 'ServerError' (JRRemoteException)
  public
    constructor create(para1: JLString; para2: JLError); overload;
  end;

  JRServerException = class external 'java.rmi' name 'ServerException' (JRRemoteException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLException); overload;
  end;

  JRServerRuntimeException = class external 'java.rmi' name 'ServerRuntimeException' (JRRemoteException)
  public
    constructor create(para1: JLString; para2: JLException); overload;
  end;

  JRStubNotFoundException = class external 'java.rmi' name 'StubNotFoundException' (JRRemoteException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLException); overload;
  end;

  JRUnexpectedException = class external 'java.rmi' name 'UnexpectedException' (JRRemoteException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLException); overload;
  end;

  JRUnknownHostException = class external 'java.rmi' name 'UnknownHostException' (JRRemoteException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLException); overload;
  end;

  JRUnmarshalException = class external 'java.rmi' name 'UnmarshalException' (JRRemoteException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLException); overload;
  end;

  JRAActivateFailedException = class external 'java.rmi.activation' name 'ActivateFailedException' (JRRemoteException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLException); overload;
  end;

  JRSExportException = class external 'java.rmi.server' name 'ExportException' (JRRemoteException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLException); overload;
  end;

  JRSSkeletonMismatchException = class external 'java.rmi.server' name 'SkeletonMismatchException' (JRRemoteException)
  public
    constructor create(para1: JLString); overload;
  end;

  JRSSkeletonNotFoundException = class external 'java.rmi.server' name 'SkeletonNotFoundException' (JRRemoteException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLException); overload;
  end;

  JAActivityCompletedException = class external 'javax.activity' name 'ActivityCompletedException' (JRRemoteException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
  end;

  JAActivityRequiredException = class external 'javax.activity' name 'ActivityRequiredException' (JRRemoteException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
  end;

  JAInvalidActivityException = class external 'javax.activity' name 'InvalidActivityException' (JRRemoteException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
  end;

  JTInvalidTransactionException = class external 'javax.transaction' name 'InvalidTransactionException' (JRRemoteException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JTTransactionRequiredException = class external 'javax.transaction' name 'TransactionRequiredException' (JRRemoteException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JTTransactionRolledbackException = class external 'javax.transaction' name 'TransactionRolledbackException' (JRRemoteException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JUJJarException = class external 'java.util.jar' name 'JarException' (JUZZipException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JIMIIOInvalidTreeException = class external 'javax.imageio.metadata' name 'IIOInvalidTreeException' (JIIIOException)
  strict protected
    var
      foffendingNode: OWDNode; external name 'offendingNode';
  public
    constructor create(para1: JLString; para2: OWDNode); overload;
    constructor create(para1: JLString; para2: JLThrowable; para3: OWDNode); overload;
    function getOffendingNode(): OWDNode; overload; virtual;
  end;

  JNSSSLHandshakeException = class external 'javax.net.ssl' name 'SSLHandshakeException' (JNSSSLException)
  public
    constructor create(para1: JLString); overload;
  end;

  JNSSSLKeyException = class external 'javax.net.ssl' name 'SSLKeyException' (JNSSSLException)
  public
    constructor create(para1: JLString); overload;
  end;

  JNSSSLPeerUnverifiedException = class external 'javax.net.ssl' name 'SSLPeerUnverifiedException' (JNSSSLException)
  public
    constructor create(para1: JLString); overload;
  end;

  JNSSSLProtocolException = class external 'javax.net.ssl' name 'SSLProtocolException' (JNSSSLException)
  public
    constructor create(para1: JLString); overload;
  end;

  JSSAuthenticationException = class external 'javax.security.sasl' name 'AuthenticationException' (JSSSaslException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
  end;

  JTRuleBasedCollationKey = class sealed external 'java.text' name 'RuleBasedCollationKey' (JTCollationKey)
  public
    function compareTo(para1: JTCollationKey): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toByteArray(): Arr1jbyte; overload; virtual;
    function compareTo(para1: JLObject): jint; overload; virtual;
  end;

  JSDate = class external 'java.sql' name 'Date' (JUDate)
  public
    constructor create(para1: jint; para2: jint; para3: jint); overload;
    constructor create(para1: jlong); overload;
    procedure setTime(para1: jlong); overload; virtual;
    class function valueOf(para1: JLString): JSDate; static; overload;
    function toString(): JLString; overload; virtual;
    function getHours(): jint; overload; virtual;
    function getMinutes(): jint; overload; virtual;
    function getSeconds(): jint; overload; virtual;
    procedure setHours(para1: jint); overload; virtual;
    procedure setMinutes(para1: jint); overload; virtual;
    procedure setSeconds(para1: jint); overload; virtual;
  end;

  JSTime = class external 'java.sql' name 'Time' (JUDate)
  public
    constructor create(para1: jint; para2: jint; para3: jint); overload;
    constructor create(para1: jlong); overload;
    procedure setTime(para1: jlong); overload; virtual;
    class function valueOf(para1: JLString): JSTime; static; overload;
    function toString(): JLString; overload; virtual;
    function getYear(): jint; overload; virtual;
    function getMonth(): jint; overload; virtual;
    function getDay(): jint; overload; virtual;
    function getDate(): jint; overload; virtual;
    procedure setYear(para1: jint); overload; virtual;
    procedure setMonth(para1: jint); overload; virtual;
    procedure setDate(para1: jint); overload; virtual;
  end;

  JSqlTimestamp = class external 'java.sql' name 'Timestamp' (JUDate)
  public
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload;
    constructor create(para1: jlong); overload;
    procedure setTime(para1: jlong); overload; virtual;
    function getTime(): jlong; overload; virtual;
    class function valueOf(para1: JLString): JSqlTimestamp; static; overload;
    function toString(): JLString; overload; virtual;
    function getNanos(): jint; overload; virtual;
    procedure setNanos(para1: jint); overload; virtual;
    function equals(para1: JSqlTimestamp): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function before(para1: JSqlTimestamp): jboolean; overload; virtual;
    function after(para1: JSqlTimestamp): jboolean; overload; virtual;
    function compareTo(para1: JSqlTimestamp): jint; overload; virtual;
    function compareTo(para1: JUDate): jint; overload; virtual;
    function compareTo(para1: JLObject): jint; overload; virtual;
  end;

  JUCScheduledFuture = interface external 'java.util.concurrent' name 'ScheduledFuture' (JUCDelayed, JUCFuture)
  end;

  JNCompositeName = class external 'javax.naming' name 'CompositeName' (JLObject, JNName)
  strict protected
    constructor create(para1: JUEnumeration); overload;
  public
    constructor create(para1: JLString); overload;  // throws javax.naming.InvalidNameException
    constructor create(); overload;
    function toString(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function compareTo(para1: JLObject): jint; overload; virtual;
    function clone(): JLObject; overload; virtual;
    function size(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function getAll(): JUEnumeration; overload; virtual;
    function get(para1: jint): JLString; overload; virtual;
    function getPrefix(para1: jint): JNName; overload; virtual;
    function getSuffix(para1: jint): JNName; overload; virtual;
    function startsWith(para1: JNName): jboolean; overload; virtual;
    function endsWith(para1: JNName): jboolean; overload; virtual;
    function addAll(para1: JNName): JNName; overload; virtual;  // throws javax.naming.InvalidNameException
    function addAll(para1: jint; para2: JNName): JNName; overload; virtual;  // throws javax.naming.InvalidNameException
    function add(para1: JLString): JNName; overload; virtual;  // throws javax.naming.InvalidNameException
    function add(para1: jint; para2: JLString): JNName; overload; virtual;  // throws javax.naming.InvalidNameException
    function remove(para1: jint): JLObject; overload; virtual;  // throws javax.naming.InvalidNameException
  end;

  JNCompoundName = class external 'javax.naming' name 'CompoundName' (JLObject, JNName)
  strict protected
    var
      fimpl: JNNameImpl; external name 'impl';
      fmySyntax: JUProperties; external name 'mySyntax';
  strict protected
    constructor create(para1: JUEnumeration; para2: JUProperties); overload;
  public
    constructor create(para1: JLString; para2: JUProperties); overload;  // throws javax.naming.InvalidNameException
    function toString(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function clone(): JLObject; overload; virtual;
    function compareTo(para1: JLObject): jint; overload; virtual;
    function size(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function getAll(): JUEnumeration; overload; virtual;
    function get(para1: jint): JLString; overload; virtual;
    function getPrefix(para1: jint): JNName; overload; virtual;
    function getSuffix(para1: jint): JNName; overload; virtual;
    function startsWith(para1: JNName): jboolean; overload; virtual;
    function endsWith(para1: JNName): jboolean; overload; virtual;
    function addAll(para1: JNName): JNName; overload; virtual;  // throws javax.naming.InvalidNameException
    function addAll(para1: jint; para2: JNName): JNName; overload; virtual;  // throws javax.naming.InvalidNameException
    function add(para1: JLString): JNName; overload; virtual;  // throws javax.naming.InvalidNameException
    function add(para1: jint; para2: JLString): JNName; overload; virtual;  // throws javax.naming.InvalidNameException
    function remove(para1: jint): JLObject; overload; virtual;  // throws javax.naming.InvalidNameException
  end;

  JNLLdapName = class external 'javax.naming.ldap' name 'LdapName' (JLObject, JNName)
  public
    constructor create(para1: JLString); overload;  // throws javax.naming.InvalidNameException
    constructor create(para1: JUList); overload;
    function size(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function getAll(): JUEnumeration; overload; virtual;
    function get(para1: jint): JLString; overload; virtual;
    function getRdn(para1: jint): JNLRdn; overload; virtual;
    function getPrefix(para1: jint): JNName; overload; virtual;
    function getSuffix(para1: jint): JNName; overload; virtual;
    function startsWith(para1: JNName): jboolean; overload; virtual;
    function startsWith(para1: JUList): jboolean; overload; virtual;
    function endsWith(para1: JNName): jboolean; overload; virtual;
    function endsWith(para1: JUList): jboolean; overload; virtual;
    function addAll(para1: JNName): JNName; overload; virtual;  // throws javax.naming.InvalidNameException
    function addAll(para1: JUList): JNName; overload; virtual;
    function addAll(para1: jint; para2: JNName): JNName; overload; virtual;  // throws javax.naming.InvalidNameException
    function addAll(para1: jint; para2: JUList): JNName; overload; virtual;
    function add(para1: JLString): JNName; overload; virtual;  // throws javax.naming.InvalidNameException
    function add(para1: JNLRdn): JNName; overload; virtual;
    function add(para1: jint; para2: JLString): JNName; overload; virtual;  // throws javax.naming.InvalidNameException
    function add(para1: jint; para2: JNLRdn): JNName; overload; virtual;
    function remove(para1: jint): JLObject; overload; virtual;  // throws javax.naming.InvalidNameException
    function getRdns(): JUList; overload; virtual;
    function clone(): JLObject; overload; virtual;
    function toString(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function compareTo(para1: JLObject): jint; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JLUnsupportedClassVersionError = class external 'java.lang' name 'UnsupportedClassVersionError' (JLClassFormatError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLRGenericSignatureFormatError = class external 'java.lang.reflect' name 'GenericSignatureFormatError' (JLClassFormatError)
  public
    constructor create(); overload;
  end;

  JLAbstractMethodError = class external 'java.lang' name 'AbstractMethodError' (JLIncompatibleClassChangeError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLIllegalAccessError = class external 'java.lang' name 'IllegalAccessError' (JLIncompatibleClassChangeError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLInstantiationError = class external 'java.lang' name 'InstantiationError' (JLIncompatibleClassChangeError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLNoSuchFieldError = class external 'java.lang' name 'NoSuchFieldError' (JLIncompatibleClassChangeError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JLNoSuchMethodError = class external 'java.lang' name 'NoSuchMethodError' (JLIncompatibleClassChangeError)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JUDuplicateFormatFlagsException = class external 'java.util' name 'DuplicateFormatFlagsException' (JUIllegalFormatException)
  public
    constructor create(para1: JLString); overload;
    function getFlags(): JLString; overload; virtual;
    function getMessage(): JLString; overload; virtual;
  end;

  JUFormatFlagsConversionMismatchException = class external 'java.util' name 'FormatFlagsConversionMismatchException' (JUIllegalFormatException)
  public
    constructor create(para1: JLString; para2: jchar); overload;
    function getFlags(): JLString; overload; virtual;
    function getConversion(): jchar; overload; virtual;
    function getMessage(): JLString; overload; virtual;
  end;

  JUIllegalFormatCodePointException = class external 'java.util' name 'IllegalFormatCodePointException' (JUIllegalFormatException)
  public
    constructor create(para1: jint); overload;
    function getCodePoint(): jint; overload; virtual;
    function getMessage(): JLString; overload; virtual;
  end;

  JUIllegalFormatConversionException = class external 'java.util' name 'IllegalFormatConversionException' (JUIllegalFormatException)
  public
    constructor create(para1: jchar; para2: JLClass); overload;
    function getConversion(): jchar; overload; virtual;
    function getArgumentClass(): JLClass; overload; virtual;
    function getMessage(): JLString; overload; virtual;
  end;

  JUIllegalFormatFlagsException = class external 'java.util' name 'IllegalFormatFlagsException' (JUIllegalFormatException)
  public
    constructor create(para1: JLString); overload;
    function getFlags(): JLString; overload; virtual;
    function getMessage(): JLString; overload; virtual;
  end;

  JUIllegalFormatPrecisionException = class external 'java.util' name 'IllegalFormatPrecisionException' (JUIllegalFormatException)
  public
    constructor create(para1: jint); overload;
    function getPrecision(): jint; overload; virtual;
    function getMessage(): JLString; overload; virtual;
  end;

  JUIllegalFormatWidthException = class external 'java.util' name 'IllegalFormatWidthException' (JUIllegalFormatException)
  public
    constructor create(para1: jint); overload;
    function getWidth(): jint; overload; virtual;
    function getMessage(): JLString; overload; virtual;
  end;

  JUMissingFormatArgumentException = class external 'java.util' name 'MissingFormatArgumentException' (JUIllegalFormatException)
  public
    constructor create(para1: JLString); overload;
    function getFormatSpecifier(): JLString; overload; virtual;
    function getMessage(): JLString; overload; virtual;
  end;

  JUMissingFormatWidthException = class external 'java.util' name 'MissingFormatWidthException' (JUIllegalFormatException)
  public
    constructor create(para1: JLString); overload;
    function getFormatSpecifier(): JLString; overload; virtual;
    function getMessage(): JLString; overload; virtual;
  end;

  JUUnknownFormatConversionException = class external 'java.util' name 'UnknownFormatConversionException' (JUIllegalFormatException)
  public
    constructor create(para1: JLString); overload;
    function getConversion(): JLString; overload; virtual;
    function getMessage(): JLString; overload; virtual;
  end;

  JUUnknownFormatFlagsException = class external 'java.util' name 'UnknownFormatFlagsException' (JUIllegalFormatException)
  public
    constructor create(para1: JLString); overload;
    function getFlags(): JLString; overload; virtual;
    function getMessage(): JLString; overload; virtual;
  end;

  JNByteBufferAsCharBufferRB = class external 'java.nio' name 'ByteBufferAsCharBufferRB' (JNByteBufferAsCharBufferB)
  public
    function slice(): JNCharBuffer; overload; virtual;
    function duplicate(): JNCharBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNCharBuffer; overload; virtual;
    function put(para1: jchar): JNCharBuffer; overload; virtual;
    function put(para1: jint; para2: jchar): JNCharBuffer; overload; virtual;
    function compact(): JNCharBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function toString(para1: jint; para2: jint): JLString; overload; virtual;
    function subSequence(para1: jint; para2: jint): JLCharSequence; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNByteBufferAsCharBufferRL = class external 'java.nio' name 'ByteBufferAsCharBufferRL' (JNByteBufferAsCharBufferL)
  public
    function slice(): JNCharBuffer; overload; virtual;
    function duplicate(): JNCharBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNCharBuffer; overload; virtual;
    function put(para1: jchar): JNCharBuffer; overload; virtual;
    function put(para1: jint; para2: jchar): JNCharBuffer; overload; virtual;
    function compact(): JNCharBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function toString(para1: jint; para2: jint): JLString; overload; virtual;
    function subSequence(para1: jint; para2: jint): JLCharSequence; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNHeapCharBufferR = class external 'java.nio' name 'HeapCharBufferR' (JNHeapCharBuffer)
  strict protected
    constructor create(para1: Arr1jchar; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
    constructor create(const para1: array of jchar; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
  public
    function slice(): JNCharBuffer; overload; virtual;
    function duplicate(): JNCharBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNCharBuffer; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function put(para1: jchar): JNCharBuffer; overload; virtual;
    function put(para1: jint; para2: jchar): JNCharBuffer; overload; virtual;
    function put(para1: Arr1jchar; para2: jint; para3: jint): JNCharBuffer; overload; virtual;
    function put(var para1: array of jchar; para2: jint; para3: jint): JNCharBuffer; overload; virtual;
    function put(para1: JNCharBuffer): JNCharBuffer; overload; virtual;
    function compact(): JNCharBuffer; overload; virtual;
    function subSequence(para1: jint; para2: jint): JLCharSequence; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNDirectCharBufferRS = class external 'java.nio' name 'DirectCharBufferRS' (JNDirectCharBufferS, SNCDirectBuffer)
  public
    function slice(): JNCharBuffer; overload; virtual;
    function duplicate(): JNCharBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNCharBuffer; overload; virtual;
    function put(para1: jchar): JNCharBuffer; overload; virtual;
    function put(para1: jint; para2: jchar): JNCharBuffer; overload; virtual;
    function put(para1: JNCharBuffer): JNCharBuffer; overload; virtual;
    function put(para1: Arr1jchar; para2: jint; para3: jint): JNCharBuffer; overload; virtual;
    function put(var para1: array of jchar; para2: jint; para3: jint): JNCharBuffer; overload; virtual;
    function compact(): JNCharBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function toString(para1: jint; para2: jint): JLString; overload; virtual;
    function subSequence(para1: jint; para2: jint): JLCharSequence; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNDirectCharBufferRU = class external 'java.nio' name 'DirectCharBufferRU' (JNDirectCharBufferU, SNCDirectBuffer)
  public
    function slice(): JNCharBuffer; overload; virtual;
    function duplicate(): JNCharBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNCharBuffer; overload; virtual;
    function put(para1: jchar): JNCharBuffer; overload; virtual;
    function put(para1: jint; para2: jchar): JNCharBuffer; overload; virtual;
    function put(para1: JNCharBuffer): JNCharBuffer; overload; virtual;
    function put(para1: Arr1jchar; para2: jint; para3: jint): JNCharBuffer; overload; virtual;
    function put(var para1: array of jchar; para2: jint; para3: jint): JNCharBuffer; overload; virtual;
    function compact(): JNCharBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function toString(para1: jint; para2: jint): JLString; overload; virtual;
    function subSequence(para1: jint; para2: jint): JLCharSequence; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNByteBufferAsDoubleBufferB = class external 'java.nio' name 'ByteBufferAsDoubleBufferB' (JNDoubleBuffer)
  strict protected
    final var
      fbb: JNByteBuffer; external name 'bb';
      foffset: jint; external name 'offset';
  public
    function slice(): JNDoubleBuffer; overload; virtual;
    function duplicate(): JNDoubleBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNDoubleBuffer; overload; virtual;
  strict protected
    function ix(para1: jint): jint; overload; virtual;
  public
    function get(): jdouble; overload; virtual;
    function get(para1: jint): jdouble; overload; virtual;
    function put(para1: jdouble): JNDoubleBuffer; overload; virtual;
    function put(para1: jint; para2: jdouble): JNDoubleBuffer; overload; virtual;
    function compact(): JNDoubleBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNByteBufferAsDoubleBufferL = class external 'java.nio' name 'ByteBufferAsDoubleBufferL' (JNDoubleBuffer)
  strict protected
    final var
      fbb: JNByteBuffer; external name 'bb';
      foffset: jint; external name 'offset';
  public
    function slice(): JNDoubleBuffer; overload; virtual;
    function duplicate(): JNDoubleBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNDoubleBuffer; overload; virtual;
  strict protected
    function ix(para1: jint): jint; overload; virtual;
  public
    function get(): jdouble; overload; virtual;
    function get(para1: jint): jdouble; overload; virtual;
    function put(para1: jdouble): JNDoubleBuffer; overload; virtual;
    function put(para1: jint; para2: jdouble): JNDoubleBuffer; overload; virtual;
    function compact(): JNDoubleBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNDirectDoubleBufferS = class external 'java.nio' name 'DirectDoubleBufferS' (JNDoubleBuffer, SNCDirectBuffer)
  strict protected
    final class var
      funsafe: SMUnsafe; external name 'unsafe';
      funaligned: jboolean; external name 'unaligned';
  public
    function viewedBuffer(): JLObject; overload; virtual;
    function cleaner(): SMCleaner; overload; virtual;
    function slice(): JNDoubleBuffer; overload; virtual;
    function duplicate(): JNDoubleBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNDoubleBuffer; overload; virtual;
    function address(): jlong; overload; virtual;
    function get(): jdouble; overload; virtual;
    function get(para1: jint): jdouble; overload; virtual;
    function get(para1: Arr1jdouble; para2: jint; para3: jint): JNDoubleBuffer; overload; virtual;
    function get(var para1: array of jdouble; para2: jint; para3: jint): JNDoubleBuffer; overload; virtual;
    function put(para1: jdouble): JNDoubleBuffer; overload; virtual;
    function put(para1: jint; para2: jdouble): JNDoubleBuffer; overload; virtual;
    function put(para1: JNDoubleBuffer): JNDoubleBuffer; overload; virtual;
    function put(para1: Arr1jdouble; para2: jint; para3: jint): JNDoubleBuffer; overload; virtual;
    function put(var para1: array of jdouble; para2: jint; para3: jint): JNDoubleBuffer; overload; virtual;
    function compact(): JNDoubleBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNDirectDoubleBufferU = class external 'java.nio' name 'DirectDoubleBufferU' (JNDoubleBuffer, SNCDirectBuffer)
  strict protected
    final class var
      funsafe: SMUnsafe; external name 'unsafe';
      funaligned: jboolean; external name 'unaligned';
  public
    function viewedBuffer(): JLObject; overload; virtual;
    function cleaner(): SMCleaner; overload; virtual;
    function slice(): JNDoubleBuffer; overload; virtual;
    function duplicate(): JNDoubleBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNDoubleBuffer; overload; virtual;
    function address(): jlong; overload; virtual;
    function get(): jdouble; overload; virtual;
    function get(para1: jint): jdouble; overload; virtual;
    function get(para1: Arr1jdouble; para2: jint; para3: jint): JNDoubleBuffer; overload; virtual;
    function get(var para1: array of jdouble; para2: jint; para3: jint): JNDoubleBuffer; overload; virtual;
    function put(para1: jdouble): JNDoubleBuffer; overload; virtual;
    function put(para1: jint; para2: jdouble): JNDoubleBuffer; overload; virtual;
    function put(para1: JNDoubleBuffer): JNDoubleBuffer; overload; virtual;
    function put(para1: Arr1jdouble; para2: jint; para3: jint): JNDoubleBuffer; overload; virtual;
    function put(var para1: array of jdouble; para2: jint; para3: jint): JNDoubleBuffer; overload; virtual;
    function compact(): JNDoubleBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNHeapDoubleBuffer = class external 'java.nio' name 'HeapDoubleBuffer' (JNDoubleBuffer)
  strict protected
    constructor create(para1: Arr1jdouble; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
    constructor create(const para1: array of jdouble; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
  public
    function slice(): JNDoubleBuffer; overload; virtual;
    function duplicate(): JNDoubleBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNDoubleBuffer; overload; virtual;
  strict protected
    function ix(para1: jint): jint; overload; virtual;
  public
    function get(): jdouble; overload; virtual;
    function get(para1: jint): jdouble; overload; virtual;
    function get(para1: Arr1jdouble; para2: jint; para3: jint): JNDoubleBuffer; overload; virtual;
    function get(var para1: array of jdouble; para2: jint; para3: jint): JNDoubleBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function put(para1: jdouble): JNDoubleBuffer; overload; virtual;
    function put(para1: jint; para2: jdouble): JNDoubleBuffer; overload; virtual;
    function put(para1: Arr1jdouble; para2: jint; para3: jint): JNDoubleBuffer; overload; virtual;
    function put(var para1: array of jdouble; para2: jint; para3: jint): JNDoubleBuffer; overload; virtual;
    function put(para1: JNDoubleBuffer): JNDoubleBuffer; overload; virtual;
    function compact(): JNDoubleBuffer; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNByteBufferAsFloatBufferB = class external 'java.nio' name 'ByteBufferAsFloatBufferB' (JNFloatBuffer)
  strict protected
    final var
      fbb: JNByteBuffer; external name 'bb';
      foffset: jint; external name 'offset';
  public
    function slice(): JNFloatBuffer; overload; virtual;
    function duplicate(): JNFloatBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNFloatBuffer; overload; virtual;
  strict protected
    function ix(para1: jint): jint; overload; virtual;
  public
    function get(): jfloat; overload; virtual;
    function get(para1: jint): jfloat; overload; virtual;
    function put(para1: jfloat): JNFloatBuffer; overload; virtual;
    function put(para1: jint; para2: jfloat): JNFloatBuffer; overload; virtual;
    function compact(): JNFloatBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNByteBufferAsFloatBufferL = class external 'java.nio' name 'ByteBufferAsFloatBufferL' (JNFloatBuffer)
  strict protected
    final var
      fbb: JNByteBuffer; external name 'bb';
      foffset: jint; external name 'offset';
  public
    function slice(): JNFloatBuffer; overload; virtual;
    function duplicate(): JNFloatBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNFloatBuffer; overload; virtual;
  strict protected
    function ix(para1: jint): jint; overload; virtual;
  public
    function get(): jfloat; overload; virtual;
    function get(para1: jint): jfloat; overload; virtual;
    function put(para1: jfloat): JNFloatBuffer; overload; virtual;
    function put(para1: jint; para2: jfloat): JNFloatBuffer; overload; virtual;
    function compact(): JNFloatBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNDirectFloatBufferS = class external 'java.nio' name 'DirectFloatBufferS' (JNFloatBuffer, SNCDirectBuffer)
  strict protected
    final class var
      funsafe: SMUnsafe; external name 'unsafe';
      funaligned: jboolean; external name 'unaligned';
  public
    function viewedBuffer(): JLObject; overload; virtual;
    function cleaner(): SMCleaner; overload; virtual;
    function slice(): JNFloatBuffer; overload; virtual;
    function duplicate(): JNFloatBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNFloatBuffer; overload; virtual;
    function address(): jlong; overload; virtual;
    function get(): jfloat; overload; virtual;
    function get(para1: jint): jfloat; overload; virtual;
    function get(para1: Arr1jfloat; para2: jint; para3: jint): JNFloatBuffer; overload; virtual;
    function get(var para1: array of jfloat; para2: jint; para3: jint): JNFloatBuffer; overload; virtual;
    function put(para1: jfloat): JNFloatBuffer; overload; virtual;
    function put(para1: jint; para2: jfloat): JNFloatBuffer; overload; virtual;
    function put(para1: JNFloatBuffer): JNFloatBuffer; overload; virtual;
    function put(para1: Arr1jfloat; para2: jint; para3: jint): JNFloatBuffer; overload; virtual;
    function put(var para1: array of jfloat; para2: jint; para3: jint): JNFloatBuffer; overload; virtual;
    function compact(): JNFloatBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNDirectFloatBufferU = class external 'java.nio' name 'DirectFloatBufferU' (JNFloatBuffer, SNCDirectBuffer)
  strict protected
    final class var
      funsafe: SMUnsafe; external name 'unsafe';
      funaligned: jboolean; external name 'unaligned';
  public
    function viewedBuffer(): JLObject; overload; virtual;
    function cleaner(): SMCleaner; overload; virtual;
    function slice(): JNFloatBuffer; overload; virtual;
    function duplicate(): JNFloatBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNFloatBuffer; overload; virtual;
    function address(): jlong; overload; virtual;
    function get(): jfloat; overload; virtual;
    function get(para1: jint): jfloat; overload; virtual;
    function get(para1: Arr1jfloat; para2: jint; para3: jint): JNFloatBuffer; overload; virtual;
    function get(var para1: array of jfloat; para2: jint; para3: jint): JNFloatBuffer; overload; virtual;
    function put(para1: jfloat): JNFloatBuffer; overload; virtual;
    function put(para1: jint; para2: jfloat): JNFloatBuffer; overload; virtual;
    function put(para1: JNFloatBuffer): JNFloatBuffer; overload; virtual;
    function put(para1: Arr1jfloat; para2: jint; para3: jint): JNFloatBuffer; overload; virtual;
    function put(var para1: array of jfloat; para2: jint; para3: jint): JNFloatBuffer; overload; virtual;
    function compact(): JNFloatBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNHeapFloatBuffer = class external 'java.nio' name 'HeapFloatBuffer' (JNFloatBuffer)
  strict protected
    constructor create(para1: Arr1jfloat; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
    constructor create(const para1: array of jfloat; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
  public
    function slice(): JNFloatBuffer; overload; virtual;
    function duplicate(): JNFloatBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNFloatBuffer; overload; virtual;
  strict protected
    function ix(para1: jint): jint; overload; virtual;
  public
    function get(): jfloat; overload; virtual;
    function get(para1: jint): jfloat; overload; virtual;
    function get(para1: Arr1jfloat; para2: jint; para3: jint): JNFloatBuffer; overload; virtual;
    function get(var para1: array of jfloat; para2: jint; para3: jint): JNFloatBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function put(para1: jfloat): JNFloatBuffer; overload; virtual;
    function put(para1: jint; para2: jfloat): JNFloatBuffer; overload; virtual;
    function put(para1: Arr1jfloat; para2: jint; para3: jint): JNFloatBuffer; overload; virtual;
    function put(var para1: array of jfloat; para2: jint; para3: jint): JNFloatBuffer; overload; virtual;
    function put(para1: JNFloatBuffer): JNFloatBuffer; overload; virtual;
    function compact(): JNFloatBuffer; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNByteBufferAsIntBufferB = class external 'java.nio' name 'ByteBufferAsIntBufferB' (JNIntBuffer)
  strict protected
    final var
      fbb: JNByteBuffer; external name 'bb';
      foffset: jint; external name 'offset';
  public
    function slice(): JNIntBuffer; overload; virtual;
    function duplicate(): JNIntBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNIntBuffer; overload; virtual;
  strict protected
    function ix(para1: jint): jint; overload; virtual;
  public
    function get(): jint; overload; virtual;
    function get(para1: jint): jint; overload; virtual;
    function put(para1: jint): JNIntBuffer; overload; virtual;
    function put(para1: jint; para2: jint): JNIntBuffer; overload; virtual;
    function compact(): JNIntBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNByteBufferAsIntBufferL = class external 'java.nio' name 'ByteBufferAsIntBufferL' (JNIntBuffer)
  strict protected
    final var
      fbb: JNByteBuffer; external name 'bb';
      foffset: jint; external name 'offset';
  public
    function slice(): JNIntBuffer; overload; virtual;
    function duplicate(): JNIntBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNIntBuffer; overload; virtual;
  strict protected
    function ix(para1: jint): jint; overload; virtual;
  public
    function get(): jint; overload; virtual;
    function get(para1: jint): jint; overload; virtual;
    function put(para1: jint): JNIntBuffer; overload; virtual;
    function put(para1: jint; para2: jint): JNIntBuffer; overload; virtual;
    function compact(): JNIntBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNDirectIntBufferS = class external 'java.nio' name 'DirectIntBufferS' (JNIntBuffer, SNCDirectBuffer)
  strict protected
    final class var
      funsafe: SMUnsafe; external name 'unsafe';
      funaligned: jboolean; external name 'unaligned';
  public
    function viewedBuffer(): JLObject; overload; virtual;
    function cleaner(): SMCleaner; overload; virtual;
    function slice(): JNIntBuffer; overload; virtual;
    function duplicate(): JNIntBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNIntBuffer; overload; virtual;
    function address(): jlong; overload; virtual;
    function get(): jint; overload; virtual;
    function get(para1: jint): jint; overload; virtual;
    function get(para1: Arr1jint; para2: jint; para3: jint): JNIntBuffer; overload; virtual;
    function get(var para1: array of jint; para2: jint; para3: jint): JNIntBuffer; overload; virtual;
    function put(para1: jint): JNIntBuffer; overload; virtual;
    function put(para1: jint; para2: jint): JNIntBuffer; overload; virtual;
    function put(para1: JNIntBuffer): JNIntBuffer; overload; virtual;
    function put(para1: Arr1jint; para2: jint; para3: jint): JNIntBuffer; overload; virtual;
    function put(var para1: array of jint; para2: jint; para3: jint): JNIntBuffer; overload; virtual;
    function compact(): JNIntBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNDirectIntBufferU = class external 'java.nio' name 'DirectIntBufferU' (JNIntBuffer, SNCDirectBuffer)
  strict protected
    final class var
      funsafe: SMUnsafe; external name 'unsafe';
      funaligned: jboolean; external name 'unaligned';
  public
    function viewedBuffer(): JLObject; overload; virtual;
    function cleaner(): SMCleaner; overload; virtual;
    function slice(): JNIntBuffer; overload; virtual;
    function duplicate(): JNIntBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNIntBuffer; overload; virtual;
    function address(): jlong; overload; virtual;
    function get(): jint; overload; virtual;
    function get(para1: jint): jint; overload; virtual;
    function get(para1: Arr1jint; para2: jint; para3: jint): JNIntBuffer; overload; virtual;
    function get(var para1: array of jint; para2: jint; para3: jint): JNIntBuffer; overload; virtual;
    function put(para1: jint): JNIntBuffer; overload; virtual;
    function put(para1: jint; para2: jint): JNIntBuffer; overload; virtual;
    function put(para1: JNIntBuffer): JNIntBuffer; overload; virtual;
    function put(para1: Arr1jint; para2: jint; para3: jint): JNIntBuffer; overload; virtual;
    function put(var para1: array of jint; para2: jint; para3: jint): JNIntBuffer; overload; virtual;
    function compact(): JNIntBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNHeapIntBuffer = class external 'java.nio' name 'HeapIntBuffer' (JNIntBuffer)
  strict protected
    constructor create(para1: Arr1jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
    constructor create(const para1: array of jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
  public
    function slice(): JNIntBuffer; overload; virtual;
    function duplicate(): JNIntBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNIntBuffer; overload; virtual;
  strict protected
    function ix(para1: jint): jint; overload; virtual;
  public
    function get(): jint; overload; virtual;
    function get(para1: jint): jint; overload; virtual;
    function get(para1: Arr1jint; para2: jint; para3: jint): JNIntBuffer; overload; virtual;
    function get(var para1: array of jint; para2: jint; para3: jint): JNIntBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function put(para1: jint): JNIntBuffer; overload; virtual;
    function put(para1: jint; para2: jint): JNIntBuffer; overload; virtual;
    function put(para1: Arr1jint; para2: jint; para3: jint): JNIntBuffer; overload; virtual;
    function put(var para1: array of jint; para2: jint; para3: jint): JNIntBuffer; overload; virtual;
    function put(para1: JNIntBuffer): JNIntBuffer; overload; virtual;
    function compact(): JNIntBuffer; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNByteBufferAsLongBufferB = class external 'java.nio' name 'ByteBufferAsLongBufferB' (JNLongBuffer)
  strict protected
    final var
      fbb: JNByteBuffer; external name 'bb';
      foffset: jint; external name 'offset';
  public
    function slice(): JNLongBuffer; overload; virtual;
    function duplicate(): JNLongBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNLongBuffer; overload; virtual;
  strict protected
    function ix(para1: jint): jint; overload; virtual;
  public
    function get(): jlong; overload; virtual;
    function get(para1: jint): jlong; overload; virtual;
    function put(para1: jlong): JNLongBuffer; overload; virtual;
    function put(para1: jint; para2: jlong): JNLongBuffer; overload; virtual;
    function compact(): JNLongBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNByteBufferAsLongBufferL = class external 'java.nio' name 'ByteBufferAsLongBufferL' (JNLongBuffer)
  strict protected
    final var
      fbb: JNByteBuffer; external name 'bb';
      foffset: jint; external name 'offset';
  public
    function slice(): JNLongBuffer; overload; virtual;
    function duplicate(): JNLongBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNLongBuffer; overload; virtual;
  strict protected
    function ix(para1: jint): jint; overload; virtual;
  public
    function get(): jlong; overload; virtual;
    function get(para1: jint): jlong; overload; virtual;
    function put(para1: jlong): JNLongBuffer; overload; virtual;
    function put(para1: jint; para2: jlong): JNLongBuffer; overload; virtual;
    function compact(): JNLongBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNDirectLongBufferS = class external 'java.nio' name 'DirectLongBufferS' (JNLongBuffer, SNCDirectBuffer)
  strict protected
    final class var
      funsafe: SMUnsafe; external name 'unsafe';
      funaligned: jboolean; external name 'unaligned';
  public
    function viewedBuffer(): JLObject; overload; virtual;
    function cleaner(): SMCleaner; overload; virtual;
    function slice(): JNLongBuffer; overload; virtual;
    function duplicate(): JNLongBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNLongBuffer; overload; virtual;
    function address(): jlong; overload; virtual;
    function get(): jlong; overload; virtual;
    function get(para1: jint): jlong; overload; virtual;
    function get(para1: Arr1jlong; para2: jint; para3: jint): JNLongBuffer; overload; virtual;
    function get(var para1: array of jlong; para2: jint; para3: jint): JNLongBuffer; overload; virtual;
    function put(para1: jlong): JNLongBuffer; overload; virtual;
    function put(para1: jint; para2: jlong): JNLongBuffer; overload; virtual;
    function put(para1: JNLongBuffer): JNLongBuffer; overload; virtual;
    function put(para1: Arr1jlong; para2: jint; para3: jint): JNLongBuffer; overload; virtual;
    function put(var para1: array of jlong; para2: jint; para3: jint): JNLongBuffer; overload; virtual;
    function compact(): JNLongBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNDirectLongBufferU = class external 'java.nio' name 'DirectLongBufferU' (JNLongBuffer, SNCDirectBuffer)
  strict protected
    final class var
      funsafe: SMUnsafe; external name 'unsafe';
      funaligned: jboolean; external name 'unaligned';
  public
    function viewedBuffer(): JLObject; overload; virtual;
    function cleaner(): SMCleaner; overload; virtual;
    function slice(): JNLongBuffer; overload; virtual;
    function duplicate(): JNLongBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNLongBuffer; overload; virtual;
    function address(): jlong; overload; virtual;
    function get(): jlong; overload; virtual;
    function get(para1: jint): jlong; overload; virtual;
    function get(para1: Arr1jlong; para2: jint; para3: jint): JNLongBuffer; overload; virtual;
    function get(var para1: array of jlong; para2: jint; para3: jint): JNLongBuffer; overload; virtual;
    function put(para1: jlong): JNLongBuffer; overload; virtual;
    function put(para1: jint; para2: jlong): JNLongBuffer; overload; virtual;
    function put(para1: JNLongBuffer): JNLongBuffer; overload; virtual;
    function put(para1: Arr1jlong; para2: jint; para3: jint): JNLongBuffer; overload; virtual;
    function put(var para1: array of jlong; para2: jint; para3: jint): JNLongBuffer; overload; virtual;
    function compact(): JNLongBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNHeapLongBuffer = class external 'java.nio' name 'HeapLongBuffer' (JNLongBuffer)
  strict protected
    constructor create(para1: Arr1jlong; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
    constructor create(const para1: array of jlong; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
  public
    function slice(): JNLongBuffer; overload; virtual;
    function duplicate(): JNLongBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNLongBuffer; overload; virtual;
  strict protected
    function ix(para1: jint): jint; overload; virtual;
  public
    function get(): jlong; overload; virtual;
    function get(para1: jint): jlong; overload; virtual;
    function get(para1: Arr1jlong; para2: jint; para3: jint): JNLongBuffer; overload; virtual;
    function get(var para1: array of jlong; para2: jint; para3: jint): JNLongBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function put(para1: jlong): JNLongBuffer; overload; virtual;
    function put(para1: jint; para2: jlong): JNLongBuffer; overload; virtual;
    function put(para1: Arr1jlong; para2: jint; para3: jint): JNLongBuffer; overload; virtual;
    function put(var para1: array of jlong; para2: jint; para3: jint): JNLongBuffer; overload; virtual;
    function put(para1: JNLongBuffer): JNLongBuffer; overload; virtual;
    function compact(): JNLongBuffer; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNByteBufferAsShortBufferB = class external 'java.nio' name 'ByteBufferAsShortBufferB' (JNShortBuffer)
  strict protected
    final var
      fbb: JNByteBuffer; external name 'bb';
      foffset: jint; external name 'offset';
  public
    function slice(): JNShortBuffer; overload; virtual;
    function duplicate(): JNShortBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNShortBuffer; overload; virtual;
  strict protected
    function ix(para1: jint): jint; overload; virtual;
  public
    function get(): jshort; overload; virtual;
    function get(para1: jint): jshort; overload; virtual;
    function put(para1: jshort): JNShortBuffer; overload; virtual;
    function put(para1: jint; para2: jshort): JNShortBuffer; overload; virtual;
    function compact(): JNShortBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNByteBufferAsShortBufferL = class external 'java.nio' name 'ByteBufferAsShortBufferL' (JNShortBuffer)
  strict protected
    final var
      fbb: JNByteBuffer; external name 'bb';
      foffset: jint; external name 'offset';
  public
    function slice(): JNShortBuffer; overload; virtual;
    function duplicate(): JNShortBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNShortBuffer; overload; virtual;
  strict protected
    function ix(para1: jint): jint; overload; virtual;
  public
    function get(): jshort; overload; virtual;
    function get(para1: jint): jshort; overload; virtual;
    function put(para1: jshort): JNShortBuffer; overload; virtual;
    function put(para1: jint; para2: jshort): JNShortBuffer; overload; virtual;
    function compact(): JNShortBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNDirectShortBufferS = class external 'java.nio' name 'DirectShortBufferS' (JNShortBuffer, SNCDirectBuffer)
  strict protected
    final class var
      funsafe: SMUnsafe; external name 'unsafe';
      funaligned: jboolean; external name 'unaligned';
  public
    function viewedBuffer(): JLObject; overload; virtual;
    function cleaner(): SMCleaner; overload; virtual;
    function slice(): JNShortBuffer; overload; virtual;
    function duplicate(): JNShortBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNShortBuffer; overload; virtual;
    function address(): jlong; overload; virtual;
    function get(): jshort; overload; virtual;
    function get(para1: jint): jshort; overload; virtual;
    function get(para1: Arr1jshort; para2: jint; para3: jint): JNShortBuffer; overload; virtual;
    function get(var para1: array of jshort; para2: jint; para3: jint): JNShortBuffer; overload; virtual;
    function put(para1: jshort): JNShortBuffer; overload; virtual;
    function put(para1: jint; para2: jshort): JNShortBuffer; overload; virtual;
    function put(para1: JNShortBuffer): JNShortBuffer; overload; virtual;
    function put(para1: Arr1jshort; para2: jint; para3: jint): JNShortBuffer; overload; virtual;
    function put(var para1: array of jshort; para2: jint; para3: jint): JNShortBuffer; overload; virtual;
    function compact(): JNShortBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNDirectShortBufferU = class external 'java.nio' name 'DirectShortBufferU' (JNShortBuffer, SNCDirectBuffer)
  strict protected
    final class var
      funsafe: SMUnsafe; external name 'unsafe';
      funaligned: jboolean; external name 'unaligned';
  public
    function viewedBuffer(): JLObject; overload; virtual;
    function cleaner(): SMCleaner; overload; virtual;
    function slice(): JNShortBuffer; overload; virtual;
    function duplicate(): JNShortBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNShortBuffer; overload; virtual;
    function address(): jlong; overload; virtual;
    function get(): jshort; overload; virtual;
    function get(para1: jint): jshort; overload; virtual;
    function get(para1: Arr1jshort; para2: jint; para3: jint): JNShortBuffer; overload; virtual;
    function get(var para1: array of jshort; para2: jint; para3: jint): JNShortBuffer; overload; virtual;
    function put(para1: jshort): JNShortBuffer; overload; virtual;
    function put(para1: jint; para2: jshort): JNShortBuffer; overload; virtual;
    function put(para1: JNShortBuffer): JNShortBuffer; overload; virtual;
    function put(para1: Arr1jshort; para2: jint; para3: jint): JNShortBuffer; overload; virtual;
    function put(var para1: array of jshort; para2: jint; para3: jint): JNShortBuffer; overload; virtual;
    function compact(): JNShortBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNHeapShortBuffer = class external 'java.nio' name 'HeapShortBuffer' (JNShortBuffer)
  strict protected
    constructor create(para1: Arr1jshort; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
    constructor create(const para1: array of jshort; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
  public
    function slice(): JNShortBuffer; overload; virtual;
    function duplicate(): JNShortBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNShortBuffer; overload; virtual;
  strict protected
    function ix(para1: jint): jint; overload; virtual;
  public
    function get(): jshort; overload; virtual;
    function get(para1: jint): jshort; overload; virtual;
    function get(para1: Arr1jshort; para2: jint; para3: jint): JNShortBuffer; overload; virtual;
    function get(var para1: array of jshort; para2: jint; para3: jint): JNShortBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function put(para1: jshort): JNShortBuffer; overload; virtual;
    function put(para1: jint; para2: jshort): JNShortBuffer; overload; virtual;
    function put(para1: Arr1jshort; para2: jint; para3: jint): JNShortBuffer; overload; virtual;
    function put(var para1: array of jshort; para2: jint; para3: jint): JNShortBuffer; overload; virtual;
    function put(para1: JNShortBuffer): JNShortBuffer; overload; virtual;
    function compact(): JNShortBuffer; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNHeapByteBufferR = class external 'java.nio' name 'HeapByteBufferR' (JNHeapByteBuffer)
  strict protected
    constructor create(para1: Arr1jbyte; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
    constructor create(const para1: array of jbyte; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
  public
    function slice(): JNByteBuffer; overload; virtual;
    function duplicate(): JNByteBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNByteBuffer; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function put(para1: jbyte): JNByteBuffer; overload; virtual;
    function put(para1: jint; para2: jbyte): JNByteBuffer; overload; virtual;
    function put(para1: Arr1jbyte; para2: jint; para3: jint): JNByteBuffer; overload; virtual;
    function put(var para1: array of jbyte; para2: jint; para3: jint): JNByteBuffer; overload; virtual;
    function put(para1: JNByteBuffer): JNByteBuffer; overload; virtual;
    function compact(): JNByteBuffer; overload; virtual;
    function putChar(para1: jchar): JNByteBuffer; overload; virtual;
    function putChar(para1: jint; para2: jchar): JNByteBuffer; overload; virtual;
    function asCharBuffer(): JNCharBuffer; overload; virtual;
    function putShort(para1: jshort): JNByteBuffer; overload; virtual;
    function putShort(para1: jint; para2: jshort): JNByteBuffer; overload; virtual;
    function asShortBuffer(): JNShortBuffer; overload; virtual;
    function putInt(para1: jint): JNByteBuffer; overload; virtual;
    function putInt(para1: jint; para2: jint): JNByteBuffer; overload; virtual;
    function asIntBuffer(): JNIntBuffer; overload; virtual;
    function putLong(para1: jlong): JNByteBuffer; overload; virtual;
    function putLong(para1: jint; para2: jlong): JNByteBuffer; overload; virtual;
    function asLongBuffer(): JNLongBuffer; overload; virtual;
    function putFloat(para1: jfloat): JNByteBuffer; overload; virtual;
    function putFloat(para1: jint; para2: jfloat): JNByteBuffer; overload; virtual;
    function asFloatBuffer(): JNFloatBuffer; overload; virtual;
    function putDouble(para1: jdouble): JNByteBuffer; overload; virtual;
    function putDouble(para1: jint; para2: jdouble): JNByteBuffer; overload; virtual;
    function asDoubleBuffer(): JNDoubleBuffer; overload; virtual;
  end;

  JNDirectByteBuffer = class external 'java.nio' name 'DirectByteBuffer' (JNMappedByteBuffer, SNCDirectBuffer)
  public
    type
      InnerDeallocator = class;
      Arr1InnerDeallocator = array of InnerDeallocator;
      Arr2InnerDeallocator = array of Arr1InnerDeallocator;
      Arr3InnerDeallocator = array of Arr2InnerDeallocator;
      InnerDeallocator = class external 'java.nio' name 'Deallocator' 
      end;

  strict protected
    final class var
      funsafe: SMUnsafe; external name 'unsafe';
      funaligned: jboolean; external name 'unaligned';
  public
    function viewedBuffer(): JLObject; overload; virtual;
    function cleaner(): SMCleaner; overload; virtual;
  strict protected
    constructor create(para1: jint; para2: jlong; para3: JLRunnable); overload;
  public
    function slice(): JNByteBuffer; overload; virtual;
    function duplicate(): JNByteBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNByteBuffer; overload; virtual;
    function address(): jlong; overload; virtual;
    function get(): jbyte; overload; virtual;
    function get(para1: jint): jbyte; overload; virtual;
    function get(para1: Arr1jbyte; para2: jint; para3: jint): JNByteBuffer; overload; virtual;
    function get(var para1: array of jbyte; para2: jint; para3: jint): JNByteBuffer; overload; virtual;
    function put(para1: jbyte): JNByteBuffer; overload; virtual;
    function put(para1: jint; para2: jbyte): JNByteBuffer; overload; virtual;
    function put(para1: JNByteBuffer): JNByteBuffer; overload; virtual;
    function put(para1: Arr1jbyte; para2: jint; para3: jint): JNByteBuffer; overload; virtual;
    function put(var para1: array of jbyte; para2: jint; para3: jint): JNByteBuffer; overload; virtual;
    function compact(): JNByteBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function getChar(): jchar; overload; virtual;
    function getChar(para1: jint): jchar; overload; virtual;
    function putChar(para1: jchar): JNByteBuffer; overload; virtual;
    function putChar(para1: jint; para2: jchar): JNByteBuffer; overload; virtual;
    function asCharBuffer(): JNCharBuffer; overload; virtual;
    function getShort(): jshort; overload; virtual;
    function getShort(para1: jint): jshort; overload; virtual;
    function putShort(para1: jshort): JNByteBuffer; overload; virtual;
    function putShort(para1: jint; para2: jshort): JNByteBuffer; overload; virtual;
    function asShortBuffer(): JNShortBuffer; overload; virtual;
    function getInt(): jint; overload; virtual;
    function getInt(para1: jint): jint; overload; virtual;
    function putInt(para1: jint): JNByteBuffer; overload; virtual;
    function putInt(para1: jint; para2: jint): JNByteBuffer; overload; virtual;
    function asIntBuffer(): JNIntBuffer; overload; virtual;
    function getLong(): jlong; overload; virtual;
    function getLong(para1: jint): jlong; overload; virtual;
    function putLong(para1: jlong): JNByteBuffer; overload; virtual;
    function putLong(para1: jint; para2: jlong): JNByteBuffer; overload; virtual;
    function asLongBuffer(): JNLongBuffer; overload; virtual;
    function getFloat(): jfloat; overload; virtual;
    function getFloat(para1: jint): jfloat; overload; virtual;
    function putFloat(para1: jfloat): JNByteBuffer; overload; virtual;
    function putFloat(para1: jint; para2: jfloat): JNByteBuffer; overload; virtual;
    function asFloatBuffer(): JNFloatBuffer; overload; virtual;
    function getDouble(): jdouble; overload; virtual;
    function getDouble(para1: jint): jdouble; overload; virtual;
    function putDouble(para1: jdouble): JNByteBuffer; overload; virtual;
    function putDouble(para1: jint; para2: jdouble): JNByteBuffer; overload; virtual;
    function asDoubleBuffer(): JNDoubleBuffer; overload; virtual;
  end;

  JSBatchUpdateException = class external 'java.sql' name 'BatchUpdateException' (JSSQLException)
  public
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: Arr1jint); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; const para4: array of jint); overload;
    constructor create(para1: JLString; para2: JLString; para3: Arr1jint); overload;
    constructor create(para1: JLString; para2: JLString; const para3: array of jint); overload;
    constructor create(para1: JLString; para2: Arr1jint); overload;
    constructor create(para1: JLString; const para2: array of jint); overload;
    constructor create(para1: Arr1jint); overload;
    constructor create(const para1: array of jint); overload;
    constructor create(); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: Arr1jint; para2: JLThrowable); overload;
    constructor create(const para1: array of jint; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: Arr1jint; para3: JLThrowable); overload;
    constructor create(para1: JLString; const para2: array of jint; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: Arr1jint; para4: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; const para3: array of jint; para4: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: Arr1jint; para5: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; const para4: array of jint; para5: JLThrowable); overload;
    function getUpdateCounts(): Arr1jint; overload; virtual;
  end;

  JSSQLClientInfoException = class external 'java.sql' name 'SQLClientInfoException' (JSSQLException)
  public
    constructor create(); overload;
    constructor create(para1: JUMap); overload;
    constructor create(para1: JUMap; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JUMap); overload;
    constructor create(para1: JLString; para2: JUMap; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JUMap); overload;
    constructor create(para1: JLString; para2: JLString; para3: JUMap; para4: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JUMap); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JUMap; para5: JLThrowable); overload;
    function getFailedProperties(): JUMap; overload; virtual;
  end;

  JSSQLNonTransientException = class external 'java.sql' name 'SQLNonTransientException' (JSSQLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLThrowable); overload;
  end;

  JSSQLRecoverableException = class external 'java.sql' name 'SQLRecoverableException' (JSSQLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLThrowable); overload;
  end;

  JSSQLTransientException = class external 'java.sql' name 'SQLTransientException' (JSSQLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLThrowable); overload;
  end;

  JSSQLWarning = class external 'java.sql' name 'SQLWarning' (JSSQLException)
  public
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString); overload;
    constructor create(); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLThrowable); overload;
    function getNextWarning(): JSSQLWarning; overload; virtual;
    procedure setNextWarning(para1: JSSQLWarning); overload; virtual;
  end;

  JSRRowSetWarning = class external 'javax.sql.rowset' name 'RowSetWarning' (JSSQLException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    function getNextWarning(): JSRRowSetWarning; overload; virtual;
    procedure setNextWarning(para1: JSRRowSetWarning); overload; virtual;
  end;

  JSRSSerialException = class external 'javax.sql.rowset.serial' name 'SerialException' (JSSQLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JSRSSyncFactoryException = class external 'javax.sql.rowset.spi' name 'SyncFactoryException' (JSSQLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JSRSSyncProviderException = class external 'javax.sql.rowset.spi' name 'SyncProviderException' (JSSQLException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JSRSSyncResolver); overload;
    function getSyncResolver(): JSRSSyncResolver; overload; virtual;
    procedure setSyncResolver(para1: JSRSSyncResolver); overload; virtual;
  end;

  JULinkedHashSet = class external 'java.util' name 'LinkedHashSet' (JUHashSet, JUSet, JLCloneable, JISerializable)
  public
    constructor create(para1: jint; para2: jfloat); overload;
    constructor create(para1: jint); overload;
    constructor create(); overload;
    constructor create(para1: JUCollection); overload;
  end;

  JUNavigableSet = interface external 'java.util' name 'NavigableSet' (JUSortedSet)
    function lower(para1: JLObject): JLObject; overload;
    function floor(para1: JLObject): JLObject; overload;
    function ceiling(para1: JLObject): JLObject; overload;
    function higher(para1: JLObject): JLObject; overload;
    function pollFirst(): JLObject; overload;
    function pollLast(): JLObject; overload;
    function iterator(): JUIterator; overload;
    function descendingSet(): JUNavigableSet; overload;
    function descendingIterator(): JUIterator; overload;
    function subSet(para1: JLObject; para2: jboolean; para3: JLObject; para4: jboolean): JUNavigableSet; overload;
    function headSet(para1: JLObject; para2: jboolean): JUNavigableSet; overload;
    function tailSet(para1: JLObject; para2: jboolean): JUNavigableSet; overload;
    function subSet(para1: JLObject; para2: JLObject): JUSortedSet; overload;
    function headSet(para1: JLObject): JUSortedSet; overload;
    function tailSet(para1: JLObject): JUSortedSet; overload;
  end;

  JAPComponentPeer = interface external 'java.awt.peer' name 'ComponentPeer' 
    const
      SET_LOCATION = 1;
      SET_SIZE = 2;
      SET_BOUNDS = 3;
      SET_CLIENT_SIZE = 4;
      RESET_OPERATION = 5;
      NO_EMBEDDED_CHECK = 16384;
      DEFAULT_OPERATION = 3;
    function isObscured(): jboolean; overload;
    function canDetermineObscurity(): jboolean; overload;
    procedure setVisible(para1: jboolean); overload;
    procedure setEnabled(para1: jboolean); overload;
    procedure paint(para1: JAGraphics); overload;
    procedure repaint(para1: jlong; para2: jint; para3: jint; para4: jint; para5: jint); overload;
    procedure print(para1: JAGraphics); overload;
    procedure setBounds(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint); overload;
    procedure handleEvent(para1: JAAWTEvent); overload;
    procedure coalescePaintEvent(para1: JAEPaintEvent); overload;
    function getLocationOnScreen(): JAPoint; overload;
    function getPreferredSize(): JADimension; overload;
    function getMinimumSize(): JADimension; overload;
    function getColorModel(): JAIColorModel; overload;
    function getToolkit(): JAToolkit; overload;
    function getGraphics(): JAGraphics; overload;
    function getFontMetrics(para1: JAFont): JAFontMetrics; overload;
    procedure dispose(); overload;
    procedure setForeground(para1: JAColor); overload;
    procedure setBackground(para1: JAColor); overload;
    procedure setFont(para1: JAFont); overload;
    procedure updateCursorImmediately(); overload;
    function requestFocus(para1: JAComponent; para2: jboolean; para3: jboolean; para4: jlong; para5: SACausedFocusEvent.InnerCause): jboolean; overload;
    function isFocusable(): jboolean; overload;
    function createImage(para1: JAIImageProducer): JAImage; overload;
    function createImage(para1: jint; para2: jint): JAImage; overload;
    function createVolatileImage(para1: jint; para2: jint): JAIVolatileImage; overload;
    function prepareImage(para1: JAImage; para2: jint; para3: jint; para4: JAIImageObserver): jboolean; overload;
    function checkImage(para1: JAImage; para2: jint; para3: jint; para4: JAIImageObserver): jint; overload;
    function getGraphicsConfiguration(): JAGraphicsConfiguration; overload;
    function handlesWheelScrolling(): jboolean; overload;
    procedure createBuffers(para1: jint; para2: JABufferCapabilities); overload;  // throws java.awt.AWTException
    function getBackBuffer(): JAImage; overload;
    procedure flip(para1: jint; para2: jint; para3: jint; para4: jint; para5: JABufferCapabilities.InnerFlipContents); overload;
    procedure destroyBuffers(); overload;
    procedure reparent(para1: JAPContainerPeer); overload;
    function isReparentSupported(): jboolean; overload;
    procedure layout(); overload;
    function getBounds(): JARectangle; overload;
    procedure applyShape(para1: SJPRegion); overload;
    function preferredSize(): JADimension; overload;
    function minimumSize(): JADimension; overload;
    procedure show(); overload;
    procedure hide(); overload;
    procedure enable(); overload;
    procedure disable(); overload;
    procedure reshape(para1: jint; para2: jint; para3: jint; para4: jint); overload;
  end;

  JADefaultFocusTraversalPolicy = class external 'java.awt' name 'DefaultFocusTraversalPolicy' (JAContainerOrderFocusTraversalPolicy)
  public
    constructor create(); overload;
  strict protected
    function accept(para1: JAComponent): jboolean; overload; virtual;
  end;

  JSSwingContainerOrderFocusTraversalPolicy = class external 'javax.swing' name 'SwingContainerOrderFocusTraversalPolicy' (JAContainerOrderFocusTraversalPolicy)
  public
    function accept(para1: JAComponent): jboolean; overload; virtual;
  end;

  JSSortingFocusTraversalPolicy = class external 'javax.swing' name 'SortingFocusTraversalPolicy' (JSInternalFrameFocusTraversalPolicy)
  strict protected
    constructor create(); overload;
  public
    constructor create(para1: JUComparator); overload;
    function getComponentAfter(para1: JAContainer; para2: JAComponent): JAComponent; overload; virtual;
    function getComponentBefore(para1: JAContainer; para2: JAComponent): JAComponent; overload; virtual;
    function getFirstComponent(para1: JAContainer): JAComponent; overload; virtual;
    function getLastComponent(para1: JAContainer): JAComponent; overload; virtual;
    function getDefaultComponent(para1: JAContainer): JAComponent; overload; virtual;
    procedure setImplicitDownCycleTraversal(para1: jboolean); overload; virtual;
    function getImplicitDownCycleTraversal(): jboolean; overload; virtual;
  strict protected
    procedure setComparator(para1: JUComparator); overload; virtual;
    function getComparator(): JUComparator; overload; virtual;
    function accept(para1: JAComponent): jboolean; overload; virtual;
  end;

  JSDefaultButtonModel = class external 'javax.swing' name 'DefaultButtonModel' (JLObject, JSButtonModel, JISerializable)
  strict protected
    var
      fstateMask: jint; external name 'stateMask';
      factionCommand: JLString; external name 'actionCommand';
      fgroup: JSButtonGroup; external name 'group';
      fmnemonic: jint; external name 'mnemonic';
      fchangeEvent: JSEChangeEvent; external name 'changeEvent';
      flistenerList: JSEEventListenerList; external name 'listenerList';
  public
    const
      ARMED = 1;
      SELECTED = 2;
      PRESSED = 4;
      ENABLED = 8;
      ROLLOVER = 16;
  public
    constructor create(); overload;
    procedure setActionCommand(para1: JLString); overload; virtual;
    function getActionCommand(): JLString; overload; virtual;
    function isArmed(): jboolean; overload; virtual;
    function isSelected(): jboolean; overload; virtual;
    function isEnabled(): jboolean; overload; virtual;
    function isPressed(): jboolean; overload; virtual;
    function isRollover(): jboolean; overload; virtual;
    procedure setArmed(para1: jboolean); overload; virtual;
    procedure setEnabled(para1: jboolean); overload; virtual;
    procedure setSelected(para1: jboolean); overload; virtual;
    procedure setPressed(para1: jboolean); overload; virtual;
    procedure setRollover(para1: jboolean); overload; virtual;
    procedure setMnemonic(para1: jint); overload; virtual;
    function getMnemonic(): jint; overload; virtual;
    procedure addChangeListener(para1: JSEChangeListener); overload; virtual;
    procedure removeChangeListener(para1: JSEChangeListener); overload; virtual;
    function getChangeListeners(): Arr1JSEChangeListener; overload; virtual;
  strict protected
    procedure fireStateChanged(); overload; virtual;
  public
    procedure addActionListener(para1: JAEActionListener); overload; virtual;
    procedure removeActionListener(para1: JAEActionListener); overload; virtual;
    function getActionListeners(): Arr1JAEActionListener; overload; virtual;
  strict protected
    procedure fireActionPerformed(para1: JAEActionEvent); overload; virtual;
  public
    procedure addItemListener(para1: JAEItemListener); overload; virtual;
    procedure removeItemListener(para1: JAEItemListener); overload; virtual;
    function getItemListeners(): Arr1JAEItemListener; overload; virtual;
  strict protected
    procedure fireItemStateChanged(para1: JAEItemEvent); overload; virtual;
  public
    function getListeners(para1: JLClass): Arr1JUEventListener; overload; virtual;
    function getSelectedObjects(): Arr1JLObject; overload; virtual;
    procedure setGroup(para1: JSButtonGroup); overload; virtual;
    function getGroup(): JSButtonGroup; overload; virtual;
  end;

  JADefaultKeyboardFocusManager = class external 'java.awt' name 'DefaultKeyboardFocusManager' (JAKeyboardFocusManager)
  public
    type
      InnerDefaultKeyboardFocusManagerSentEvent = class;
      Arr1InnerDefaultKeyboardFocusManagerSentEvent = array of InnerDefaultKeyboardFocusManagerSentEvent;
      Arr2InnerDefaultKeyboardFocusManagerSentEvent = array of Arr1InnerDefaultKeyboardFocusManagerSentEvent;
      Arr3InnerDefaultKeyboardFocusManagerSentEvent = array of Arr2InnerDefaultKeyboardFocusManagerSentEvent;
      InnerTypeAheadMarker = class;
      Arr1InnerTypeAheadMarker = array of InnerTypeAheadMarker;
      Arr2InnerTypeAheadMarker = array of Arr1InnerTypeAheadMarker;
      Arr3InnerTypeAheadMarker = array of Arr2InnerTypeAheadMarker;
      InnerDefaultKeyboardFocusManagerSentEvent = class external 'java.awt' name 'DefaultKeyboardFocusManagerSentEvent' 
      end;

      InnerTypeAheadMarker = class external 'java.awt' name 'TypeAheadMarker' 
      end;

  public
    constructor create(); overload;
    function dispatchEvent(para1: JAAWTEvent): jboolean; overload; virtual;
    function dispatchKeyEvent(para1: JAEKeyEvent): jboolean; overload; virtual;
    function postProcessKeyEvent(para1: JAEKeyEvent): jboolean; overload; virtual;
    procedure processKeyEvent(para1: JAComponent; para2: JAEKeyEvent); overload; virtual;
  strict protected
    procedure enqueueKeyEvents(para1: jlong; para2: JAComponent); overload; virtual;
    procedure dequeueKeyEvents(para1: jlong; para2: JAComponent); overload; virtual;
    procedure discardKeyEvents(para1: JAComponent); overload; virtual;
  public
    procedure focusPreviousComponent(para1: JAComponent); overload; virtual;
    procedure focusNextComponent(para1: JAComponent); overload; virtual;
    procedure upFocusCycle(para1: JAComponent); overload; virtual;
    procedure downFocusCycle(para1: JAContainer); overload; virtual;
  end;

  JABorderLayout = class external 'java.awt' name 'BorderLayout' (JLObject, JALayoutManager2, JISerializable)
  public
    const
      NORTH = 'North';
      SOUTH = 'South';
      EAST = 'East';
      WEST = 'West';
      CENTER = 'Center';
      BEFORE_FIRST_LINE = 'First';
      AFTER_LAST_LINE = 'Last';
      BEFORE_LINE_BEGINS = 'Before';
      AFTER_LINE_ENDS = 'After';
      PAGE_START = 'First';
      PAGE_END = 'Last';
      LINE_START = 'Before';
      LINE_END = 'After';
  public
    constructor create(); overload;
    constructor create(para1: jint; para2: jint); overload;
    function getHgap(): jint; overload; virtual;
    procedure setHgap(para1: jint); overload; virtual;
    function getVgap(): jint; overload; virtual;
    procedure setVgap(para1: jint); overload; virtual;
    procedure addLayoutComponent(para1: JAComponent; para2: JLObject); overload; virtual;
    procedure addLayoutComponent(para1: JLString; para2: JAComponent); overload; virtual;
    procedure removeLayoutComponent(para1: JAComponent); overload; virtual;
    function getLayoutComponent(para1: JLObject): JAComponent; overload; virtual;
    function getLayoutComponent(para1: JAContainer; para2: JLObject): JAComponent; overload; virtual;
    function getConstraints(para1: JAComponent): JLObject; overload; virtual;
    function minimumLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    function preferredLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    function maximumLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    function getLayoutAlignmentX(para1: JAContainer): jfloat; overload; virtual;
    function getLayoutAlignmentY(para1: JAContainer): jfloat; overload; virtual;
    procedure invalidateLayout(para1: JAContainer); overload; virtual;
    procedure layoutContainer(para1: JAContainer); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JACardLayout = class external 'java.awt' name 'CardLayout' (JLObject, JALayoutManager2, JISerializable)
  public
    type
      InnerCard = class;
      Arr1InnerCard = array of InnerCard;
      Arr2InnerCard = array of Arr1InnerCard;
      Arr3InnerCard = array of Arr2InnerCard;
      InnerCard = class external 'java.awt' name 'Card' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: jint; para2: jint); overload;
    function getHgap(): jint; overload; virtual;
    procedure setHgap(para1: jint); overload; virtual;
    function getVgap(): jint; overload; virtual;
    procedure setVgap(para1: jint); overload; virtual;
    procedure addLayoutComponent(para1: JAComponent; para2: JLObject); overload; virtual;
    procedure addLayoutComponent(para1: JLString; para2: JAComponent); overload; virtual;
    procedure removeLayoutComponent(para1: JAComponent); overload; virtual;
    function preferredLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    function minimumLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    function maximumLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    function getLayoutAlignmentX(para1: JAContainer): jfloat; overload; virtual;
    function getLayoutAlignmentY(para1: JAContainer): jfloat; overload; virtual;
    procedure invalidateLayout(para1: JAContainer); overload; virtual;
    procedure layoutContainer(para1: JAContainer); overload; virtual;
    procedure first(para1: JAContainer); overload; virtual;
    procedure next(para1: JAContainer); overload; virtual;
    procedure previous(para1: JAContainer); overload; virtual;
    procedure last(para1: JAContainer); overload; virtual;
    procedure show(para1: JAContainer; para2: JLString); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JAGridBagLayout = class external 'java.awt' name 'GridBagLayout' (JLObject, JALayoutManager2, JISerializable)
  strict protected
    const
      MAXGRIDSIZE = 512;
      MINSIZE = 1;
      PREFERREDSIZE = 2;
  strict protected
    var
      fcomptable: JUHashtable; external name 'comptable';
      fdefaultConstraints: JAGridBagConstraints; external name 'defaultConstraints';
      flayoutInfo: JAGridBagLayoutInfo; external name 'layoutInfo';
  public
    var
      fcolumnWidths: Arr1jint; external name 'columnWidths';
      frowHeights: Arr1jint; external name 'rowHeights';
      fcolumnWeights: Arr1jdouble; external name 'columnWeights';
      frowWeights: Arr1jdouble; external name 'rowWeights';
  public
    constructor create(); overload;
    procedure setConstraints(para1: JAComponent; para2: JAGridBagConstraints); overload; virtual;
    function getConstraints(para1: JAComponent): JAGridBagConstraints; overload; virtual;
  strict protected
    function lookupConstraints(para1: JAComponent): JAGridBagConstraints; overload; virtual;
  public
    function getLayoutOrigin(): JAPoint; overload; virtual;
    function getLayoutDimensions(): Arr2jint; overload; virtual;
    function getLayoutWeights(): Arr2jdouble; overload; virtual;
    function location(para1: jint; para2: jint): JAPoint; overload; virtual;
    procedure addLayoutComponent(para1: JLString; para2: JAComponent); overload; virtual;
    procedure addLayoutComponent(para1: JAComponent; para2: JLObject); overload; virtual;
    procedure removeLayoutComponent(para1: JAComponent); overload; virtual;
    function preferredLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    function minimumLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    function maximumLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    function getLayoutAlignmentX(para1: JAContainer): jfloat; overload; virtual;
    function getLayoutAlignmentY(para1: JAContainer): jfloat; overload; virtual;
    procedure invalidateLayout(para1: JAContainer); overload; virtual;
    procedure layoutContainer(para1: JAContainer); overload; virtual;
    function toString(): JLString; overload; virtual;
  strict protected
    function getLayoutInfo(para1: JAContainer; para2: jint): JAGridBagLayoutInfo; overload; virtual;
    function GetLayoutInfo_(para1: JAContainer; para2: jint): JAGridBagLayoutInfo; external name 'GetLayoutInfo'; overload; virtual;
    procedure adjustForGravity(para1: JAGridBagConstraints; para2: JARectangle); overload; virtual;
    procedure AdjustForGravity_(para1: JAGridBagConstraints; para2: JARectangle); external name 'AdjustForGravity'; overload; virtual;
    function getMinSize(para1: JAContainer; para2: JAGridBagLayoutInfo): JADimension; overload; virtual;
    function GetMinSize_(para1: JAContainer; para2: JAGridBagLayoutInfo): JADimension; external name 'GetMinSize'; overload; virtual;
    procedure arrangeGrid(para1: JAContainer); overload; virtual;
    procedure ArrangeGrid_(para1: JAContainer); external name 'ArrangeGrid'; overload; virtual;
  end;

  JSBoxLayout = class external 'javax.swing' name 'BoxLayout' (JLObject, JALayoutManager2, JISerializable)
  public
    const
      X_AXIS = 0;
      Y_AXIS = 1;
      LINE_AXIS = 2;
      PAGE_AXIS = 3;
  public
    constructor create(para1: JAContainer; para2: jint); overload;
    function getTarget(): JAContainer; overload; virtual; final;
    function getAxis(): jint; overload; virtual; final;
    procedure invalidateLayout(para1: JAContainer); overload; virtual;
    procedure addLayoutComponent(para1: JLString; para2: JAComponent); overload; virtual;
    procedure removeLayoutComponent(para1: JAComponent); overload; virtual;
    procedure addLayoutComponent(para1: JAComponent; para2: JLObject); overload; virtual;
    function preferredLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    function minimumLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    function maximumLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    function getLayoutAlignmentX(para1: JAContainer): jfloat; overload; virtual;
    function getLayoutAlignmentY(para1: JAContainer): jfloat; overload; virtual;
    procedure layoutContainer(para1: JAContainer); overload; virtual;
  end;

  JSGroupLayout = class external 'javax.swing' name 'GroupLayout' (JLObject, JALayoutManager2)
  public
    type
      InnerAutoPreferredGapSpring = class;
      Arr1InnerAutoPreferredGapSpring = array of InnerAutoPreferredGapSpring;
      Arr2InnerAutoPreferredGapSpring = array of Arr1InnerAutoPreferredGapSpring;
      Arr3InnerAutoPreferredGapSpring = array of Arr2InnerAutoPreferredGapSpring;
      InnerBaselineGroup = class;
      Arr1InnerBaselineGroup = array of InnerBaselineGroup;
      Arr2InnerBaselineGroup = array of Arr1InnerBaselineGroup;
      Arr3InnerBaselineGroup = array of Arr2InnerBaselineGroup;
      InnerComponentSpring = class;
      Arr1InnerComponentSpring = array of InnerComponentSpring;
      Arr2InnerComponentSpring = array of Arr1InnerComponentSpring;
      Arr3InnerComponentSpring = array of Arr2InnerComponentSpring;
      InnerContainerAutoPreferredGapSpring = class;
      Arr1InnerContainerAutoPreferredGapSpring = array of InnerContainerAutoPreferredGapSpring;
      Arr2InnerContainerAutoPreferredGapSpring = array of Arr1InnerContainerAutoPreferredGapSpring;
      Arr3InnerContainerAutoPreferredGapSpring = array of Arr2InnerContainerAutoPreferredGapSpring;
      InnerGapSpring = class;
      Arr1InnerGapSpring = array of InnerGapSpring;
      Arr2InnerGapSpring = array of Arr1InnerGapSpring;
      Arr3InnerGapSpring = array of Arr2InnerGapSpring;
      InnerPreferredGapSpring = class;
      Arr1InnerPreferredGapSpring = array of InnerPreferredGapSpring;
      Arr2InnerPreferredGapSpring = array of Arr1InnerPreferredGapSpring;
      Arr3InnerPreferredGapSpring = array of Arr2InnerPreferredGapSpring;
      InnerAutoPreferredGapMatch = class;
      Arr1InnerAutoPreferredGapMatch = array of InnerAutoPreferredGapMatch;
      Arr2InnerAutoPreferredGapMatch = array of Arr1InnerAutoPreferredGapMatch;
      Arr3InnerAutoPreferredGapMatch = array of Arr2InnerAutoPreferredGapMatch;
      InnerComponentInfo = class;
      Arr1InnerComponentInfo = array of InnerComponentInfo;
      Arr2InnerComponentInfo = array of Arr1InnerComponentInfo;
      Arr3InnerComponentInfo = array of Arr2InnerComponentInfo;
      InnerLinkInfo = class;
      Arr1InnerLinkInfo = array of InnerLinkInfo;
      Arr2InnerLinkInfo = array of Arr1InnerLinkInfo;
      Arr3InnerLinkInfo = array of Arr2InnerLinkInfo;
      InnerSpring = class;
      Arr1InnerSpring = array of InnerSpring;
      Arr2InnerSpring = array of Arr1InnerSpring;
      Arr3InnerSpring = array of Arr2InnerSpring;
      InnerSpringDelta = class;
      Arr1InnerSpringDelta = array of InnerSpringDelta;
      Arr2InnerSpringDelta = array of Arr1InnerSpringDelta;
      Arr3InnerSpringDelta = array of Arr2InnerSpringDelta;
      InnerAutoPreferredGapSpring = class external 'javax.swing' name 'AutoPreferredGapSpring' 
      end;

      InnerBaselineGroup = class external 'javax.swing' name 'BaselineGroup' 
      end;

      InnerComponentSpring = class sealed external 'javax.swing' name 'ComponentSpring' 
      end;

      InnerContainerAutoPreferredGapSpring = class external 'javax.swing' name 'ContainerAutoPreferredGapSpring' 
      end;

      InnerGapSpring = class external 'javax.swing' name 'GapSpring' 
      end;

      InnerPreferredGapSpring = class external 'javax.swing' name 'PreferredGapSpring' 
      end;

      InnerAutoPreferredGapMatch = class sealed external 'javax.swing' name 'AutoPreferredGapMatch' 
      end;

      InnerComponentInfo = class external 'javax.swing' name 'ComponentInfo' 
      end;

      InnerLinkInfo = class external 'javax.swing' name 'LinkInfo' 
      end;

      InnerSpring = class abstract external 'javax.swing' name 'Spring' 
      end;

      InnerSpringDelta = class sealed external 'javax.swing' name 'SpringDelta' 
      end;

  public
    type
      InnerGroup = class;
      Arr1InnerGroup = array of InnerGroup;
      Arr2InnerGroup = array of Arr1InnerGroup;
      Arr3InnerGroup = array of Arr2InnerGroup;
      InnerParallelGroup = class;
      Arr1InnerParallelGroup = array of InnerParallelGroup;
      Arr2InnerParallelGroup = array of Arr1InnerParallelGroup;
      Arr3InnerParallelGroup = array of Arr2InnerParallelGroup;
      InnerAlignment = class;
      Arr1InnerAlignment = array of InnerAlignment;
      Arr2InnerAlignment = array of Arr1InnerAlignment;
      Arr3InnerAlignment = array of Arr2InnerAlignment;
      InnerSequentialGroup = class;
      Arr1InnerSequentialGroup = array of InnerSequentialGroup;
      Arr2InnerSequentialGroup = array of Arr1InnerSequentialGroup;
      Arr3InnerSequentialGroup = array of Arr2InnerSequentialGroup;
      InnerGroup = class abstract external 'javax.swing' name 'Group' 
      end;

      InnerParallelGroup = class external 'javax.swing' name 'ParallelGroup' 
      end;

      InnerAlignment = class sealed external 'javax.swing' name 'Alignment' (JLEnum)
      public
        final class var
          fLEADING: JSGroupLayout.InnerAlignment; external name 'LEADING';
          fTRAILING: JSGroupLayout.InnerAlignment; external name 'TRAILING';
          fCENTER: JSGroupLayout.InnerAlignment; external name 'CENTER';
          fBASELINE: JSGroupLayout.InnerAlignment; external name 'BASELINE';
      public
        class function values(): JSGroupLayout.Arr1InnerAlignment; static; overload;
        class function valueOf(para1: JLString): JSGroupLayout.InnerAlignment; static; overload;
      end;

      InnerSequentialGroup = class external 'javax.swing' name 'SequentialGroup' 
      end;

  public
    const
      DEFAULT_SIZE = -1;
      PREFERRED_SIZE = -2;
  public
    constructor create(para1: JAContainer); overload;
    procedure setHonorsVisibility(para1: jboolean); overload; virtual;
    function getHonorsVisibility(): jboolean; overload; virtual;
    procedure setHonorsVisibility(para1: JAComponent; para2: JLBoolean); overload; virtual;
    procedure setAutoCreateGaps(para1: jboolean); overload; virtual;
    function getAutoCreateGaps(): jboolean; overload; virtual;
    procedure setAutoCreateContainerGaps(para1: jboolean); overload; virtual;
    function getAutoCreateContainerGaps(): jboolean; overload; virtual;
    procedure setHorizontalGroup(para1: JSGroupLayout.InnerGroup); overload; virtual;
    procedure setVerticalGroup(para1: JSGroupLayout.InnerGroup); overload; virtual;
    function createSequentialGroup(): JSGroupLayout.InnerSequentialGroup; overload; virtual;
    function createParallelGroup(): JSGroupLayout.InnerParallelGroup; overload; virtual;
    function createParallelGroup(para1: JSGroupLayout.InnerAlignment): JSGroupLayout.InnerParallelGroup; overload; virtual;
    function createParallelGroup(para1: JSGroupLayout.InnerAlignment; para2: jboolean): JSGroupLayout.InnerParallelGroup; overload; virtual;
    function createBaselineGroup(para1: jboolean; para2: jboolean): JSGroupLayout.InnerParallelGroup; overload; virtual;
    procedure linkSize(para1: Arr1JAComponent); overload; virtual;
    procedure linkSize(const para1: array of JAComponent); overload; virtual;
    procedure linkSize(para1: jint; para2: Arr1JAComponent); overload; virtual;
    procedure linkSize(para1: jint; const para2: array of JAComponent); overload; virtual;
    procedure replace(para1: JAComponent; para2: JAComponent); overload; virtual;
    procedure setLayoutStyle(para1: JSLayoutStyle); overload; virtual;
    function getLayoutStyle(): JSLayoutStyle; overload; virtual;
    procedure addLayoutComponent(para1: JLString; para2: JAComponent); overload; virtual;
    procedure removeLayoutComponent(para1: JAComponent); overload; virtual;
    function preferredLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    function minimumLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    procedure layoutContainer(para1: JAContainer); overload; virtual;
    procedure addLayoutComponent(para1: JAComponent; para2: JLObject); overload; virtual;
    function maximumLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    function getLayoutAlignmentX(para1: JAContainer): jfloat; overload; virtual;
    function getLayoutAlignmentY(para1: JAContainer): jfloat; overload; virtual;
    procedure invalidateLayout(para1: JAContainer); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSOverlayLayout = class external 'javax.swing' name 'OverlayLayout' (JLObject, JALayoutManager2, JISerializable)
  public
    constructor create(para1: JAContainer); overload;
    function getTarget(): JAContainer; overload; virtual; final;
    procedure invalidateLayout(para1: JAContainer); overload; virtual;
    procedure addLayoutComponent(para1: JLString; para2: JAComponent); overload; virtual;
    procedure removeLayoutComponent(para1: JAComponent); overload; virtual;
    procedure addLayoutComponent(para1: JAComponent; para2: JLObject); overload; virtual;
    function preferredLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    function minimumLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    function maximumLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    function getLayoutAlignmentX(para1: JAContainer): jfloat; overload; virtual;
    function getLayoutAlignmentY(para1: JAContainer): jfloat; overload; virtual;
    procedure layoutContainer(para1: JAContainer); overload; virtual;
  end;

  JSSpringLayout = class external 'javax.swing' name 'SpringLayout' (JLObject, JALayoutManager2)
  public
    type
      InnerSpringProxy = class;
      Arr1InnerSpringProxy = array of InnerSpringProxy;
      Arr2InnerSpringProxy = array of Arr1InnerSpringProxy;
      Arr3InnerSpringProxy = array of Arr2InnerSpringProxy;
      InnerSpringProxy = class external 'javax.swing' name 'SpringProxy' 
      end;

  public
    type
      InnerConstraints = class;
      Arr1InnerConstraints = array of InnerConstraints;
      Arr2InnerConstraints = array of Arr1InnerConstraints;
      Arr3InnerConstraints = array of Arr2InnerConstraints;
      InnerConstraints = class external 'javax.swing' name 'Constraints' (JLObject)
      public
        constructor create(); overload;
        constructor create(para1: JSSpring; para2: JSSpring); overload;
        constructor create(para1: JSSpring; para2: JSSpring; para3: JSSpring; para4: JSSpring); overload;
        constructor create(para1: JAComponent); overload;
        procedure setX(para1: JSSpring); overload; virtual;
        function getX(): JSSpring; overload; virtual;
        procedure setY(para1: JSSpring); overload; virtual;
        function getY(): JSSpring; overload; virtual;
        procedure setWidth(para1: JSSpring); overload; virtual;
        function getWidth(): JSSpring; overload; virtual;
        procedure setHeight(para1: JSSpring); overload; virtual;
        function getHeight(): JSSpring; overload; virtual;
        procedure setConstraint(para1: JLString; para2: JSSpring); overload; virtual;
        function getConstraint(para1: JLString): JSSpring; overload; virtual;
      end;

  public
    const
      NORTH = 'North';
      SOUTH = 'South';
      EAST = 'East';
      WEST = 'West';
      HORIZONTAL_CENTER = 'HorizontalCenter';
      VERTICAL_CENTER = 'VerticalCenter';
      BASELINE = 'Baseline';
      WIDTH = 'Width';
      HEIGHT = 'Height';
  public
    constructor create(); overload;
    procedure addLayoutComponent(para1: JLString; para2: JAComponent); overload; virtual;
    procedure removeLayoutComponent(para1: JAComponent); overload; virtual;
    function minimumLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    function preferredLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    function maximumLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    procedure addLayoutComponent(para1: JAComponent; para2: JLObject); overload; virtual;
    function getLayoutAlignmentX(para1: JAContainer): jfloat; overload; virtual;
    function getLayoutAlignmentY(para1: JAContainer): jfloat; overload; virtual;
    procedure invalidateLayout(para1: JAContainer); overload; virtual;
    procedure putConstraint(para1: JLString; para2: JAComponent; para3: jint; para4: JLString; para5: JAComponent); overload; virtual;
    procedure putConstraint(para1: JLString; para2: JAComponent; para3: JSSpring; para4: JLString; para5: JAComponent); overload; virtual;
    function getConstraints(para1: JAComponent): JSSpringLayout.InnerConstraints; overload; virtual;
    function getConstraint(para1: JLString; para2: JAComponent): JSSpring; overload; virtual;
    procedure layoutContainer(para1: JAContainer); overload; virtual;
  end;

  JAGGeneralPath = class sealed external 'java.awt.geom' name 'GeneralPath' (JAGPath2D.InnerFloat)
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jint); overload;
    constructor create(para1: JAShape); overload;
  end;

  JAGArc2D = class abstract external 'java.awt.geom' name 'Arc2D' (JAGRectangularShape)
  public
    type
      InnerDouble = class;
      Arr1InnerDouble = array of InnerDouble;
      Arr2InnerDouble = array of Arr1InnerDouble;
      Arr3InnerDouble = array of Arr2InnerDouble;
      InnerFloat = class;
      Arr1InnerFloat = array of InnerFloat;
      Arr2InnerFloat = array of Arr1InnerFloat;
      Arr3InnerFloat = array of Arr2InnerFloat;
      InnerDouble = class external 'java.awt.geom' name 'Double' (JAGArc2D, JISerializable)
      public
        var
          fx: jdouble; external name 'x';
          fy: jdouble; external name 'y';
          fwidth: jdouble; external name 'width';
          fheight: jdouble; external name 'height';
          fstart: jdouble; external name 'start';
          fextent: jdouble; external name 'extent';
      public
        constructor create(); overload;
        constructor create(para1: jint); overload;
        constructor create(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble; para6: jdouble; para7: jint); overload;
        constructor create(para1: JAGRectangle2D; para2: jdouble; para3: jdouble; para4: jint); overload;
        function getX(): jdouble; overload; virtual;
        function getY(): jdouble; overload; virtual;
        function getWidth(): jdouble; overload; virtual;
        function getHeight(): jdouble; overload; virtual;
        function getAngleStart(): jdouble; overload; virtual;
        function getAngleExtent(): jdouble; overload; virtual;
        function isEmpty(): jboolean; overload; virtual;
        procedure setArc(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble; para6: jdouble; para7: jint); overload; virtual;
        procedure setAngleStart(para1: jdouble); overload; virtual;
        procedure setAngleExtent(para1: jdouble); overload; virtual;
      strict protected
        function makeBounds(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble): JAGRectangle2D; overload; virtual;
      end;

      InnerFloat = class external 'java.awt.geom' name 'Float' (JAGArc2D, JISerializable)
      public
        var
          fx: jfloat; external name 'x';
          fy: jfloat; external name 'y';
          fwidth: jfloat; external name 'width';
          fheight: jfloat; external name 'height';
          fstart: jfloat; external name 'start';
          fextent: jfloat; external name 'extent';
      public
        constructor create(); overload;
        constructor create(para1: jint); overload;
        constructor create(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat; para7: jint); overload;
        constructor create(para1: JAGRectangle2D; para2: jfloat; para3: jfloat; para4: jint); overload;
        function getX(): jdouble; overload; virtual;
        function getY(): jdouble; overload; virtual;
        function getWidth(): jdouble; overload; virtual;
        function getHeight(): jdouble; overload; virtual;
        function getAngleStart(): jdouble; overload; virtual;
        function getAngleExtent(): jdouble; overload; virtual;
        function isEmpty(): jboolean; overload; virtual;
        procedure setArc(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble; para6: jdouble; para7: jint); overload; virtual;
        procedure setAngleStart(para1: jdouble); overload; virtual;
        procedure setAngleExtent(para1: jdouble); overload; virtual;
      strict protected
        function makeBounds(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble): JAGRectangle2D; overload; virtual;
      end;

  public
    const
      OPEN = 0;
      CHORD = 1;
      PIE = 2;
  strict protected
    constructor create(para1: jint); overload;
  public
    function getAngleStart(): jdouble; overload; virtual; abstract;
    function getAngleExtent(): jdouble; overload; virtual; abstract;
    function getArcType(): jint; overload; virtual;
    function getStartPoint(): JAGPoint2D; overload; virtual;
    function getEndPoint(): JAGPoint2D; overload; virtual;
    procedure setArc(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble; para6: jdouble; para7: jint); overload; virtual; abstract;
    procedure setArc(para1: JAGPoint2D; para2: JAGDimension2D; para3: jdouble; para4: jdouble; para5: jint); overload; virtual;
    procedure setArc(para1: JAGRectangle2D; para2: jdouble; para3: jdouble; para4: jint); overload; virtual;
    procedure setArc(para1: JAGArc2D); overload; virtual;
    procedure setArcByCenter(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble; para6: jint); overload; virtual;
    procedure setArcByTangent(para1: JAGPoint2D; para2: JAGPoint2D; para3: JAGPoint2D; para4: jdouble); overload; virtual;
    procedure setAngleStart(para1: jdouble); overload; virtual; abstract;
    procedure setAngleExtent(para1: jdouble); overload; virtual; abstract;
    procedure setAngleStart(para1: JAGPoint2D); overload; virtual;
    procedure setAngles(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble); overload; virtual;
    procedure setAngles(para1: JAGPoint2D; para2: JAGPoint2D); overload; virtual;
    procedure setArcType(para1: jint); overload; virtual;
    procedure setFrame(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble); overload; virtual;
    function getBounds2D(): JAGRectangle2D; overload; virtual;
  strict protected
    function makeBounds(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble): JAGRectangle2D; overload; virtual; abstract;
  public
    function containsAngle(para1: jdouble): jboolean; overload; virtual;
    function contains(para1: jdouble; para2: jdouble): jboolean; overload; virtual;
    function intersects(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble): jboolean; overload; virtual;
    function contains(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble): jboolean; overload; virtual;
    function contains(para1: JAGRectangle2D): jboolean; overload; virtual;
    function getPathIterator(para1: JAGAffineTransform): JAGPathIterator; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JAGEllipse2D = class abstract external 'java.awt.geom' name 'Ellipse2D' (JAGRectangularShape)
  public
    type
      InnerDouble = class;
      Arr1InnerDouble = array of InnerDouble;
      Arr2InnerDouble = array of Arr1InnerDouble;
      Arr3InnerDouble = array of Arr2InnerDouble;
      InnerFloat = class;
      Arr1InnerFloat = array of InnerFloat;
      Arr2InnerFloat = array of Arr1InnerFloat;
      Arr3InnerFloat = array of Arr2InnerFloat;
      InnerDouble = class external 'java.awt.geom' name 'Double' (JAGEllipse2D, JISerializable)
      public
        var
          fx: jdouble; external name 'x';
          fy: jdouble; external name 'y';
          fwidth: jdouble; external name 'width';
          fheight: jdouble; external name 'height';
      public
        constructor create(); overload;
        constructor create(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble); overload;
        function getX(): jdouble; overload; virtual;
        function getY(): jdouble; overload; virtual;
        function getWidth(): jdouble; overload; virtual;
        function getHeight(): jdouble; overload; virtual;
        function isEmpty(): jboolean; overload; virtual;
        procedure setFrame(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble); overload; virtual;
        function getBounds2D(): JAGRectangle2D; overload; virtual;
      end;

      InnerFloat = class external 'java.awt.geom' name 'Float' (JAGEllipse2D, JISerializable)
      public
        var
          fx: jfloat; external name 'x';
          fy: jfloat; external name 'y';
          fwidth: jfloat; external name 'width';
          fheight: jfloat; external name 'height';
      public
        constructor create(); overload;
        constructor create(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); overload;
        function getX(): jdouble; overload; virtual;
        function getY(): jdouble; overload; virtual;
        function getWidth(): jdouble; overload; virtual;
        function getHeight(): jdouble; overload; virtual;
        function isEmpty(): jboolean; overload; virtual;
        procedure setFrame(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); overload; virtual;
        procedure setFrame(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble); overload; virtual;
        function getBounds2D(): JAGRectangle2D; overload; virtual;
      end;

  strict protected
    constructor create(); overload;
  public
    function contains(para1: jdouble; para2: jdouble): jboolean; overload; virtual;
    function intersects(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble): jboolean; overload; virtual;
    function contains(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble): jboolean; overload; virtual;
    function getPathIterator(para1: JAGAffineTransform): JAGPathIterator; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JAGRectangle2D = class abstract external 'java.awt.geom' name 'Rectangle2D' (JAGRectangularShape)
  public
    type
      InnerDouble = class;
      Arr1InnerDouble = array of InnerDouble;
      Arr2InnerDouble = array of Arr1InnerDouble;
      Arr3InnerDouble = array of Arr2InnerDouble;
      InnerFloat = class;
      Arr1InnerFloat = array of InnerFloat;
      Arr2InnerFloat = array of Arr1InnerFloat;
      Arr3InnerFloat = array of Arr2InnerFloat;
      InnerDouble = class external 'java.awt.geom' name 'Double' (JAGRectangle2D, JISerializable)
      public
        var
          fx: jdouble; external name 'x';
          fy: jdouble; external name 'y';
          fwidth: jdouble; external name 'width';
          fheight: jdouble; external name 'height';
      public
        constructor create(); overload;
        constructor create(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble); overload;
        function getX(): jdouble; overload; virtual;
        function getY(): jdouble; overload; virtual;
        function getWidth(): jdouble; overload; virtual;
        function getHeight(): jdouble; overload; virtual;
        function isEmpty(): jboolean; overload; virtual;
        procedure setRect(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble); overload; virtual;
        procedure setRect(para1: JAGRectangle2D); overload; virtual;
        function outcode(para1: jdouble; para2: jdouble): jint; overload; virtual;
        function getBounds2D(): JAGRectangle2D; overload; virtual;
        function createIntersection(para1: JAGRectangle2D): JAGRectangle2D; overload; virtual;
        function createUnion(para1: JAGRectangle2D): JAGRectangle2D; overload; virtual;
        function toString(): JLString; overload; virtual;
      end;

      InnerFloat = class external 'java.awt.geom' name 'Float' (JAGRectangle2D, JISerializable)
      public
        var
          fx: jfloat; external name 'x';
          fy: jfloat; external name 'y';
          fwidth: jfloat; external name 'width';
          fheight: jfloat; external name 'height';
      public
        constructor create(); overload;
        constructor create(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); overload;
        function getX(): jdouble; overload; virtual;
        function getY(): jdouble; overload; virtual;
        function getWidth(): jdouble; overload; virtual;
        function getHeight(): jdouble; overload; virtual;
        function isEmpty(): jboolean; overload; virtual;
        procedure setRect(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); overload; virtual;
        procedure setRect(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble); overload; virtual;
        procedure setRect(para1: JAGRectangle2D); overload; virtual;
        function outcode(para1: jdouble; para2: jdouble): jint; overload; virtual;
        function getBounds2D(): JAGRectangle2D; overload; virtual;
        function createIntersection(para1: JAGRectangle2D): JAGRectangle2D; overload; virtual;
        function createUnion(para1: JAGRectangle2D): JAGRectangle2D; overload; virtual;
        function toString(): JLString; overload; virtual;
      end;

  public
    const
      OUT_LEFT = 1;
      OUT_TOP = 2;
      OUT_RIGHT = 4;
      OUT_BOTTOM = 8;
  strict protected
    constructor create(); overload;
  public
    procedure setRect(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble); overload; virtual; abstract;
    procedure setRect(para1: JAGRectangle2D); overload; virtual;
    function intersectsLine(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble): jboolean; overload; virtual;
    function intersectsLine(para1: JAGLine2D): jboolean; overload; virtual;
    function outcode(para1: jdouble; para2: jdouble): jint; overload; virtual; abstract;
    function outcode(para1: JAGPoint2D): jint; overload; virtual;
    procedure setFrame(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble); overload; virtual;
    function getBounds2D(): JAGRectangle2D; overload; virtual;
    function contains(para1: jdouble; para2: jdouble): jboolean; overload; virtual;
    function intersects(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble): jboolean; overload; virtual;
    function contains(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble): jboolean; overload; virtual;
    function createIntersection(para1: JAGRectangle2D): JAGRectangle2D; overload; virtual; abstract;
    class procedure intersect(para1: JAGRectangle2D; para2: JAGRectangle2D; para3: JAGRectangle2D); static; overload;
    function createUnion(para1: JAGRectangle2D): JAGRectangle2D; overload; virtual; abstract;
    class procedure union(para1: JAGRectangle2D; para2: JAGRectangle2D; para3: JAGRectangle2D); static; overload;
    procedure add(para1: jdouble; para2: jdouble); overload; virtual;
    procedure add(para1: JAGPoint2D); overload; virtual;
    procedure add(para1: JAGRectangle2D); overload; virtual;
    function getPathIterator(para1: JAGAffineTransform): JAGPathIterator; overload; virtual;
    function getPathIterator(para1: JAGAffineTransform; para2: jdouble): JAGPathIterator; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JAGRoundRectangle2D = class abstract external 'java.awt.geom' name 'RoundRectangle2D' (JAGRectangularShape)
  public
    type
      InnerDouble = class;
      Arr1InnerDouble = array of InnerDouble;
      Arr2InnerDouble = array of Arr1InnerDouble;
      Arr3InnerDouble = array of Arr2InnerDouble;
      InnerFloat = class;
      Arr1InnerFloat = array of InnerFloat;
      Arr2InnerFloat = array of Arr1InnerFloat;
      Arr3InnerFloat = array of Arr2InnerFloat;
      InnerDouble = class external 'java.awt.geom' name 'Double' (JAGRoundRectangle2D, JISerializable)
      public
        var
          fx: jdouble; external name 'x';
          fy: jdouble; external name 'y';
          fwidth: jdouble; external name 'width';
          fheight: jdouble; external name 'height';
          farcwidth: jdouble; external name 'arcwidth';
          farcheight: jdouble; external name 'archeight';
      public
        constructor create(); overload;
        constructor create(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble; para6: jdouble); overload;
        function getX(): jdouble; overload; virtual;
        function getY(): jdouble; overload; virtual;
        function getWidth(): jdouble; overload; virtual;
        function getHeight(): jdouble; overload; virtual;
        function getArcWidth(): jdouble; overload; virtual;
        function getArcHeight(): jdouble; overload; virtual;
        function isEmpty(): jboolean; overload; virtual;
        procedure setRoundRect(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble; para6: jdouble); overload; virtual;
        procedure setRoundRect(para1: JAGRoundRectangle2D); overload; virtual;
        function getBounds2D(): JAGRectangle2D; overload; virtual;
      end;

      InnerFloat = class external 'java.awt.geom' name 'Float' (JAGRoundRectangle2D, JISerializable)
      public
        var
          fx: jfloat; external name 'x';
          fy: jfloat; external name 'y';
          fwidth: jfloat; external name 'width';
          fheight: jfloat; external name 'height';
          farcwidth: jfloat; external name 'arcwidth';
          farcheight: jfloat; external name 'archeight';
      public
        constructor create(); overload;
        constructor create(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat); overload;
        function getX(): jdouble; overload; virtual;
        function getY(): jdouble; overload; virtual;
        function getWidth(): jdouble; overload; virtual;
        function getHeight(): jdouble; overload; virtual;
        function getArcWidth(): jdouble; overload; virtual;
        function getArcHeight(): jdouble; overload; virtual;
        function isEmpty(): jboolean; overload; virtual;
        procedure setRoundRect(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat; para6: jfloat); overload; virtual;
        procedure setRoundRect(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble; para6: jdouble); overload; virtual;
        procedure setRoundRect(para1: JAGRoundRectangle2D); overload; virtual;
        function getBounds2D(): JAGRectangle2D; overload; virtual;
      end;

  strict protected
    constructor create(); overload;
  public
    function getArcWidth(): jdouble; overload; virtual; abstract;
    function getArcHeight(): jdouble; overload; virtual; abstract;
    procedure setRoundRect(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble; para5: jdouble; para6: jdouble); overload; virtual; abstract;
    procedure setRoundRect(para1: JAGRoundRectangle2D); overload; virtual;
    procedure setFrame(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble); overload; virtual;
    function contains(para1: jdouble; para2: jdouble): jboolean; overload; virtual;
    function intersects(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble): jboolean; overload; virtual;
    function contains(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble): jboolean; overload; virtual;
    function getPathIterator(para1: JAGAffineTransform): JAGPathIterator; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JAColor = class external 'java.awt' name 'Color' (JLObject, JAPaint, JISerializable)
  public
    final class var
      fwhite: JAColor; external name 'white';
      fWHITE_: JAColor; external name 'WHITE_';
      flightGray: JAColor; external name 'lightGray';
      fLIGHT_GRAY: JAColor; external name 'LIGHT_GRAY';
      fgray: JAColor; external name 'gray';
      fGRAY_: JAColor; external name 'GRAY_';
      fdarkGray: JAColor; external name 'darkGray';
      fDARK_GRAY: JAColor; external name 'DARK_GRAY';
      fblack: JAColor; external name 'black';
      fBLACK_: JAColor; external name 'BLACK_';
      fred: JAColor; external name 'red';
      fRED_: JAColor; external name 'RED_';
      fpink: JAColor; external name 'pink';
      fPINK_: JAColor; external name 'PINK_';
      forange: JAColor; external name 'orange';
      fORANGE_: JAColor; external name 'ORANGE_';
      fyellow: JAColor; external name 'yellow';
      fYELLOW_: JAColor; external name 'YELLOW_';
      fgreen: JAColor; external name 'green';
      fGREEN_: JAColor; external name 'GREEN_';
      fmagenta: JAColor; external name 'magenta';
      fMAGENTA_: JAColor; external name 'MAGENTA_';
      fcyan: JAColor; external name 'cyan';
      fCYAN_: JAColor; external name 'CYAN_';
      fblue: JAColor; external name 'blue';
      fBLUE_: JAColor; external name 'BLUE_';
  public
    constructor create(para1: jint; para2: jint; para3: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jboolean); overload;
    constructor create(para1: jfloat; para2: jfloat; para3: jfloat); overload;
    constructor create(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat); overload;
    constructor create(para1: JACColorSpace; para2: Arr1jfloat; para3: jfloat); overload;
    constructor create(para1: JACColorSpace; const para2: array of jfloat; para3: jfloat); overload;
    function getRed(): jint; overload; virtual;
    function getGreen(): jint; overload; virtual;
    function getBlue(): jint; overload; virtual;
    function getAlpha(): jint; overload; virtual;
    function getRGB(): jint; overload; virtual;
    function brighter(): JAColor; overload; virtual;
    function darker(): JAColor; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    class function decode(para1: JLString): JAColor; static; overload;  // throws java.lang.NumberFormatException
    class function getColor(para1: JLString): JAColor; static; overload;
    class function getColor(para1: JLString; para2: JAColor): JAColor; static; overload;
    class function getColor(para1: JLString; para2: jint): JAColor; static; overload;
    class function HSBtoRGB(para1: jfloat; para2: jfloat; para3: jfloat): jint; static; overload;
    class function RGBtoHSB(para1: jint; para2: jint; para3: jint; para4: Arr1jfloat): Arr1jfloat; static; overload;
    class function RGBtoHSB(para1: jint; para2: jint; para3: jint; var para4: array of jfloat): Arr1jfloat; static; overload;
    class function getHSBColor(para1: jfloat; para2: jfloat; para3: jfloat): JAColor; static; overload;
    function getRGBComponents(para1: Arr1jfloat): Arr1jfloat; overload; virtual;
    function getRGBComponents(var para1: array of jfloat): Arr1jfloat; overload; virtual;
    function getRGBColorComponents(para1: Arr1jfloat): Arr1jfloat; overload; virtual;
    function getRGBColorComponents(var para1: array of jfloat): Arr1jfloat; overload; virtual;
    function getComponents(para1: Arr1jfloat): Arr1jfloat; overload; virtual;
    function getComponents(var para1: array of jfloat): Arr1jfloat; overload; virtual;
    function getColorComponents(para1: Arr1jfloat): Arr1jfloat; overload; virtual;
    function getColorComponents(var para1: array of jfloat): Arr1jfloat; overload; virtual;
    function getComponents(para1: JACColorSpace; para2: Arr1jfloat): Arr1jfloat; overload; virtual;
    function getComponents(para1: JACColorSpace; var para2: array of jfloat): Arr1jfloat; overload; virtual;
    function getColorComponents(para1: JACColorSpace; para2: Arr1jfloat): Arr1jfloat; overload; virtual;
    function getColorComponents(para1: JACColorSpace; var para2: array of jfloat): Arr1jfloat; overload; virtual;
    function getColorSpace(): JACColorSpace; overload; virtual;
    function createContext(para1: JAIColorModel; para2: JARectangle; para3: JAGRectangle2D; para4: JAGAffineTransform; para5: JARenderingHints): JAPaintContext; overload; virtual;
    function getTransparency(): jint; overload; virtual;
  end;

  JAGradientPaint = class external 'java.awt' name 'GradientPaint' (JLObject, JAPaint)
  public
    constructor create(para1: jfloat; para2: jfloat; para3: JAColor; para4: jfloat; para5: jfloat; para6: JAColor); overload;
    constructor create(para1: JAGPoint2D; para2: JAColor; para3: JAGPoint2D; para4: JAColor); overload;
    constructor create(para1: jfloat; para2: jfloat; para3: JAColor; para4: jfloat; para5: jfloat; para6: JAColor; para7: jboolean); overload;
    constructor create(para1: JAGPoint2D; para2: JAColor; para3: JAGPoint2D; para4: JAColor; para5: jboolean); overload;
    function getPoint1(): JAGPoint2D; overload; virtual;
    function getColor1(): JAColor; overload; virtual;
    function getPoint2(): JAGPoint2D; overload; virtual;
    function getColor2(): JAColor; overload; virtual;
    function isCyclic(): jboolean; overload; virtual;
    function createContext(para1: JAIColorModel; para2: JARectangle; para3: JAGRectangle2D; para4: JAGAffineTransform; para5: JARenderingHints): JAPaintContext; overload; virtual;
    function getTransparency(): jint; overload; virtual;
  end;

  JAMultipleGradientPaint = class abstract external 'java.awt' name 'MultipleGradientPaint' (JLObject, JAPaint)
  public
    type
      InnerColorSpaceType = class;
      Arr1InnerColorSpaceType = array of InnerColorSpaceType;
      Arr2InnerColorSpaceType = array of Arr1InnerColorSpaceType;
      Arr3InnerColorSpaceType = array of Arr2InnerColorSpaceType;
      InnerCycleMethod = class;
      Arr1InnerCycleMethod = array of InnerCycleMethod;
      Arr2InnerCycleMethod = array of Arr1InnerCycleMethod;
      Arr3InnerCycleMethod = array of Arr2InnerCycleMethod;
      InnerColorSpaceType = class sealed external 'java.awt' name 'ColorSpaceType' (JLEnum)
      public
        final class var
          fSRGB: JAMultipleGradientPaint.InnerColorSpaceType; external name 'SRGB';
          fLINEAR_RGB: JAMultipleGradientPaint.InnerColorSpaceType; external name 'LINEAR_RGB';
      public
        class function values(): JAMultipleGradientPaint.Arr1InnerColorSpaceType; static; overload;
        class function valueOf(para1: JLString): JAMultipleGradientPaint.InnerColorSpaceType; static; overload;
      end;

      InnerCycleMethod = class sealed external 'java.awt' name 'CycleMethod' (JLEnum)
      public
        final class var
          fNO_CYCLE: JAMultipleGradientPaint.InnerCycleMethod; external name 'NO_CYCLE';
          fREFLECT: JAMultipleGradientPaint.InnerCycleMethod; external name 'REFLECT';
          fREPEAT: JAMultipleGradientPaint.InnerCycleMethod; external name 'REPEAT';
      public
        class function values(): JAMultipleGradientPaint.Arr1InnerCycleMethod; static; overload;
        class function valueOf(para1: JLString): JAMultipleGradientPaint.InnerCycleMethod; static; overload;
      end;

  public
    function getFractions(): Arr1jfloat; overload; virtual; final;
    function getColors(): Arr1JAColor; overload; virtual; final;
    function getCycleMethod(): JAMultipleGradientPaint.InnerCycleMethod; overload; virtual; final;
    function getColorSpace(): JAMultipleGradientPaint.InnerColorSpaceType; overload; virtual; final;
    function getTransform(): JAGAffineTransform; overload; virtual; final;
    function getTransparency(): jint; overload; virtual; final;
  end;

  JATexturePaint = class external 'java.awt' name 'TexturePaint' (JLObject, JAPaint)
  public
    constructor create(para1: JAIBufferedImage; para2: JAGRectangle2D); overload;
    function getImage(): JAIBufferedImage; overload; virtual;
    function getAnchorRect(): JAGRectangle2D; overload; virtual;
    function createContext(para1: JAIColorModel; para2: JARectangle; para3: JAGRectangle2D; para4: JAGAffineTransform; para5: JARenderingHints): JAPaintContext; overload; virtual;
    function getTransparency(): jint; overload; virtual;
  end;

  JAIComponentColorModel = class external 'java.awt.image' name 'ComponentColorModel' (JAIColorModel)
  public
    constructor create(para1: JACColorSpace; para2: Arr1jint; para3: jboolean; para4: jboolean; para5: jint; para6: jint); overload;
    constructor create(para1: JACColorSpace; const para2: array of jint; para3: jboolean; para4: jboolean; para5: jint; para6: jint); overload;
    constructor create(para1: JACColorSpace; para2: jboolean; para3: jboolean; para4: jint; para5: jint); overload;
    function getRed(para1: jint): jint; overload; virtual;
    function getGreen(para1: jint): jint; overload; virtual;
    function getBlue(para1: jint): jint; overload; virtual;
    function getAlpha(para1: jint): jint; overload; virtual;
    function getRGB(para1: jint): jint; overload; virtual;
    function getRed(para1: JLObject): jint; overload; virtual;
    function getGreen(para1: JLObject): jint; overload; virtual;
    function getBlue(para1: JLObject): jint; overload; virtual;
    function getAlpha(para1: JLObject): jint; overload; virtual;
    function getRGB(para1: JLObject): jint; overload; virtual;
    function getDataElements(para1: jint; para2: JLObject): JLObject; overload; virtual;
    function getComponents(para1: jint; para2: Arr1jint; para3: jint): Arr1jint; overload; virtual;
    function getComponents(para1: jint; var para2: array of jint; para3: jint): Arr1jint; overload; virtual;
    function getComponents(para1: JLObject; para2: Arr1jint; para3: jint): Arr1jint; overload; virtual;
    function getComponents(para1: JLObject; var para2: array of jint; para3: jint): Arr1jint; overload; virtual;
    function getUnnormalizedComponents(para1: Arr1jfloat; para2: jint; para3: Arr1jint; para4: jint): Arr1jint; overload; virtual;
    function getUnnormalizedComponents(var para1: array of jfloat; para2: jint; var para3: array of jint; para4: jint): Arr1jint; overload; virtual;
    function getNormalizedComponents(para1: Arr1jint; para2: jint; para3: Arr1jfloat; para4: jint): Arr1jfloat; overload; virtual;
    function getNormalizedComponents(var para1: array of jint; para2: jint; var para3: array of jfloat; para4: jint): Arr1jfloat; overload; virtual;
    function getDataElement(para1: Arr1jint; para2: jint): jint; overload; virtual;
    function getDataElement(var para1: array of jint; para2: jint): jint; overload; virtual;
    function getDataElements(para1: Arr1jint; para2: jint; para3: JLObject): JLObject; overload; virtual;
    function getDataElements(var para1: array of jint; para2: jint; para3: JLObject): JLObject; overload; virtual;
    function getDataElement(para1: Arr1jfloat; para2: jint): jint; overload; virtual;
    function getDataElement(var para1: array of jfloat; para2: jint): jint; overload; virtual;
    function getDataElements(para1: Arr1jfloat; para2: jint; para3: JLObject): JLObject; overload; virtual;
    function getDataElements(var para1: array of jfloat; para2: jint; para3: JLObject): JLObject; overload; virtual;
    function getNormalizedComponents(para1: JLObject; para2: Arr1jfloat; para3: jint): Arr1jfloat; overload; virtual;
    function getNormalizedComponents(para1: JLObject; var para2: array of jfloat; para3: jint): Arr1jfloat; overload; virtual;
    function coerceData(para1: JAIWritableRaster; para2: jboolean): JAIColorModel; overload; virtual;
    function isCompatibleRaster(para1: JAIRaster): jboolean; overload; virtual;
    function createCompatibleWritableRaster(para1: jint; para2: jint): JAIWritableRaster; overload; virtual;
    function createCompatibleSampleModel(para1: jint; para2: jint): JAISampleModel; overload; virtual;
    function isCompatibleSampleModel(para1: JAISampleModel): jboolean; overload; virtual;
    function getAlphaRaster(para1: JAIWritableRaster): JAIWritableRaster; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JAIIndexColorModel = class external 'java.awt.image' name 'IndexColorModel' (JAIColorModel)
  public
    constructor create(para1: jint; para2: jint; para3: Arr1jbyte; para4: Arr1jbyte; para5: Arr1jbyte); overload;
    constructor create(para1: jint; para2: jint; const para3: array of jbyte; const para4: array of jbyte; const para5: array of jbyte); overload;
    constructor create(para1: jint; para2: jint; para3: Arr1jbyte; para4: Arr1jbyte; para5: Arr1jbyte; para6: jint); overload;
    constructor create(para1: jint; para2: jint; const para3: array of jbyte; const para4: array of jbyte; const para5: array of jbyte; para6: jint); overload;
    constructor create(para1: jint; para2: jint; para3: Arr1jbyte; para4: Arr1jbyte; para5: Arr1jbyte; para6: Arr1jbyte); overload;
    constructor create(para1: jint; para2: jint; const para3: array of jbyte; const para4: array of jbyte; const para5: array of jbyte; const para6: array of jbyte); overload;
    constructor create(para1: jint; para2: jint; para3: Arr1jbyte; para4: jint; para5: jboolean); overload;
    constructor create(para1: jint; para2: jint; const para3: array of jbyte; para4: jint; para5: jboolean); overload;
    constructor create(para1: jint; para2: jint; para3: Arr1jbyte; para4: jint; para5: jboolean; para6: jint); overload;
    constructor create(para1: jint; para2: jint; const para3: array of jbyte; para4: jint; para5: jboolean; para6: jint); overload;
    constructor create(para1: jint; para2: jint; para3: Arr1jint; para4: jint; para5: jboolean; para6: jint; para7: jint); overload;
    constructor create(para1: jint; para2: jint; const para3: array of jint; para4: jint; para5: jboolean; para6: jint; para7: jint); overload;
    constructor create(para1: jint; para2: jint; para3: Arr1jint; para4: jint; para5: jint; para6: JMBigInteger); overload;
    constructor create(para1: jint; para2: jint; const para3: array of jint; para4: jint; para5: jint; para6: JMBigInteger); overload;
    function getTransparency(): jint; overload; virtual;
    function getComponentSize(): Arr1jint; overload; virtual;
    function getMapSize(): jint; overload; virtual; final;
    function getTransparentPixel(): jint; overload; virtual; final;
    procedure getReds(para1: Arr1jbyte); overload; virtual; final;
    procedure getReds(var para1: array of jbyte); overload; virtual; final;
    procedure getGreens(para1: Arr1jbyte); overload; virtual; final;
    procedure getGreens(var para1: array of jbyte); overload; virtual; final;
    procedure getBlues(para1: Arr1jbyte); overload; virtual; final;
    procedure getBlues(var para1: array of jbyte); overload; virtual; final;
    procedure getAlphas(para1: Arr1jbyte); overload; virtual; final;
    procedure getAlphas(var para1: array of jbyte); overload; virtual; final;
    procedure getRGBs(para1: Arr1jint); overload; virtual; final;
    procedure getRGBs(var para1: array of jint); overload; virtual; final;
    function getRed(para1: jint): jint; overload; virtual; final;
    function getGreen(para1: jint): jint; overload; virtual; final;
    function getBlue(para1: jint): jint; overload; virtual; final;
    function getAlpha(para1: jint): jint; overload; virtual; final;
    function getRGB(para1: jint): jint; overload; virtual; final;
    function getDataElements(para1: jint; para2: JLObject): JLObject; overload; virtual;
    function getComponents(para1: jint; para2: Arr1jint; para3: jint): Arr1jint; overload; virtual;
    function getComponents(para1: jint; var para2: array of jint; para3: jint): Arr1jint; overload; virtual;
    function getComponents(para1: JLObject; para2: Arr1jint; para3: jint): Arr1jint; overload; virtual;
    function getComponents(para1: JLObject; var para2: array of jint; para3: jint): Arr1jint; overload; virtual;
    function getDataElement(para1: Arr1jint; para2: jint): jint; overload; virtual;
    function getDataElement(var para1: array of jint; para2: jint): jint; overload; virtual;
    function getDataElements(para1: Arr1jint; para2: jint; para3: JLObject): JLObject; overload; virtual;
    function getDataElements(var para1: array of jint; para2: jint; para3: JLObject): JLObject; overload; virtual;
    function createCompatibleWritableRaster(para1: jint; para2: jint): JAIWritableRaster; overload; virtual;
    function isCompatibleRaster(para1: JAIRaster): jboolean; overload; virtual;
    function createCompatibleSampleModel(para1: jint; para2: jint): JAISampleModel; overload; virtual;
    function isCompatibleSampleModel(para1: JAISampleModel): jboolean; overload; virtual;
    function convertToIntDiscrete(para1: JAIRaster; para2: jboolean): JAIBufferedImage; overload; virtual;
    function isValid(para1: jint): jboolean; overload; virtual;
    function isValid(): jboolean; overload; virtual;
    function getValidPixels(): JMBigInteger; overload; virtual;
    procedure finalize(); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JAIPackedColorModel = class abstract external 'java.awt.image' name 'PackedColorModel' (JAIColorModel)
  public
    constructor create(para1: JACColorSpace; para2: jint; para3: Arr1jint; para4: jint; para5: jboolean; para6: jint; para7: jint); overload;
    constructor create(para1: JACColorSpace; para2: jint; const para3: array of jint; para4: jint; para5: jboolean; para6: jint; para7: jint); overload;
    constructor create(para1: JACColorSpace; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jboolean; para8: jint; para9: jint); overload;
    function getMask(para1: jint): jint; overload; virtual; final;
    function getMasks(): Arr1jint; overload; virtual; final;
    function createCompatibleSampleModel(para1: jint; para2: jint): JAISampleModel; overload; virtual;
    function isCompatibleSampleModel(para1: JAISampleModel): jboolean; overload; virtual;
    function getAlphaRaster(para1: JAIWritableRaster): JAIWritableRaster; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JADSystemFlavorMap = class sealed external 'java.awt.datatransfer' name 'SystemFlavorMap' (JLObject, JADFlavorMap, JADFlavorTable)
  public
    class function getDefaultFlavorMap(): JADFlavorMap; static; overload;
    function getNativesForFlavor(para1: JADDataFlavor): JUList; overload; virtual;
    function getFlavorsForNative(para1: JLString): JUList; overload; virtual;
    function getNativesForFlavors(para1: Arr1JADDataFlavor): JUMap; overload; virtual;
    function getNativesForFlavors(var para1: array of JADDataFlavor): JUMap; overload; virtual;
    function getFlavorsForNatives(para1: Arr1JLString): JUMap; overload; virtual;
    function getFlavorsForNatives(var para1: array of JLString): JUMap; overload; virtual;
    procedure addUnencodedNativeForFlavor(para1: JADDataFlavor; para2: JLString); overload; virtual;
    procedure setNativesForFlavor(para1: JADDataFlavor; para2: Arr1JLString); overload; virtual;
    procedure setNativesForFlavor(para1: JADDataFlavor; var para2: array of JLString); overload; virtual;
    procedure addFlavorForUnencodedNative(para1: JLString; para2: JADDataFlavor); overload; virtual;
    procedure setFlavorsForNative(para1: JLString; para2: Arr1JADDataFlavor); overload; virtual;
    procedure setFlavorsForNative(para1: JLString; var para2: array of JADDataFlavor); overload; virtual;
    class function encodeJavaMIMEType(para1: JLString): JLString; static; overload;
    class function encodeDataFlavor(para1: JADDataFlavor): JLString; static; overload;
    class function isJavaMIMEType(para1: JLString): jboolean; static; overload;
    class function decodeJavaMIMEType(para1: JLString): JLString; static; overload;
    class function decodeDataFlavor(para1: JLString): JADDataFlavor; static; overload;  // throws java.lang.ClassNotFoundException
  end;

  JAIBufferedImageFilter = class external 'java.awt.image' name 'BufferedImageFilter' (JAIImageFilter, JLCloneable)
  public
    constructor create(para1: JAIBufferedImageOp); overload;
    function getBufferedImageOp(): JAIBufferedImageOp; overload; virtual;
    procedure setDimensions(para1: jint; para2: jint); overload; virtual;
    procedure setColorModel(para1: JAIColorModel); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIColorModel; para6: Arr1jbyte; para7: jint; para8: jint); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIColorModel; var para6: array of jbyte; para7: jint; para8: jint); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIColorModel; para6: Arr1jint; para7: jint; para8: jint); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIColorModel; var para6: array of jint; para7: jint; para8: jint); overload; virtual;
    procedure imageComplete(para1: jint); overload; virtual;
  end;

  JAICropImageFilter = class external 'java.awt.image' name 'CropImageFilter' (JAIImageFilter)
  public
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint); overload;
    procedure setProperties(para1: JUHashtable); overload; virtual;
    procedure setDimensions(para1: jint; para2: jint); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIColorModel; para6: Arr1jbyte; para7: jint; para8: jint); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIColorModel; var para6: array of jbyte; para7: jint; para8: jint); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIColorModel; para6: Arr1jint; para7: jint; para8: jint); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIColorModel; var para6: array of jint; para7: jint; para8: jint); overload; virtual;
  end;

  JAIRGBImageFilter = class abstract external 'java.awt.image' name 'RGBImageFilter' (JAIImageFilter)
  strict protected
    var
      forigmodel: JAIColorModel; external name 'origmodel';
      fnewmodel: JAIColorModel; external name 'newmodel';
      fcanFilterIndexColorModel: jboolean; external name 'canFilterIndexColorModel';
  public
    constructor create(); overload;
    procedure setColorModel(para1: JAIColorModel); overload; virtual;
    procedure substituteColorModel(para1: JAIColorModel; para2: JAIColorModel); overload; virtual;
    function filterIndexColorModel(para1: JAIIndexColorModel): JAIIndexColorModel; overload; virtual;
    procedure filterRGBPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jint; para6: jint; para7: jint); overload; virtual;
    procedure filterRGBPixels(para1: jint; para2: jint; para3: jint; para4: jint; var para5: array of jint; para6: jint; para7: jint); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIColorModel; para6: Arr1jbyte; para7: jint; para8: jint); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIColorModel; var para6: array of jbyte; para7: jint; para8: jint); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIColorModel; para6: Arr1jint; para7: jint; para8: jint); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIColorModel; var para6: array of jint; para7: jint; para8: jint); overload; virtual;
    function filterRGB(para1: jint; para2: jint; para3: jint): jint; overload; virtual; abstract;
  end;

  JAIReplicateScaleFilter = class external 'java.awt.image' name 'ReplicateScaleFilter' (JAIImageFilter)
  strict protected
    var
      fsrcWidth: jint; external name 'srcWidth';
      fsrcHeight: jint; external name 'srcHeight';
      fdestWidth: jint; external name 'destWidth';
      fdestHeight: jint; external name 'destHeight';
      fsrcrows: Arr1jint; external name 'srcrows';
      fsrccols: Arr1jint; external name 'srccols';
      foutpixbuf: JLObject; external name 'outpixbuf';
  public
    constructor create(para1: jint; para2: jint); overload;
    procedure setProperties(para1: JUHashtable); overload; virtual;
    procedure setDimensions(para1: jint; para2: jint); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIColorModel; para6: Arr1jbyte; para7: jint; para8: jint); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIColorModel; var para6: array of jbyte; para7: jint; para8: jint); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIColorModel; para6: Arr1jint; para7: jint; para8: jint); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIColorModel; var para6: array of jint; para7: jint; para8: jint); overload; virtual;
  end;

  JAButton = class external 'java.awt' name 'Button' (JAComponent, JAAccessible)
  public
    type
      InnerAccessibleAWTButton = class;
      Arr1InnerAccessibleAWTButton = array of InnerAccessibleAWTButton;
      Arr2InnerAccessibleAWTButton = array of Arr1InnerAccessibleAWTButton;
      Arr3InnerAccessibleAWTButton = array of Arr2InnerAccessibleAWTButton;
      InnerAccessibleAWTButton = class external 'java.awt' name 'AccessibleAWTButton' 
      end;

  public
    constructor create(); overload;  // throws java.awt.HeadlessException
    constructor create(para1: JLString); overload;  // throws java.awt.HeadlessException
    procedure addNotify(); overload; virtual;
    function getLabel(): JLString; overload; virtual;
    procedure setLabel(para1: JLString); overload; virtual;
    procedure setActionCommand(para1: JLString); overload; virtual;
    function getActionCommand(): JLString; overload; virtual;
    procedure addActionListener(para1: JAEActionListener); overload; virtual;
    procedure removeActionListener(para1: JAEActionListener); overload; virtual;
    function getActionListeners(): Arr1JAEActionListener; overload; virtual;
    function getListeners(para1: JLClass): Arr1JUEventListener; overload; virtual;
  strict protected
    procedure processEvent(para1: JAAWTEvent); overload; virtual;
    procedure processActionEvent(para1: JAEActionEvent); overload; virtual;
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JACanvas = class external 'java.awt' name 'Canvas' (JAComponent, JAAccessible)
  public
    type
      InnerAccessibleAWTCanvas = class;
      Arr1InnerAccessibleAWTCanvas = array of InnerAccessibleAWTCanvas;
      Arr2InnerAccessibleAWTCanvas = array of Arr1InnerAccessibleAWTCanvas;
      Arr3InnerAccessibleAWTCanvas = array of Arr2InnerAccessibleAWTCanvas;
      InnerAccessibleAWTCanvas = class external 'java.awt' name 'AccessibleAWTCanvas' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: JAGraphicsConfiguration); overload;
    procedure addNotify(); overload; virtual;
    procedure paint(para1: JAGraphics); overload; virtual;
    procedure update(para1: JAGraphics); overload; virtual;
    procedure createBufferStrategy(para1: jint); overload; virtual;
    procedure createBufferStrategy(para1: jint; para2: JABufferCapabilities); overload; virtual;  // throws java.awt.AWTException
    function getBufferStrategy(): JAIBufferStrategy; overload; virtual;
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JACheckbox = class external 'java.awt' name 'Checkbox' (JAComponent, JAItemSelectable, JAAccessible)
  public
    type
      InnerAccessibleAWTCheckbox = class;
      Arr1InnerAccessibleAWTCheckbox = array of InnerAccessibleAWTCheckbox;
      Arr2InnerAccessibleAWTCheckbox = array of Arr1InnerAccessibleAWTCheckbox;
      Arr3InnerAccessibleAWTCheckbox = array of Arr2InnerAccessibleAWTCheckbox;
      InnerAccessibleAWTCheckbox = class external 'java.awt' name 'AccessibleAWTCheckbox' 
      end;

  public
    constructor create(); overload;  // throws java.awt.HeadlessException
    constructor create(para1: JLString); overload;  // throws java.awt.HeadlessException
    constructor create(para1: JLString; para2: jboolean); overload;  // throws java.awt.HeadlessException
    constructor create(para1: JLString; para2: jboolean; para3: JACheckboxGroup); overload;  // throws java.awt.HeadlessException
    constructor create(para1: JLString; para2: JACheckboxGroup; para3: jboolean); overload;  // throws java.awt.HeadlessException
    procedure addNotify(); overload; virtual;
    function getLabel(): JLString; overload; virtual;
    procedure setLabel(para1: JLString); overload; virtual;
    function getState(): jboolean; overload; virtual;
    procedure setState(para1: jboolean); overload; virtual;
    function getSelectedObjects(): Arr1JLObject; overload; virtual;
    function getCheckboxGroup(): JACheckboxGroup; overload; virtual;
    procedure setCheckboxGroup(para1: JACheckboxGroup); overload; virtual;
    procedure addItemListener(para1: JAEItemListener); overload; virtual;
    procedure removeItemListener(para1: JAEItemListener); overload; virtual;
    function getItemListeners(): Arr1JAEItemListener; overload; virtual;
    function getListeners(para1: JLClass): Arr1JUEventListener; overload; virtual;
  strict protected
    procedure processEvent(para1: JAAWTEvent); overload; virtual;
    procedure processItemEvent(para1: JAEItemEvent); overload; virtual;
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JAChoice = class external 'java.awt' name 'Choice' (JAComponent, JAItemSelectable, JAAccessible)
  public
    type
      InnerAccessibleAWTChoice = class;
      Arr1InnerAccessibleAWTChoice = array of InnerAccessibleAWTChoice;
      Arr2InnerAccessibleAWTChoice = array of Arr1InnerAccessibleAWTChoice;
      Arr3InnerAccessibleAWTChoice = array of Arr2InnerAccessibleAWTChoice;
      InnerAccessibleAWTChoice = class external 'java.awt' name 'AccessibleAWTChoice' 
      end;

  public
    constructor create(); overload;  // throws java.awt.HeadlessException
    procedure addNotify(); overload; virtual;
    function getItemCount(): jint; overload; virtual;
    function countItems(): jint; overload; virtual;
    function getItem(para1: jint): JLString; overload; virtual;
    procedure add(para1: JLString); overload; virtual;
    procedure addItem(para1: JLString); overload; virtual;
    procedure insert(para1: JLString; para2: jint); overload; virtual;
    procedure remove(para1: JLString); overload; virtual;
    procedure remove(para1: jint); overload; virtual;
    procedure removeAll(); overload; virtual;
    function getSelectedItem(): JLString; overload; virtual;
    function getSelectedObjects(): Arr1JLObject; overload; virtual;
    function getSelectedIndex(): jint; overload; virtual;
    procedure select(para1: jint); overload; virtual;
    procedure select(para1: JLString); overload; virtual;
    procedure addItemListener(para1: JAEItemListener); overload; virtual;
    procedure removeItemListener(para1: JAEItemListener); overload; virtual;
    function getItemListeners(): Arr1JAEItemListener; overload; virtual;
    function getListeners(para1: JLClass): Arr1JUEventListener; overload; virtual;
  strict protected
    procedure processEvent(para1: JAAWTEvent); overload; virtual;
    procedure processItemEvent(para1: JAEItemEvent); overload; virtual;
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JAContainer = class external 'java.awt' name 'Container' (JAComponent)
  public
    type
      InnerEventTargetFilter = interface;
      Arr1InnerEventTargetFilter = array of InnerEventTargetFilter;
      Arr2InnerEventTargetFilter = array of Arr1InnerEventTargetFilter;
      Arr3InnerEventTargetFilter = array of Arr2InnerEventTargetFilter;
      InnerDropTargetEventTargetFilter = class;
      Arr1InnerDropTargetEventTargetFilter = array of InnerDropTargetEventTargetFilter;
      Arr2InnerDropTargetEventTargetFilter = array of Arr1InnerDropTargetEventTargetFilter;
      Arr3InnerDropTargetEventTargetFilter = array of Arr2InnerDropTargetEventTargetFilter;
      InnerMouseEventTargetFilter = class;
      Arr1InnerMouseEventTargetFilter = array of InnerMouseEventTargetFilter;
      Arr2InnerMouseEventTargetFilter = array of Arr1InnerMouseEventTargetFilter;
      Arr3InnerMouseEventTargetFilter = array of Arr2InnerMouseEventTargetFilter;
      InnerWakingRunnable = class;
      Arr1InnerWakingRunnable = array of InnerWakingRunnable;
      Arr2InnerWakingRunnable = array of Arr1InnerWakingRunnable;
      Arr3InnerWakingRunnable = array of Arr2InnerWakingRunnable;
      InnerEventTargetFilter = interface external 'java.awt' name 'EventTargetFilter' 
      end;

      InnerDropTargetEventTargetFilter = class external 'java.awt' name 'DropTargetEventTargetFilter' 
      end;

      InnerMouseEventTargetFilter = class external 'java.awt' name 'MouseEventTargetFilter' 
      end;

      InnerWakingRunnable = class sealed external 'java.awt' name 'WakingRunnable' 
      end;

  public
    type
      InnerAccessibleAWTContainer = class;
      Arr1InnerAccessibleAWTContainer = array of InnerAccessibleAWTContainer;
      Arr2InnerAccessibleAWTContainer = array of Arr1InnerAccessibleAWTContainer;
      Arr3InnerAccessibleAWTContainer = array of Arr2InnerAccessibleAWTContainer;
      InnerAccessibleAWTContainer = class external 'java.awt' name 'AccessibleAWTContainer' 
      public
        type
          InnerAccessibleContainerHandler = class;
          Arr1InnerAccessibleContainerHandler = array of InnerAccessibleContainerHandler;
          Arr2InnerAccessibleContainerHandler = array of Arr1InnerAccessibleContainerHandler;
          Arr3InnerAccessibleContainerHandler = array of Arr2InnerAccessibleContainerHandler;
          InnerAccessibleContainerHandler = class external 'java.awt' name 'AccessibleContainerHandler' 
          end;

      end;

  public
    constructor create(); overload;
    function getComponentCount(): jint; overload; virtual;
    function countComponents(): jint; overload; virtual;
    function getComponent(para1: jint): JAComponent; overload; virtual;
    function getComponents(): Arr1JAComponent; overload; virtual;
    function getInsets(): JAInsets; overload; virtual;
    function insets(): JAInsets; overload; virtual;
    function add(para1: JAComponent): JAComponent; overload; virtual;
    function add(para1: JLString; para2: JAComponent): JAComponent; overload; virtual;
    function add(para1: JAComponent; para2: jint): JAComponent; overload; virtual;
    procedure setComponentZOrder(para1: JAComponent; para2: jint); overload; virtual;
    function getComponentZOrder(para1: JAComponent): jint; overload; virtual;
    procedure add(para1: JAComponent; para2: JLObject); overload; virtual;
    procedure add(para1: JAComponent; para2: JLObject; para3: jint); overload; virtual;
  strict protected
    procedure addImpl(para1: JAComponent; para2: JLObject; para3: jint); overload; virtual;
  public
    procedure remove(para1: jint); overload; virtual;
    procedure remove(para1: JAComponent); overload; virtual;
    procedure removeAll(); overload; virtual;
    function getLayout(): JALayoutManager; overload; virtual;
    procedure setLayout(para1: JALayoutManager); overload; virtual;
    procedure doLayout(); overload; virtual;
    procedure layout(); overload; virtual;
    procedure invalidate(); overload; virtual;
    procedure validate(); overload; virtual;
  strict protected
    procedure validateTree(); overload; virtual;
  public
    procedure setFont(para1: JAFont); overload; virtual;
    function getPreferredSize(): JADimension; overload; virtual;
    function preferredSize(): JADimension; overload; virtual;
    function getMinimumSize(): JADimension; overload; virtual;
    function minimumSize(): JADimension; overload; virtual;
    function getMaximumSize(): JADimension; overload; virtual;
    function getAlignmentX(): jfloat; overload; virtual;
    function getAlignmentY(): jfloat; overload; virtual;
    procedure paint(para1: JAGraphics); overload; virtual;
    procedure update(para1: JAGraphics); overload; virtual;
    procedure print(para1: JAGraphics); overload; virtual;
    procedure paintComponents(para1: JAGraphics); overload; virtual;
    procedure printComponents(para1: JAGraphics); overload; virtual;
    procedure addContainerListener(para1: JAEContainerListener); overload; virtual;
    procedure removeContainerListener(para1: JAEContainerListener); overload; virtual;
    function getContainerListeners(): Arr1JAEContainerListener; overload; virtual;
    function getListeners(para1: JLClass): Arr1JUEventListener; overload; virtual;
  strict protected
    procedure processEvent(para1: JAAWTEvent); overload; virtual;
    procedure processContainerEvent(para1: JAEContainerEvent); overload; virtual;
  public
    procedure deliverEvent(para1: JAEvent); overload; virtual;
    function getComponentAt(para1: jint; para2: jint): JAComponent; overload; virtual;
    function locate(para1: jint; para2: jint): JAComponent; overload; virtual;
    function getComponentAt(para1: JAPoint): JAComponent; overload; virtual;
    function getMousePosition(para1: jboolean): JAPoint; overload; virtual;  // throws java.awt.HeadlessException
    function findComponentAt(para1: jint; para2: jint): JAComponent; overload; virtual;
    function findComponentAt(para1: JAPoint): JAComponent; overload; virtual;
    procedure addNotify(); overload; virtual;
    procedure removeNotify(); overload; virtual;
    function isAncestorOf(para1: JAComponent): jboolean; overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    procedure list(para1: JIPrintStream; para2: jint); overload; virtual;
    procedure list(para1: JIPrintWriter; para2: jint); overload; virtual;
    procedure setFocusTraversalKeys(para1: jint; para2: JUSet); overload; virtual;
    function getFocusTraversalKeys(para1: jint): JUSet; overload; virtual;
    function areFocusTraversalKeysSet(para1: jint): jboolean; overload; virtual;
    function isFocusCycleRoot(para1: JAContainer): jboolean; overload; virtual;
    procedure transferFocusBackward(); overload; virtual;
    procedure setFocusTraversalPolicy(para1: JAFocusTraversalPolicy); overload; virtual;
    function getFocusTraversalPolicy(): JAFocusTraversalPolicy; overload; virtual;
    function isFocusTraversalPolicySet(): jboolean; overload; virtual;
    procedure setFocusCycleRoot(para1: jboolean); overload; virtual;
    function isFocusCycleRoot(): jboolean; overload; virtual;
    procedure setFocusTraversalPolicyProvider(para1: jboolean); overload; virtual; final;
    function isFocusTraversalPolicyProvider(): jboolean; overload; virtual; final;
    procedure transferFocusDownCycle(); overload; virtual;
    procedure applyComponentOrientation(para1: JAComponentOrientation); overload; virtual;
    procedure addPropertyChangeListener(para1: JBPropertyChangeListener); overload; virtual;
    procedure addPropertyChangeListener(para1: JLString; para2: JBPropertyChangeListener); overload; virtual;
  end;

  JALabel = class external 'java.awt' name 'Label' (JAComponent, JAAccessible)
  public
    type
      InnerAccessibleAWTLabel = class;
      Arr1InnerAccessibleAWTLabel = array of InnerAccessibleAWTLabel;
      Arr2InnerAccessibleAWTLabel = array of Arr1InnerAccessibleAWTLabel;
      Arr3InnerAccessibleAWTLabel = array of Arr2InnerAccessibleAWTLabel;
      InnerAccessibleAWTLabel = class external 'java.awt' name 'AccessibleAWTLabel' 
      end;

  public
    const
      LEFT = 0;
      CENTER = 1;
      RIGHT = 2;
  public
    constructor create(); overload;  // throws java.awt.HeadlessException
    constructor create(para1: JLString); overload;  // throws java.awt.HeadlessException
    constructor create(para1: JLString; para2: jint); overload;  // throws java.awt.HeadlessException
    procedure addNotify(); overload; virtual;
    function getAlignment(): jint; overload; virtual;
    procedure setAlignment(para1: jint); overload; virtual;
    function getText(): JLString; overload; virtual;
    procedure setText(para1: JLString); overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JAList = class external 'java.awt' name 'List' (JAComponent, JAItemSelectable, JAAccessible)
  public
    type
      InnerAccessibleAWTList = class;
      Arr1InnerAccessibleAWTList = array of InnerAccessibleAWTList;
      Arr2InnerAccessibleAWTList = array of Arr1InnerAccessibleAWTList;
      Arr3InnerAccessibleAWTList = array of Arr2InnerAccessibleAWTList;
      InnerAccessibleAWTList = class external 'java.awt' name 'AccessibleAWTList' 
      public
        type
          InnerAccessibleAWTListChild = class;
          Arr1InnerAccessibleAWTListChild = array of InnerAccessibleAWTListChild;
          Arr2InnerAccessibleAWTListChild = array of Arr1InnerAccessibleAWTListChild;
          Arr3InnerAccessibleAWTListChild = array of Arr2InnerAccessibleAWTListChild;
          InnerAccessibleAWTListChild = class external 'java.awt' name 'AccessibleAWTListChild' 
          end;

      end;

  public
    constructor create(); overload;  // throws java.awt.HeadlessException
    constructor create(para1: jint); overload;  // throws java.awt.HeadlessException
    constructor create(para1: jint; para2: jboolean); overload;  // throws java.awt.HeadlessException
    procedure addNotify(); overload; virtual;
    procedure removeNotify(); overload; virtual;
    function getItemCount(): jint; overload; virtual;
    function countItems(): jint; overload; virtual;
    function getItem(para1: jint): JLString; overload; virtual;
    function getItems(): Arr1JLString; overload; virtual;
    procedure add(para1: JLString); overload; virtual;
    procedure addItem(para1: JLString); overload; virtual;
    procedure add(para1: JLString; para2: jint); overload; virtual;
    procedure addItem(para1: JLString; para2: jint); overload; virtual;
    procedure replaceItem(para1: JLString; para2: jint); overload; virtual;
    procedure removeAll(); overload; virtual;
    procedure clear(); overload; virtual;
    procedure remove(para1: JLString); overload; virtual;
    procedure remove(para1: jint); overload; virtual;
    procedure delItem(para1: jint); overload; virtual;
    function getSelectedIndex(): jint; overload; virtual;
    function getSelectedIndexes(): Arr1jint; overload; virtual;
    function getSelectedItem(): JLString; overload; virtual;
    function getSelectedItems(): Arr1JLString; overload; virtual;
    function getSelectedObjects(): Arr1JLObject; overload; virtual;
    procedure select(para1: jint); overload; virtual;
    procedure deselect(para1: jint); overload; virtual;
    function isIndexSelected(para1: jint): jboolean; overload; virtual;
    function isSelected(para1: jint): jboolean; overload; virtual;
    function getRows(): jint; overload; virtual;
    function isMultipleMode(): jboolean; overload; virtual;
    function allowsMultipleSelections(): jboolean; overload; virtual;
    procedure setMultipleMode(para1: jboolean); overload; virtual;
    procedure setMultipleSelections(para1: jboolean); overload; virtual;
    function getVisibleIndex(): jint; overload; virtual;
    procedure makeVisible(para1: jint); overload; virtual;
    function getPreferredSize(para1: jint): JADimension; overload; virtual;
    function preferredSize(para1: jint): JADimension; overload; virtual;
    function getPreferredSize(): JADimension; overload; virtual;
    function preferredSize(): JADimension; overload; virtual;
    function getMinimumSize(para1: jint): JADimension; overload; virtual;
    function minimumSize(para1: jint): JADimension; overload; virtual;
    function getMinimumSize(): JADimension; overload; virtual;
    function minimumSize(): JADimension; overload; virtual;
    procedure addItemListener(para1: JAEItemListener); overload; virtual;
    procedure removeItemListener(para1: JAEItemListener); overload; virtual;
    function getItemListeners(): Arr1JAEItemListener; overload; virtual;
    procedure addActionListener(para1: JAEActionListener); overload; virtual;
    procedure removeActionListener(para1: JAEActionListener); overload; virtual;
    function getActionListeners(): Arr1JAEActionListener; overload; virtual;
    function getListeners(para1: JLClass): Arr1JUEventListener; overload; virtual;
  strict protected
    procedure processEvent(para1: JAAWTEvent); overload; virtual;
    procedure processItemEvent(para1: JAEItemEvent); overload; virtual;
    procedure processActionEvent(para1: JAEActionEvent); overload; virtual;
    function paramString(): JLString; overload; virtual;
  public
    procedure delItems(para1: jint; para2: jint); overload; virtual;
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JAScrollbar = class external 'java.awt' name 'Scrollbar' (JAComponent, JAAdjustable, JAAccessible)
  public
    type
      InnerAccessibleAWTScrollBar = class;
      Arr1InnerAccessibleAWTScrollBar = array of InnerAccessibleAWTScrollBar;
      Arr2InnerAccessibleAWTScrollBar = array of Arr1InnerAccessibleAWTScrollBar;
      Arr3InnerAccessibleAWTScrollBar = array of Arr2InnerAccessibleAWTScrollBar;
      InnerAccessibleAWTScrollBar = class external 'java.awt' name 'AccessibleAWTScrollBar' 
      end;

  public
    const
      HORIZONTAL = 0;
      VERTICAL = 1;
  public
    constructor create(); overload;  // throws java.awt.HeadlessException
    constructor create(para1: jint); overload;  // throws java.awt.HeadlessException
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint); overload;  // throws java.awt.HeadlessException
    procedure addNotify(); overload; virtual;
    function getOrientation(): jint; overload; virtual;
    procedure setOrientation(para1: jint); overload; virtual;
    function getValue(): jint; overload; virtual;
    procedure setValue(para1: jint); overload; virtual;
    function getMinimum(): jint; overload; virtual;
    procedure setMinimum(para1: jint); overload; virtual;
    function getMaximum(): jint; overload; virtual;
    procedure setMaximum(para1: jint); overload; virtual;
    function getVisibleAmount(): jint; overload; virtual;
    function getVisible(): jint; overload; virtual;
    procedure setVisibleAmount(para1: jint); overload; virtual;
    procedure setUnitIncrement(para1: jint); overload; virtual;
    procedure setLineIncrement(para1: jint); overload; virtual;
    function getUnitIncrement(): jint; overload; virtual;
    function getLineIncrement(): jint; overload; virtual;
    procedure setBlockIncrement(para1: jint); overload; virtual;
    procedure setPageIncrement(para1: jint); overload; virtual;
    function getBlockIncrement(): jint; overload; virtual;
    function getPageIncrement(): jint; overload; virtual;
    procedure setValues(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    function getValueIsAdjusting(): jboolean; overload; virtual;
    procedure setValueIsAdjusting(para1: jboolean); overload; virtual;
    procedure addAdjustmentListener(para1: JAEAdjustmentListener); overload; virtual;
    procedure removeAdjustmentListener(para1: JAEAdjustmentListener); overload; virtual;
    function getAdjustmentListeners(): Arr1JAEAdjustmentListener; overload; virtual;
    function getListeners(para1: JLClass): Arr1JUEventListener; overload; virtual;
  strict protected
    procedure processEvent(para1: JAAWTEvent); overload; virtual;
    procedure processAdjustmentEvent(para1: JAEAdjustmentEvent); overload; virtual;
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JATextComponent = class external 'java.awt' name 'TextComponent' (JAComponent, JAAccessible)
  public
    type
      InnerAccessibleAWTTextComponent = class;
      Arr1InnerAccessibleAWTTextComponent = array of InnerAccessibleAWTTextComponent;
      Arr2InnerAccessibleAWTTextComponent = array of Arr1InnerAccessibleAWTTextComponent;
      Arr3InnerAccessibleAWTTextComponent = array of Arr2InnerAccessibleAWTTextComponent;
      InnerAccessibleAWTTextComponent = class external 'java.awt' name 'AccessibleAWTTextComponent' 
      end;

  strict protected
    var
      ftextListener: JAETextListener; external name 'textListener';
  public
    procedure enableInputMethods(para1: jboolean); overload; virtual;
    function getInputMethodRequests(): JAIInputMethodRequests; overload; virtual;
    procedure addNotify(); overload; virtual;
    procedure removeNotify(); overload; virtual;
    procedure setText(para1: JLString); overload; virtual;
    function getText(): JLString; overload; virtual;
    function getSelectedText(): JLString; overload; virtual;
    function isEditable(): jboolean; overload; virtual;
    procedure setEditable(para1: jboolean); overload; virtual;
    function getBackground(): JAColor; overload; virtual;
    procedure setBackground(para1: JAColor); overload; virtual;
    function getSelectionStart(): jint; overload; virtual;
    procedure setSelectionStart(para1: jint); overload; virtual;
    function getSelectionEnd(): jint; overload; virtual;
    procedure setSelectionEnd(para1: jint); overload; virtual;
    procedure select(para1: jint; para2: jint); overload; virtual;
    procedure selectAll(); overload; virtual;
    procedure setCaretPosition(para1: jint); overload; virtual;
    function getCaretPosition(): jint; overload; virtual;
    procedure addTextListener(para1: JAETextListener); overload; virtual;
    procedure removeTextListener(para1: JAETextListener); overload; virtual;
    function getTextListeners(): Arr1JAETextListener; overload; virtual;
    function getListeners(para1: JLClass): Arr1JUEventListener; overload; virtual;
  strict protected
    procedure processEvent(para1: JAAWTEvent); overload; virtual;
    procedure processTextEvent(para1: JAETextEvent); overload; virtual;
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSBAbstractBorder = class abstract external 'javax.swing.border' name 'AbstractBorder' (JLObject, JSBBorder, JISerializable)
  public
    constructor create(); overload;
    procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    function getBorderInsets(para1: JAComponent): JAInsets; overload; virtual;
    function getBorderInsets(para1: JAComponent; para2: JAInsets): JAInsets; overload; virtual;
    function isBorderOpaque(): jboolean; overload; virtual;
    function getInteriorRectangle(para1: JAComponent; para2: jint; para3: jint; para4: jint; para5: jint): JARectangle; overload; virtual;
    class function getInteriorRectangle(para1: JAComponent; para2: JSBBorder; para3: jint; para4: jint; para5: jint; para6: jint): JARectangle; static; overload;
    function getBaseline(para1: JAComponent; para2: jint; para3: jint): jint; overload; virtual;
    function getBaselineResizeBehavior(para1: JAComponent): JAComponent.InnerBaselineResizeBehavior; overload; virtual;
  end;

  JSPComponentUI = class abstract external 'javax.swing.plaf' name 'ComponentUI' (JLObject)
  public
    constructor create(); overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function contains(para1: JSJComponent; para2: jint; para3: jint): jboolean; overload; virtual;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    function getBaseline(para1: JSJComponent; para2: jint; para3: jint): jint; overload; virtual;
    function getBaselineResizeBehavior(para1: JSJComponent): JAComponent.InnerBaselineResizeBehavior; overload; virtual;
    function getAccessibleChildrenCount(para1: JSJComponent): jint; overload; virtual;
    function getAccessibleChild(para1: JSJComponent; para2: jint): JAAccessible; overload; virtual;
  end;

  JAIBufferedImage = class external 'java.awt.image' name 'BufferedImage' (JAImage, JAIWritableRenderedImage, JATransparency)
  public
    const
      TYPE_CUSTOM = 0;
      TYPE_INT_RGB = 1;
      TYPE_INT_ARGB = 2;
      TYPE_INT_ARGB_PRE = 3;
      TYPE_INT_BGR = 4;
      TYPE_3BYTE_BGR = 5;
      TYPE_4BYTE_ABGR = 6;
      TYPE_4BYTE_ABGR_PRE = 7;
      TYPE_USHORT_565_RGB = 8;
      TYPE_USHORT_555_RGB = 9;
      TYPE_BYTE_GRAY = 10;
      TYPE_USHORT_GRAY = 11;
      TYPE_BYTE_BINARY = 12;
      TYPE_BYTE_INDEXED = 13;
  public
    constructor create(para1: jint; para2: jint; para3: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: JAIIndexColorModel); overload;
    constructor create(para1: JAIColorModel; para2: JAIWritableRaster; para3: jboolean; para4: JUHashtable); overload;
    function getType(): jint; overload; virtual;
    function getColorModel(): JAIColorModel; overload; virtual;
    function getRaster(): JAIWritableRaster; overload; virtual;
    function getAlphaRaster(): JAIWritableRaster; overload; virtual;
    function getRGB(para1: jint; para2: jint): jint; overload; virtual;
    function getRGB(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jint; para6: jint; para7: jint): Arr1jint; overload; virtual;
    function getRGB(para1: jint; para2: jint; para3: jint; para4: jint; var para5: array of jint; para6: jint; para7: jint): Arr1jint; overload; virtual;
    procedure setRGB(para1: jint; para2: jint; para3: jint); overload; virtual;
    procedure setRGB(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jint; para6: jint; para7: jint); overload; virtual;
    procedure setRGB(para1: jint; para2: jint; para3: jint; para4: jint; var para5: array of jint; para6: jint; para7: jint); overload; virtual;
    function getWidth(): jint; overload; virtual;
    function getHeight(): jint; overload; virtual;
    function getWidth(para1: JAIImageObserver): jint; overload; virtual;
    function getHeight(para1: JAIImageObserver): jint; overload; virtual;
    function getSource(): JAIImageProducer; overload; virtual;
    function getProperty(para1: JLString; para2: JAIImageObserver): JLObject; overload; virtual;
    function getProperty(para1: JLString): JLObject; overload; virtual;
    function getGraphics(): JAGraphics; overload; virtual;
    function createGraphics(): JAGraphics2D; overload; virtual;
    function getSubimage(para1: jint; para2: jint; para3: jint; para4: jint): JAIBufferedImage; overload; virtual;
    function isAlphaPremultiplied(): jboolean; overload; virtual;
    procedure coerceData(para1: jboolean); overload; virtual;
    function toString(): JLString; overload; virtual;
    function getSources(): JUVector; overload; virtual;
    function getPropertyNames(): Arr1JLString; overload; virtual;
    function getMinX(): jint; overload; virtual;
    function getMinY(): jint; overload; virtual;
    function getSampleModel(): JAISampleModel; overload; virtual;
    function getNumXTiles(): jint; overload; virtual;
    function getNumYTiles(): jint; overload; virtual;
    function getMinTileX(): jint; overload; virtual;
    function getMinTileY(): jint; overload; virtual;
    function getTileWidth(): jint; overload; virtual;
    function getTileHeight(): jint; overload; virtual;
    function getTileGridXOffset(): jint; overload; virtual;
    function getTileGridYOffset(): jint; overload; virtual;
    function getTile(para1: jint; para2: jint): JAIRaster; overload; virtual;
    function getData(): JAIRaster; overload; virtual;
    function getData(para1: JARectangle): JAIRaster; overload; virtual;
    function copyData(para1: JAIWritableRaster): JAIWritableRaster; overload; virtual;
    procedure setData(para1: JAIRaster); overload; virtual;
    procedure addTileObserver(para1: JAITileObserver); overload; virtual;
    procedure removeTileObserver(para1: JAITileObserver); overload; virtual;
    function isTileWritable(para1: jint; para2: jint): jboolean; overload; virtual;
    function getWritableTileIndices(): Arr1JAPoint; overload; virtual;
    function hasTileWriters(): jboolean; overload; virtual;
    function getWritableTile(para1: jint; para2: jint): JAIWritableRaster; overload; virtual;
    procedure releaseWritableTile(para1: jint; para2: jint); overload; virtual;
    function getTransparency(): jint; overload; virtual;
  end;

  JAIBandedSampleModel = class sealed external 'java.awt.image' name 'BandedSampleModel' (JAIComponentSampleModel)
  public
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jint; para6: Arr1jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; const para5: array of jint; const para6: array of jint); overload;
    function createCompatibleSampleModel(para1: jint; para2: jint): JAISampleModel; overload; virtual;
    function createSubsetSampleModel(para1: Arr1jint): JAISampleModel; overload; virtual;
    function createSubsetSampleModel(var para1: array of jint): JAISampleModel; overload; virtual;
    function createDataBuffer(): JAIDataBuffer; overload; virtual;
    function getDataElements(para1: jint; para2: jint; para3: JLObject; para4: JAIDataBuffer): JLObject; overload; virtual;
    function getPixel(para1: jint; para2: jint; para3: Arr1jint; para4: JAIDataBuffer): Arr1jint; overload; virtual;
    function getPixel(para1: jint; para2: jint; var para3: array of jint; para4: JAIDataBuffer): Arr1jint; overload; virtual;
    function getPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jint; para6: JAIDataBuffer): Arr1jint; overload; virtual;
    function getPixels(para1: jint; para2: jint; para3: jint; para4: jint; var para5: array of jint; para6: JAIDataBuffer): Arr1jint; overload; virtual;
    function getSample(para1: jint; para2: jint; para3: jint; para4: JAIDataBuffer): jint; overload; virtual;
    function getSampleFloat(para1: jint; para2: jint; para3: jint; para4: JAIDataBuffer): jfloat; overload; virtual;
    function getSampleDouble(para1: jint; para2: jint; para3: jint; para4: JAIDataBuffer): jdouble; overload; virtual;
    function getSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: Arr1jint; para7: JAIDataBuffer): Arr1jint; overload; virtual;
    function getSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; var para6: array of jint; para7: JAIDataBuffer): Arr1jint; overload; virtual;
    procedure setDataElements(para1: jint; para2: jint; para3: JLObject; para4: JAIDataBuffer); overload; virtual;
    procedure setPixel(para1: jint; para2: jint; para3: Arr1jint; para4: JAIDataBuffer); overload; virtual;
    procedure setPixel(para1: jint; para2: jint; var para3: array of jint; para4: JAIDataBuffer); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: Arr1jint; para6: JAIDataBuffer); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; var para5: array of jint; para6: JAIDataBuffer); overload; virtual;
    procedure setSample(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIDataBuffer); overload; virtual;
    procedure setSample(para1: jint; para2: jint; para3: jint; para4: jfloat; para5: JAIDataBuffer); overload; virtual;
    procedure setSample(para1: jint; para2: jint; para3: jint; para4: jdouble; para5: JAIDataBuffer); overload; virtual;
    procedure setSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: Arr1jint; para7: JAIDataBuffer); overload; virtual;
    procedure setSamples(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; var para6: array of jint; para7: JAIDataBuffer); overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JAIPixelInterleavedSampleModel = class external 'java.awt.image' name 'PixelInterleavedSampleModel' (JAIComponentSampleModel)
  public
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: Arr1jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint; const para6: array of jint); overload;
    function createCompatibleSampleModel(para1: jint; para2: jint): JAISampleModel; overload; virtual;
    function createSubsetSampleModel(para1: Arr1jint): JAISampleModel; overload; virtual;
    function createSubsetSampleModel(var para1: array of jint): JAISampleModel; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JAPCheckboxMenuItemPeer = interface external 'java.awt.peer' name 'CheckboxMenuItemPeer' (JAPMenuItemPeer)
    procedure setState(para1: jboolean); overload;
  end;

  JAPMenuPeer = interface external 'java.awt.peer' name 'MenuPeer' (JAPMenuItemPeer)
    procedure addSeparator(); overload;
    procedure addItem(para1: JAMenuItem); overload;
    procedure delItem(para1: jint); overload;
  end;

  JBGenericBeanInfo = class external 'java.beans' name 'GenericBeanInfo' (JBSimpleBeanInfo)
  public
    constructor create(para1: JBBeanDescriptor; para2: Arr1JBEventSetDescriptor; para3: jint; para4: Arr1JBPropertyDescriptor; para5: jint; para6: Arr1JBMethodDescriptor; para7: JBBeanInfo); overload;
    constructor create(para1: JBBeanDescriptor; const para2: array of JBEventSetDescriptor; para3: jint; const para4: array of JBPropertyDescriptor; para5: jint; const para6: array of JBMethodDescriptor; para7: JBBeanInfo); overload;
    function getPropertyDescriptors(): Arr1JBPropertyDescriptor; overload; virtual;
    function getDefaultPropertyIndex(): jint; overload; virtual;
    function getEventSetDescriptors(): Arr1JBEventSetDescriptor; overload; virtual;
    function getDefaultEventIndex(): jint; overload; virtual;
    function getMethodDescriptors(): Arr1JBMethodDescriptor; overload; virtual;
    function getBeanDescriptor(): JBBeanDescriptor; overload; virtual;
    function getIcon(para1: jint): JAImage; overload; virtual;
  end;

  JBIndexedPropertyDescriptor = class external 'java.beans' name 'IndexedPropertyDescriptor' (JBPropertyDescriptor)
  public
    constructor create(para1: JLString; para2: JLClass); overload;  // throws java.beans.IntrospectionException
    constructor create(para1: JLString; para2: JLClass; para3: JLString; para4: JLString; para5: JLString; para6: JLString); overload;  // throws java.beans.IntrospectionException
    constructor create(para1: JLString; para2: JLRMethod; para3: JLRMethod; para4: JLRMethod; para5: JLRMethod); overload;  // throws java.beans.IntrospectionException
    function getIndexedReadMethod(): JLRMethod; overload; virtual;
    procedure setIndexedReadMethod(para1: JLRMethod); overload; virtual;  // throws java.beans.IntrospectionException
    function getIndexedWriteMethod(): JLRMethod; overload; virtual;
    procedure setIndexedWriteMethod(para1: JLRMethod); overload; virtual;  // throws java.beans.IntrospectionException
    function getIndexedPropertyType(): JLClass; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JBjava_awt_BorderLayout_PersistenceDelegate = class external 'java.beans' name 'java_awt_BorderLayout_PersistenceDelegate' (JBDefaultPersistenceDelegate)
  strict protected
    procedure initialize(para1: JLClass; para2: JLObject; para3: JLObject; para4: JBEncoder); overload; virtual;
  end;

  JBjava_awt_CardLayout_PersistenceDelegate = class external 'java.beans' name 'java_awt_CardLayout_PersistenceDelegate' (JBDefaultPersistenceDelegate)
  strict protected
    procedure initialize(para1: JLClass; para2: JLObject; para3: JLObject; para4: JBEncoder); overload; virtual;
  end;

  JBjava_awt_Choice_PersistenceDelegate = class external 'java.beans' name 'java_awt_Choice_PersistenceDelegate' (JBDefaultPersistenceDelegate)
  strict protected
    procedure initialize(para1: JLClass; para2: JLObject; para3: JLObject; para4: JBEncoder); overload; virtual;
  end;

  JBjava_awt_Component_PersistenceDelegate = class external 'java.beans' name 'java_awt_Component_PersistenceDelegate' (JBDefaultPersistenceDelegate)
  strict protected
    procedure initialize(para1: JLClass; para2: JLObject; para3: JLObject; para4: JBEncoder); overload; virtual;
  end;

  JBjava_awt_Container_PersistenceDelegate = class external 'java.beans' name 'java_awt_Container_PersistenceDelegate' (JBDefaultPersistenceDelegate)
  strict protected
    procedure initialize(para1: JLClass; para2: JLObject; para3: JLObject; para4: JBEncoder); overload; virtual;
  end;

  JBjava_awt_GridBagLayout_PersistenceDelegate = class external 'java.beans' name 'java_awt_GridBagLayout_PersistenceDelegate' (JBDefaultPersistenceDelegate)
  strict protected
    procedure initialize(para1: JLClass; para2: JLObject; para3: JLObject; para4: JBEncoder); overload; virtual;
  end;

  JBjava_awt_List_PersistenceDelegate = class external 'java.beans' name 'java_awt_List_PersistenceDelegate' (JBDefaultPersistenceDelegate)
  strict protected
    procedure initialize(para1: JLClass; para2: JLObject; para3: JLObject; para4: JBEncoder); overload; virtual;
  end;

  JBjava_awt_MenuBar_PersistenceDelegate = class external 'java.beans' name 'java_awt_MenuBar_PersistenceDelegate' (JBDefaultPersistenceDelegate)
  strict protected
    procedure initialize(para1: JLClass; para2: JLObject; para3: JLObject; para4: JBEncoder); overload; virtual;
  end;

  JBjava_awt_Menu_PersistenceDelegate = class external 'java.beans' name 'java_awt_Menu_PersistenceDelegate' (JBDefaultPersistenceDelegate)
  strict protected
    procedure initialize(para1: JLClass; para2: JLObject; para3: JLObject; para4: JBEncoder); overload; virtual;
  end;

  JBjava_util_Collection_PersistenceDelegate = class external 'java.beans' name 'java_util_Collection_PersistenceDelegate' (JBDefaultPersistenceDelegate)
  strict protected
    procedure initialize(para1: JLClass; para2: JLObject; para3: JLObject; para4: JBEncoder); overload; virtual;
  end;

  JBjava_util_List_PersistenceDelegate = class external 'java.beans' name 'java_util_List_PersistenceDelegate' (JBDefaultPersistenceDelegate)
  strict protected
    procedure initialize(para1: JLClass; para2: JLObject; para3: JLObject; para4: JBEncoder); overload; virtual;
  end;

  JBjava_util_Map_PersistenceDelegate = class external 'java.beans' name 'java_util_Map_PersistenceDelegate' (JBDefaultPersistenceDelegate)
  strict protected
    procedure initialize(para1: JLClass; para2: JLObject; para3: JLObject; para4: JBEncoder); overload; virtual;
  end;

  JBjavax_swing_Box_PersistenceDelegate = class external 'java.beans' name 'javax_swing_Box_PersistenceDelegate' (JBDefaultPersistenceDelegate)
  strict protected
    function instantiate(para1: JLObject; para2: JBEncoder): JBExpression; overload; virtual;
  end;

  JBjavax_swing_DefaultComboBoxModel_PersistenceDelegate = class external 'java.beans' name 'javax_swing_DefaultComboBoxModel_PersistenceDelegate' (JBDefaultPersistenceDelegate)
  strict protected
    procedure initialize(para1: JLClass; para2: JLObject; para3: JLObject; para4: JBEncoder); overload; virtual;
  end;

  JBjavax_swing_DefaultListModel_PersistenceDelegate = class external 'java.beans' name 'javax_swing_DefaultListModel_PersistenceDelegate' (JBDefaultPersistenceDelegate)
  strict protected
    procedure initialize(para1: JLClass; para2: JLObject; para3: JLObject; para4: JBEncoder); overload; virtual;
  end;

  JBjavax_swing_JFrame_PersistenceDelegate = class external 'java.beans' name 'javax_swing_JFrame_PersistenceDelegate' (JBDefaultPersistenceDelegate)
  strict protected
    procedure initialize(para1: JLClass; para2: JLObject; para3: JLObject; para4: JBEncoder); overload; virtual;
  end;

  JBjavax_swing_JMenu_PersistenceDelegate = class external 'java.beans' name 'javax_swing_JMenu_PersistenceDelegate' (JBDefaultPersistenceDelegate)
  strict protected
    procedure initialize(para1: JLClass; para2: JLObject; para3: JLObject; para4: JBEncoder); overload; virtual;
  end;

  JBjavax_swing_JTabbedPane_PersistenceDelegate = class external 'java.beans' name 'javax_swing_JTabbedPane_PersistenceDelegate' (JBDefaultPersistenceDelegate)
  strict protected
    procedure initialize(para1: JLClass; para2: JLObject; para3: JLObject; para4: JBEncoder); overload; virtual;
  end;

  JBjavax_swing_tree_DefaultMutableTreeNode_PersistenceDelegate = class external 'java.beans' name 'javax_swing_tree_DefaultMutableTreeNode_PersistenceDelegate' (JBDefaultPersistenceDelegate)
  strict protected
    procedure initialize(para1: JLClass; para2: JLObject; para3: JLObject; para4: JBEncoder); overload; virtual;
  end;

  JBjava_awt_SystemColor_PersistenceDelegate = class external 'java.beans' name 'java_awt_SystemColor_PersistenceDelegate' (JBStaticFieldsPersistenceDelegate)
  end;

  JBjava_awt_font_TextAttribute_PersistenceDelegate = class external 'java.beans' name 'java_awt_font_TextAttribute_PersistenceDelegate' (JBStaticFieldsPersistenceDelegate)
  end;

  JIByteArrayInputStream = class external 'java.io' name 'ByteArrayInputStream' (JIInputStream)
  strict protected
    var
      fbuf: Arr1jbyte; external name 'buf';
      fpos: jint; external name 'pos';
      fmark: jint; external name 'mark';
      fcount: jint; external name 'count';
  public
    constructor create(para1: Arr1jbyte); overload;
    constructor create(const para1: array of jbyte); overload;
    constructor create(para1: Arr1jbyte; para2: jint; para3: jint); overload;
    constructor create(const para1: array of jbyte; para2: jint; para3: jint); overload;
    function read(): jint; overload; virtual;
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;
    function skip(para1: jlong): jlong; overload; virtual;
    function available(): jint; overload; virtual;
    function markSupported(): jboolean; overload; virtual;
    procedure mark(para1: jint); overload; virtual;
    procedure reset(); overload; virtual;
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  JIFileInputStream = class external 'java.io' name 'FileInputStream' (JIInputStream)
  public
    constructor create(para1: JLString); overload;  // throws java.io.FileNotFoundException
    constructor create(para1: JIFile); overload;  // throws java.io.FileNotFoundException
    constructor create(para1: JIFileDescriptor); overload;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
    function available(): jint; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    function getFD(): JIFileDescriptor; overload; virtual; final;  // throws java.io.IOException
    function getChannel(): JNCFileChannel; overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.io.IOException
  end;

  JIFilterInputStream = class external 'java.io' name 'FilterInputStream' (JIInputStream)
  strict protected
    var
      fin: JIInputStream; external name 'in';
  strict protected
    constructor create(para1: JIInputStream); overload;
  public
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
    function available(): jint; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure mark(para1: jint); overload; virtual;
    procedure reset(); overload; virtual;  // throws java.io.IOException
    function markSupported(): jboolean; overload; virtual;
  end;

  JIPipedInputStream = class external 'java.io' name 'PipedInputStream' (JIInputStream)
  strict protected
    const
      PIPE_SIZE = 1024;
  strict protected
    var
      fbuffer: Arr1jbyte; external name 'buffer';
      fin: jint; external name 'in';
      fout: jint; external name 'out';
  public
    constructor create(para1: JIPipedOutputStream); overload;  // throws java.io.IOException
    constructor create(para1: JIPipedOutputStream; para2: jint); overload;  // throws java.io.IOException
    constructor create(); overload;
    constructor create(para1: jint); overload;
    procedure connect(para1: JIPipedOutputStream); overload; virtual;  // throws java.io.IOException
  strict protected
    procedure receive(para1: jint); overload; virtual;  // throws java.io.IOException
  public
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function available(): jint; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  JISequenceInputStream = class external 'java.io' name 'SequenceInputStream' (JIInputStream)
  public
    constructor create(para1: JUEnumeration); overload;
    constructor create(para1: JIInputStream; para2: JIInputStream); overload;
    function available(): jint; overload; virtual;  // throws java.io.IOException
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  JIStringBufferInputStream = class external 'java.io' name 'StringBufferInputStream' (JIInputStream)
  strict protected
    var
      fbuffer: JLString; external name 'buffer';
      fpos: jint; external name 'pos';
      fcount: jint; external name 'count';
  public
    constructor create(para1: JLString); overload;
    function read(): jint; overload; virtual;
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;
    function skip(para1: jlong): jlong; overload; virtual;
    function available(): jint; overload; virtual;
    procedure reset(); overload; virtual;
  end;

  JSSAudioInputStream = class external 'javax.sound.sampled' name 'AudioInputStream' (JIInputStream)
  public
    type
      InnerTargetDataLineInputStream = class;
      Arr1InnerTargetDataLineInputStream = array of InnerTargetDataLineInputStream;
      Arr2InnerTargetDataLineInputStream = array of Arr1InnerTargetDataLineInputStream;
      Arr3InnerTargetDataLineInputStream = array of Arr2InnerTargetDataLineInputStream;
      InnerTargetDataLineInputStream = class external 'javax.sound.sampled' name 'TargetDataLineInputStream' 
      end;

  strict protected
    var
      fformat: JSSAudioFormat; external name 'format';
      fframeLength: jlong; external name 'frameLength';
      fframeSize: jint; external name 'frameSize';
      fframePos: jlong; external name 'framePos';
  public
    constructor create(para1: JIInputStream; para2: JSSAudioFormat; para3: jlong); overload;
    constructor create(para1: JSSTargetDataLine); overload;
    function getFormat(): JSSAudioFormat; overload; virtual;
    function getFrameLength(): jlong; overload; virtual;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
    function available(): jint; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure mark(para1: jint); overload; virtual;
    procedure reset(); overload; virtual;  // throws java.io.IOException
    function markSupported(): jboolean; overload; virtual;
  end;

  OOCPInputStream = class abstract external 'org.omg.CORBA.portable' name 'InputStream' (JIInputStream)
  public
    constructor create(); overload;
    function read_boolean(): jboolean; overload; virtual; abstract;
    function read_char(): jchar; overload; virtual; abstract;
    function read_wchar(): jchar; overload; virtual; abstract;
    function read_octet(): jbyte; overload; virtual; abstract;
    function read_short(): jshort; overload; virtual; abstract;
    function read_ushort(): jshort; overload; virtual; abstract;
    function read_long(): jint; overload; virtual; abstract;
    function read_ulong(): jint; overload; virtual; abstract;
    function read_longlong(): jlong; overload; virtual; abstract;
    function read_ulonglong(): jlong; overload; virtual; abstract;
    function read_float(): jfloat; overload; virtual; abstract;
    function read_double(): jdouble; overload; virtual; abstract;
    function read_string(): JLString; overload; virtual; abstract;
    function read_wstring(): JLString; overload; virtual; abstract;
    procedure read_boolean_array(para1: Arr1jboolean; para2: jint; para3: jint); overload; virtual; abstract;
    procedure read_boolean_array(var para1: array of jboolean; para2: jint; para3: jint); overload; virtual; abstract;
    procedure read_char_array(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual; abstract;
    procedure read_char_array(var para1: array of jchar; para2: jint; para3: jint); overload; virtual; abstract;
    procedure read_wchar_array(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual; abstract;
    procedure read_wchar_array(var para1: array of jchar; para2: jint; para3: jint); overload; virtual; abstract;
    procedure read_octet_array(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual; abstract;
    procedure read_octet_array(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual; abstract;
    procedure read_short_array(para1: Arr1jshort; para2: jint; para3: jint); overload; virtual; abstract;
    procedure read_short_array(var para1: array of jshort; para2: jint; para3: jint); overload; virtual; abstract;
    procedure read_ushort_array(para1: Arr1jshort; para2: jint; para3: jint); overload; virtual; abstract;
    procedure read_ushort_array(var para1: array of jshort; para2: jint; para3: jint); overload; virtual; abstract;
    procedure read_long_array(para1: Arr1jint; para2: jint; para3: jint); overload; virtual; abstract;
    procedure read_long_array(var para1: array of jint; para2: jint; para3: jint); overload; virtual; abstract;
    procedure read_ulong_array(para1: Arr1jint; para2: jint; para3: jint); overload; virtual; abstract;
    procedure read_ulong_array(var para1: array of jint; para2: jint; para3: jint); overload; virtual; abstract;
    procedure read_longlong_array(para1: Arr1jlong; para2: jint; para3: jint); overload; virtual; abstract;
    procedure read_longlong_array(var para1: array of jlong; para2: jint; para3: jint); overload; virtual; abstract;
    procedure read_ulonglong_array(para1: Arr1jlong; para2: jint; para3: jint); overload; virtual; abstract;
    procedure read_ulonglong_array(var para1: array of jlong; para2: jint; para3: jint); overload; virtual; abstract;
    procedure read_float_array(para1: Arr1jfloat; para2: jint; para3: jint); overload; virtual; abstract;
    procedure read_float_array(var para1: array of jfloat; para2: jint; para3: jint); overload; virtual; abstract;
    procedure read_double_array(para1: Arr1jdouble; para2: jint; para3: jint); overload; virtual; abstract;
    procedure read_double_array(var para1: array of jdouble; para2: jint; para3: jint); overload; virtual; abstract;
    function read_Object(): OOCObject; overload; virtual; abstract;
    function read_TypeCode(): OOCTypeCode; overload; virtual; abstract;
    function read_any(): OOCAny; overload; virtual; abstract;
    function read_Principal(): OOCPrincipal; overload; virtual;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read_fixed(): JMBigDecimal; overload; virtual;
    function read_Context(): OOCContext; overload; virtual;
    function read_Object(para1: JLClass): OOCObject; overload; virtual;
    function orb(): OOCORB; overload; virtual;
  end;

  JIBufferedReader = class external 'java.io' name 'BufferedReader' (JIReader)
  public
    constructor create(para1: JIReader; para2: jint); overload;
    constructor create(para1: JIReader); overload;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jchar; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jchar; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function readLine(): JLString; overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
    function ready(): jboolean; overload; virtual;  // throws java.io.IOException
    function markSupported(): jboolean; overload; virtual;
    procedure mark(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure reset(); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  JICharArrayReader = class external 'java.io' name 'CharArrayReader' (JIReader)
  strict protected
    var
      fbuf: Arr1jchar; external name 'buf';
      fpos: jint; external name 'pos';
      fmarkedPos: jint; external name 'markedPos';
      fcount: jint; external name 'count';
  public
    constructor create(para1: Arr1jchar); overload;
    constructor create(const para1: array of jchar); overload;
    constructor create(para1: Arr1jchar; para2: jint; para3: jint); overload;
    constructor create(const para1: array of jchar; para2: jint; para3: jint); overload;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jchar; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jchar; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
    function ready(): jboolean; overload; virtual;  // throws java.io.IOException
    function markSupported(): jboolean; overload; virtual;
    procedure mark(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure reset(); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;
  end;

  JIFilterReader = class abstract external 'java.io' name 'FilterReader' (JIReader)
  strict protected
    var
      fin: JIReader; external name 'in';
  strict protected
    constructor create(para1: JIReader); overload;
  public
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jchar; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jchar; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
    function ready(): jboolean; overload; virtual;  // throws java.io.IOException
    function markSupported(): jboolean; overload; virtual;
    procedure mark(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure reset(); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  JIInputStreamReader = class external 'java.io' name 'InputStreamReader' (JIReader)
  public
    constructor create(para1: JIInputStream); overload;
    constructor create(para1: JIInputStream; para2: JLString); overload;  // throws java.io.UnsupportedEncodingException
    constructor create(para1: JIInputStream; para2: JNCCharset); overload;
    constructor create(para1: JIInputStream; para2: JNCCharsetDecoder); overload;
    function getEncoding(): JLString; overload; virtual;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jchar; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jchar; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function ready(): jboolean; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  JIPipedReader = class external 'java.io' name 'PipedReader' (JIReader)
  public
    constructor create(para1: JIPipedWriter); overload;  // throws java.io.IOException
    constructor create(para1: JIPipedWriter; para2: jint); overload;  // throws java.io.IOException
    constructor create(); overload;
    constructor create(para1: jint); overload;
    procedure connect(para1: JIPipedWriter); overload; virtual;  // throws java.io.IOException
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jchar; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jchar; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function ready(): jboolean; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  JIStringReader = class external 'java.io' name 'StringReader' (JIReader)
  public
    constructor create(para1: JLString); overload;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jchar; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jchar; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
    function ready(): jboolean; overload; virtual;  // throws java.io.IOException
    function markSupported(): jboolean; overload; virtual;
    procedure mark(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure reset(); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;
  end;

  JNCInterruptibleChannel = interface external 'java.nio.channels' name 'InterruptibleChannel' (JNCChannel)
    procedure close(); overload;  // throws java.io.IOException
  end;

  JNCReadableByteChannel = interface external 'java.nio.channels' name 'ReadableByteChannel' (JNCChannel)
    function read(para1: JNByteBuffer): jint; overload;  // throws java.io.IOException
  end;

  JNCWritableByteChannel = interface external 'java.nio.channels' name 'WritableByteChannel' (JNCChannel)
    function write(para1: JNByteBuffer): jint; overload;  // throws java.io.IOException
  end;

  JMRRRMIConnector = class external 'javax.management.remote.rmi' name 'RMIConnector' (JLObject, JMRJMXConnector, JISerializable, JMRJMXAddressable)
  public
    type
      InnerObjectInputStreamWithLoader = class;
      Arr1InnerObjectInputStreamWithLoader = array of InnerObjectInputStreamWithLoader;
      Arr2InnerObjectInputStreamWithLoader = array of Arr1InnerObjectInputStreamWithLoader;
      Arr3InnerObjectInputStreamWithLoader = array of Arr2InnerObjectInputStreamWithLoader;
      InnerRMIClientCommunicatorAdmin = class;
      Arr1InnerRMIClientCommunicatorAdmin = array of InnerRMIClientCommunicatorAdmin;
      Arr2InnerRMIClientCommunicatorAdmin = array of Arr1InnerRMIClientCommunicatorAdmin;
      Arr3InnerRMIClientCommunicatorAdmin = array of Arr2InnerRMIClientCommunicatorAdmin;
      InnerRMINotifClient = class;
      Arr1InnerRMINotifClient = array of InnerRMINotifClient;
      Arr2InnerRMINotifClient = array of Arr1InnerRMINotifClient;
      Arr3InnerRMINotifClient = array of Arr2InnerRMINotifClient;
      InnerRemoteMBeanServerConnection = class;
      Arr1InnerRemoteMBeanServerConnection = array of InnerRemoteMBeanServerConnection;
      Arr2InnerRemoteMBeanServerConnection = array of Arr1InnerRemoteMBeanServerConnection;
      Arr3InnerRemoteMBeanServerConnection = array of Arr2InnerRemoteMBeanServerConnection;
      InnerObjectInputStreamWithLoader = class sealed external 'javax.management.remote.rmi' name 'ObjectInputStreamWithLoader' 
      end;

      InnerRMIClientCommunicatorAdmin = class external 'javax.management.remote.rmi' name 'RMIClientCommunicatorAdmin' 
      end;

      InnerRMINotifClient = class external 'javax.management.remote.rmi' name 'RMINotifClient' 
      end;

      InnerRemoteMBeanServerConnection = class external 'javax.management.remote.rmi' name 'RemoteMBeanServerConnection' 
      end;

  public
    constructor create(para1: JMRJMXServiceURL; para2: JUMap); overload;
    constructor create(para1: JMRRRMIServer; para2: JUMap); overload;
    function toString(): JLString; overload; virtual;
    function getAddress(): JMRJMXServiceURL; overload; virtual;
    procedure connect(); overload; virtual;  // throws java.io.IOException
    procedure connect(para1: JUMap); overload; virtual;  // throws java.io.IOException
    function getConnectionId(): JLString; overload; virtual;  // throws java.io.IOException
    function getMBeanServerConnection(): JMMBeanServerConnection; overload; virtual;  // throws java.io.IOException
    function getMBeanServerConnection(para1: JSASubject): JMMBeanServerConnection; overload; virtual;  // throws java.io.IOException
    procedure addConnectionNotificationListener(para1: JMNotificationListener; para2: JMNotificationFilter; para3: JLObject); overload; virtual;
    procedure removeConnectionNotificationListener(para1: JMNotificationListener); overload; virtual;  // throws javax.management.ListenerNotFoundException
    procedure removeConnectionNotificationListener(para1: JMNotificationListener; para2: JMNotificationFilter; para3: JLObject); overload; virtual;  // throws javax.management.ListenerNotFoundException
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  JIObjectInputStream = class external 'java.io' name 'ObjectInputStream' (JIInputStream, JIObjectInput, JIObjectStreamConstants)
  public
    type
      InnerBlockDataInputStream = class;
      Arr1InnerBlockDataInputStream = array of InnerBlockDataInputStream;
      Arr2InnerBlockDataInputStream = array of Arr1InnerBlockDataInputStream;
      Arr3InnerBlockDataInputStream = array of Arr2InnerBlockDataInputStream;
      InnerPeekInputStream = class;
      Arr1InnerPeekInputStream = array of InnerPeekInputStream;
      Arr2InnerPeekInputStream = array of Arr1InnerPeekInputStream;
      Arr3InnerPeekInputStream = array of Arr2InnerPeekInputStream;
      InnerCaches = class;
      Arr1InnerCaches = array of InnerCaches;
      Arr2InnerCaches = array of Arr1InnerCaches;
      Arr3InnerCaches = array of Arr2InnerCaches;
      InnerHandleTable = class;
      Arr1InnerHandleTable = array of InnerHandleTable;
      Arr2InnerHandleTable = array of Arr1InnerHandleTable;
      Arr3InnerHandleTable = array of Arr2InnerHandleTable;
      InnerValidationList = class;
      Arr1InnerValidationList = array of InnerValidationList;
      Arr2InnerValidationList = array of Arr1InnerValidationList;
      Arr3InnerValidationList = array of Arr2InnerValidationList;
      InnerGetFieldImpl = class;
      Arr1InnerGetFieldImpl = array of InnerGetFieldImpl;
      Arr2InnerGetFieldImpl = array of Arr1InnerGetFieldImpl;
      Arr3InnerGetFieldImpl = array of Arr2InnerGetFieldImpl;
      InnerBlockDataInputStream = class external 'java.io' name 'BlockDataInputStream' 
      end;

      InnerPeekInputStream = class external 'java.io' name 'PeekInputStream' 
      end;

      InnerCaches = class external 'java.io' name 'Caches' 
      end;

      InnerHandleTable = class external 'java.io' name 'HandleTable' 
      public
        type
          InnerHandleList = class;
          Arr1InnerHandleList = array of InnerHandleList;
          Arr2InnerHandleList = array of Arr1InnerHandleList;
          Arr3InnerHandleList = array of Arr2InnerHandleList;
          InnerHandleList = class external 'java.io' name 'HandleList' 
          end;

      end;

      InnerValidationList = class external 'java.io' name 'ValidationList' 
      public
        type
          InnerCallback = class;
          Arr1InnerCallback = array of InnerCallback;
          Arr2InnerCallback = array of Arr1InnerCallback;
          Arr3InnerCallback = array of Arr2InnerCallback;
          InnerCallback = class external 'java.io' name 'Callback' 
          end;

      end;

      InnerGetFieldImpl = class external 'java.io' name 'GetFieldImpl' 
      end;

  public
    type
      InnerGetField = class;
      Arr1InnerGetField = array of InnerGetField;
      Arr2InnerGetField = array of Arr1InnerGetField;
      Arr3InnerGetField = array of Arr2InnerGetField;
      InnerGetField = class abstract external 'java.io' name 'GetField' (JLObject)
      public
        constructor create(); overload;
        function getObjectStreamClass(): JIObjectStreamClass; overload; virtual; abstract;
        function defaulted(para1: JLString): jboolean; overload; virtual; abstract;  // throws java.io.IOException
        function get(para1: JLString; para2: jboolean): jboolean; overload; virtual; abstract;  // throws java.io.IOException
        function get(para1: JLString; para2: jbyte): jbyte; overload; virtual; abstract;  // throws java.io.IOException
        function get(para1: JLString; para2: jchar): jchar; overload; virtual; abstract;  // throws java.io.IOException
        function get(para1: JLString; para2: jshort): jshort; overload; virtual; abstract;  // throws java.io.IOException
        function get(para1: JLString; para2: jint): jint; overload; virtual; abstract;  // throws java.io.IOException
        function get(para1: JLString; para2: jlong): jlong; overload; virtual; abstract;  // throws java.io.IOException
        function get(para1: JLString; para2: jfloat): jfloat; overload; virtual; abstract;  // throws java.io.IOException
        function get(para1: JLString; para2: jdouble): jdouble; overload; virtual; abstract;  // throws java.io.IOException
        function get(para1: JLString; para2: JLObject): JLObject; overload; virtual; abstract;  // throws java.io.IOException
      end;

  public
    constructor create(para1: JIInputStream); overload;  // throws java.io.IOException
  strict protected
    constructor create(); overload;  // throws java.io.IOException, java.lang.SecurityException
  public
    function readObject(): JLObject; overload; virtual; final;  // throws java.io.IOException, java.lang.ClassNotFoundException
  strict protected
    function readObjectOverride(): JLObject; overload; virtual;  // throws java.io.IOException, java.lang.ClassNotFoundException
  public
    function readUnshared(): JLObject; overload; virtual;  // throws java.io.IOException, java.lang.ClassNotFoundException
    procedure defaultReadObject(); overload; virtual;  // throws java.io.IOException, java.lang.ClassNotFoundException
    function readFields(): JIObjectInputStream.InnerGetField; overload; virtual;  // throws java.io.IOException, java.lang.ClassNotFoundException
    procedure registerValidation(para1: JIObjectInputValidation; para2: jint); overload; virtual;  // throws java.io.NotActiveException, java.io.InvalidObjectException
  strict protected
    function resolveClass(para1: JIObjectStreamClass): JLClass; overload; virtual;  // throws java.io.IOException, java.lang.ClassNotFoundException
    function resolveProxyClass(para1: Arr1JLString): JLClass; overload; virtual;  // throws java.io.IOException, java.lang.ClassNotFoundException
    function resolveProxyClass(var para1: array of JLString): JLClass; overload; virtual;  // throws java.io.IOException, java.lang.ClassNotFoundException
    function resolveObject(para1: JLObject): JLObject; overload; virtual;  // throws java.io.IOException
    function enableResolveObject(para1: jboolean): jboolean; overload; virtual;  // throws java.lang.SecurityException
    procedure readStreamHeader(); overload; virtual;  // throws java.io.IOException, java.io.StreamCorruptedException
    function readClassDescriptor(): JIObjectStreamClass; overload; virtual;  // throws java.io.IOException, java.lang.ClassNotFoundException
  public
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function available(): jint; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    function readBoolean(): jboolean; overload; virtual;  // throws java.io.IOException
    function readByte(): jbyte; overload; virtual;  // throws java.io.IOException
    function readUnsignedByte(): jint; overload; virtual;  // throws java.io.IOException
    function readChar(): jchar; overload; virtual;  // throws java.io.IOException
    function readShort(): jshort; overload; virtual;  // throws java.io.IOException
    function readUnsignedShort(): jint; overload; virtual;  // throws java.io.IOException
    function readInt(): jint; overload; virtual;  // throws java.io.IOException
    function readLong(): jlong; overload; virtual;  // throws java.io.IOException
    function readFloat(): jfloat; overload; virtual;  // throws java.io.IOException
    function readDouble(): jdouble; overload; virtual;  // throws java.io.IOException
    procedure readFully(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure readFully(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
    procedure readFully(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure readFully(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    function skipBytes(para1: jint): jint; overload; virtual;  // throws java.io.IOException
    function readLine(): JLString; overload; virtual;  // throws java.io.IOException
    function readUTF(): JLString; overload; virtual;  // throws java.io.IOException
  end;

  JISImageInputStreamImpl = class abstract external 'javax.imageio.stream' name 'ImageInputStreamImpl' (JLObject, JISImageInputStream)
  strict protected
    var
      fbyteOrder: JNByteOrder; external name 'byteOrder';
      fstreamPos: jlong; external name 'streamPos';
      fbitOffset: jint; external name 'bitOffset';
      fflushedPos: jlong; external name 'flushedPos';
  public
    constructor create(); overload;
  strict protected
    procedure checkClosed(); overload; virtual; final;  // throws java.io.IOException
  public
    procedure setByteOrder(para1: JNByteOrder); overload; virtual;
    function getByteOrder(): JNByteOrder; overload; virtual;
    function read(): jint; overload; virtual; abstract;  // throws java.io.IOException
    function read(para1: Arr1jbyte): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual; abstract;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual; abstract;  // throws java.io.IOException
    procedure readBytes(para1: JISIIOByteBuffer; para2: jint); overload; virtual;  // throws java.io.IOException
    function readBoolean(): jboolean; overload; virtual;  // throws java.io.IOException
    function readByte(): jbyte; overload; virtual;  // throws java.io.IOException
    function readUnsignedByte(): jint; overload; virtual;  // throws java.io.IOException
    function readShort(): jshort; overload; virtual;  // throws java.io.IOException
    function readUnsignedShort(): jint; overload; virtual;  // throws java.io.IOException
    function readChar(): jchar; overload; virtual;  // throws java.io.IOException
    function readInt(): jint; overload; virtual;  // throws java.io.IOException
    function readUnsignedInt(): jlong; overload; virtual;  // throws java.io.IOException
    function readLong(): jlong; overload; virtual;  // throws java.io.IOException
    function readFloat(): jfloat; overload; virtual;  // throws java.io.IOException
    function readDouble(): jdouble; overload; virtual;  // throws java.io.IOException
    function readLine(): JLString; overload; virtual;  // throws java.io.IOException
    function readUTF(): JLString; overload; virtual;  // throws java.io.IOException
    procedure readFully(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure readFully(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure readFully(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure readFully(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
    procedure readFully(para1: Arr1jshort; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure readFully(var para1: array of jshort; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure readFully(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure readFully(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure readFully(para1: Arr1jint; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure readFully(var para1: array of jint; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure readFully(para1: Arr1jlong; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure readFully(var para1: array of jlong; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure readFully(para1: Arr1jfloat; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure readFully(var para1: array of jfloat; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure readFully(para1: Arr1jdouble; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure readFully(var para1: array of jdouble; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    function getStreamPosition(): jlong; overload; virtual;  // throws java.io.IOException
    function getBitOffset(): jint; overload; virtual;  // throws java.io.IOException
    procedure setBitOffset(para1: jint); overload; virtual;  // throws java.io.IOException
    function readBit(): jint; overload; virtual;  // throws java.io.IOException
    function readBits(para1: jint): jlong; overload; virtual;  // throws java.io.IOException
    function length(): jlong; overload; virtual;
    function skipBytes(para1: jint): jint; overload; virtual;  // throws java.io.IOException
    function skipBytes(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
    procedure seek(para1: jlong); overload; virtual;  // throws java.io.IOException
    procedure mark(); overload; virtual;
    procedure reset(); overload; virtual;  // throws java.io.IOException
    procedure flushBefore(para1: jlong); overload; virtual;  // throws java.io.IOException
    procedure flush(); overload; virtual;  // throws java.io.IOException
    function getFlushedPosition(): jlong; overload; virtual;
    function isCached(): jboolean; overload; virtual;
    function isCachedMemory(): jboolean; overload; virtual;
    function isCachedFile(): jboolean; overload; virtual;
    procedure close(); overload; virtual;  // throws java.io.IOException
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  JISImageOutputStream = interface external 'javax.imageio.stream' name 'ImageOutputStream' (JISImageInputStream, JIDataOutput)
    procedure write(para1: jint); overload;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte); overload;  // throws java.io.IOException
    procedure write(var para1: array of jbyte); overload;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure writeBoolean(para1: jboolean); overload;  // throws java.io.IOException
    procedure writeByte(para1: jint); overload;  // throws java.io.IOException
    procedure writeShort(para1: jint); overload;  // throws java.io.IOException
    procedure writeChar(para1: jint); overload;  // throws java.io.IOException
    procedure writeInt(para1: jint); overload;  // throws java.io.IOException
    procedure writeLong(para1: jlong); overload;  // throws java.io.IOException
    procedure writeFloat(para1: jfloat); overload;  // throws java.io.IOException
    procedure writeDouble(para1: jdouble); overload;  // throws java.io.IOException
    procedure writeBytes(para1: JLString); overload;  // throws java.io.IOException
    procedure writeChars(para1: JLString); overload;  // throws java.io.IOException
    procedure writeUTF(para1: JLString); overload;  // throws java.io.IOException
    procedure writeShorts(para1: Arr1jshort; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure writeShorts(var para1: array of jshort; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure writeChars(para1: Arr1jchar; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure writeChars(var para1: array of jchar; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure writeInts(para1: Arr1jint; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure writeInts(var para1: array of jint; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure writeLongs(para1: Arr1jlong; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure writeLongs(var para1: array of jlong; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure writeFloats(para1: Arr1jfloat; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure writeFloats(var para1: array of jfloat; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure writeDoubles(para1: Arr1jdouble; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure writeDoubles(var para1: array of jdouble; para2: jint; para3: jint); overload;  // throws java.io.IOException
    procedure writeBit(para1: jint); overload;  // throws java.io.IOException
    procedure writeBits(para1: jlong; para2: jint); overload;  // throws java.io.IOException
    procedure flushBefore(para1: jlong); overload;  // throws java.io.IOException
  end;

  JIByteArrayOutputStream = class external 'java.io' name 'ByteArrayOutputStream' (JIOutputStream)
  strict protected
    var
      fbuf: Arr1jbyte; external name 'buf';
      fcount: jint; external name 'count';
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    procedure write(para1: jint); overload; virtual;
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;
    procedure writeTo(para1: JIOutputStream); overload; virtual;  // throws java.io.IOException
    procedure reset(); overload; virtual;
    function toByteArray(): Arr1jbyte; overload; virtual;
    function size(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function toString(para1: JLString): JLString; overload; virtual;  // throws java.io.UnsupportedEncodingException
    function toString(para1: jint): JLString; overload; virtual;
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  JIFileOutputStream = class external 'java.io' name 'FileOutputStream' (JIOutputStream)
  public
    constructor create(para1: JLString); overload;  // throws java.io.FileNotFoundException
    constructor create(para1: JLString; para2: jboolean); overload;  // throws java.io.FileNotFoundException
    constructor create(para1: JIFile); overload;  // throws java.io.FileNotFoundException
    constructor create(para1: JIFile; para2: jboolean); overload;  // throws java.io.FileNotFoundException
    constructor create(para1: JIFileDescriptor); overload;
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    function getFD(): JIFileDescriptor; overload; virtual; final;  // throws java.io.IOException
    function getChannel(): JNCFileChannel; overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.io.IOException
  end;

  JIFilterOutputStream = class external 'java.io' name 'FilterOutputStream' (JIOutputStream)
  strict protected
    var
      fout: JIOutputStream; external name 'out';
  public
    constructor create(para1: JIOutputStream); overload;
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure flush(); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  JIObjectOutputStream = class external 'java.io' name 'ObjectOutputStream' (JIOutputStream, JIObjectOutput, JIObjectStreamConstants)
  public
    type
      InnerBlockDataOutputStream = class;
      Arr1InnerBlockDataOutputStream = array of InnerBlockDataOutputStream;
      Arr2InnerBlockDataOutputStream = array of Arr1InnerBlockDataOutputStream;
      Arr3InnerBlockDataOutputStream = array of Arr2InnerBlockDataOutputStream;
      InnerCaches = class;
      Arr1InnerCaches = array of InnerCaches;
      Arr2InnerCaches = array of Arr1InnerCaches;
      Arr3InnerCaches = array of Arr2InnerCaches;
      InnerDebugTraceInfoStack = class;
      Arr1InnerDebugTraceInfoStack = array of InnerDebugTraceInfoStack;
      Arr2InnerDebugTraceInfoStack = array of Arr1InnerDebugTraceInfoStack;
      Arr3InnerDebugTraceInfoStack = array of Arr2InnerDebugTraceInfoStack;
      InnerHandleTable = class;
      Arr1InnerHandleTable = array of InnerHandleTable;
      Arr2InnerHandleTable = array of Arr1InnerHandleTable;
      Arr3InnerHandleTable = array of Arr2InnerHandleTable;
      InnerReplaceTable = class;
      Arr1InnerReplaceTable = array of InnerReplaceTable;
      Arr2InnerReplaceTable = array of Arr1InnerReplaceTable;
      Arr3InnerReplaceTable = array of Arr2InnerReplaceTable;
      InnerPutFieldImpl = class;
      Arr1InnerPutFieldImpl = array of InnerPutFieldImpl;
      Arr2InnerPutFieldImpl = array of Arr1InnerPutFieldImpl;
      Arr3InnerPutFieldImpl = array of Arr2InnerPutFieldImpl;
      InnerBlockDataOutputStream = class external 'java.io' name 'BlockDataOutputStream' 
      end;

      InnerCaches = class external 'java.io' name 'Caches' 
      end;

      InnerDebugTraceInfoStack = class external 'java.io' name 'DebugTraceInfoStack' 
      end;

      InnerHandleTable = class external 'java.io' name 'HandleTable' 
      end;

      InnerReplaceTable = class external 'java.io' name 'ReplaceTable' 
      end;

      InnerPutFieldImpl = class external 'java.io' name 'PutFieldImpl' 
      end;

  public
    type
      InnerPutField = class;
      Arr1InnerPutField = array of InnerPutField;
      Arr2InnerPutField = array of Arr1InnerPutField;
      Arr3InnerPutField = array of Arr2InnerPutField;
      InnerPutField = class abstract external 'java.io' name 'PutField' (JLObject)
      public
        constructor create(); overload;
        procedure put(para1: JLString; para2: jboolean); overload; virtual; abstract;
        procedure put(para1: JLString; para2: jbyte); overload; virtual; abstract;
        procedure put(para1: JLString; para2: jchar); overload; virtual; abstract;
        procedure put(para1: JLString; para2: jshort); overload; virtual; abstract;
        procedure put(para1: JLString; para2: jint); overload; virtual; abstract;
        procedure put(para1: JLString; para2: jlong); overload; virtual; abstract;
        procedure put(para1: JLString; para2: jfloat); overload; virtual; abstract;
        procedure put(para1: JLString; para2: jdouble); overload; virtual; abstract;
        procedure put(para1: JLString; para2: JLObject); overload; virtual; abstract;
        procedure write(para1: JIObjectOutput); overload; virtual; abstract;  // throws java.io.IOException
      end;

  public
    constructor create(para1: JIOutputStream); overload;  // throws java.io.IOException
  strict protected
    constructor create(); overload;  // throws java.io.IOException, java.lang.SecurityException
  public
    procedure useProtocolVersion(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure writeObject(para1: JLObject); overload; virtual; final;  // throws java.io.IOException
  strict protected
    procedure writeObjectOverride(para1: JLObject); overload; virtual;  // throws java.io.IOException
  public
    procedure writeUnshared(para1: JLObject); overload; virtual;  // throws java.io.IOException
    procedure defaultWriteObject(); overload; virtual;  // throws java.io.IOException
    function putFields(): JIObjectOutputStream.InnerPutField; overload; virtual;  // throws java.io.IOException
    procedure writeFields(); overload; virtual;  // throws java.io.IOException
    procedure reset(); overload; virtual;  // throws java.io.IOException
  strict protected
    procedure annotateClass(para1: JLClass); overload; virtual;  // throws java.io.IOException
    procedure annotateProxyClass(para1: JLClass); overload; virtual;  // throws java.io.IOException
    function replaceObject(para1: JLObject): JLObject; overload; virtual;  // throws java.io.IOException
    function enableReplaceObject(para1: jboolean): jboolean; overload; virtual;  // throws java.lang.SecurityException
    procedure writeStreamHeader(); overload; virtual;  // throws java.io.IOException
    procedure writeClassDescriptor(para1: JIObjectStreamClass); overload; virtual;  // throws java.io.IOException
  public
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure flush(); overload; virtual;  // throws java.io.IOException
  strict protected
    procedure drain(); overload; virtual;  // throws java.io.IOException
  public
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure writeBoolean(para1: jboolean); overload; virtual;  // throws java.io.IOException
    procedure writeByte(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure writeShort(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure writeChar(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure writeInt(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure writeLong(para1: jlong); overload; virtual;  // throws java.io.IOException
    procedure writeFloat(para1: jfloat); overload; virtual;  // throws java.io.IOException
    procedure writeDouble(para1: jdouble); overload; virtual;  // throws java.io.IOException
    procedure writeBytes(para1: JLString); overload; virtual;  // throws java.io.IOException
    procedure writeChars(para1: JLString); overload; virtual;  // throws java.io.IOException
    procedure writeUTF(para1: JLString); overload; virtual;  // throws java.io.IOException
  end;

  JIPipedOutputStream = class external 'java.io' name 'PipedOutputStream' (JIOutputStream)
  public
    constructor create(para1: JIPipedInputStream); overload;  // throws java.io.IOException
    constructor create(); overload;
    procedure connect(para1: JIPipedInputStream); overload; virtual;  // throws java.io.IOException
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure flush(); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  JSTRAbstractFilter = class abstract external 'javax.swing.text.rtf' name 'AbstractFilter' (JIOutputStream)
  strict protected
    var
      ftranslationTable: Arr1jchar; external name 'translationTable';
      fspecialsTable: Arr1jboolean; external name 'specialsTable';
  public
    procedure readFromStream(para1: JIInputStream); overload; virtual;  // throws java.io.IOException
    procedure readFromReader(para1: JIReader); overload; virtual;  // throws java.io.IOException
    constructor create(); overload;
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: JLString); overload; virtual;  // throws java.io.IOException
  strict protected
    procedure write(para1: jchar); overload; virtual; abstract;  // throws java.io.IOException
    procedure writeSpecial(para1: jint); overload; virtual; abstract;  // throws java.io.IOException
  end;

  OJXDIDigesterOutputStream = class external 'org.jcp.xml.dsig.internal' name 'DigesterOutputStream' (JIOutputStream)
  public
    constructor create(para1: JSMessageDigest); overload;
    constructor create(para1: JSMessageDigest; para2: jboolean); overload;
    procedure write(para1: Arr1jbyte); overload; virtual;
    procedure write(var para1: array of jbyte); overload; virtual;
    procedure write(para1: jint); overload; virtual;
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;
    function getDigestValue(): Arr1jbyte; overload; virtual;
    function getInputStream(): JIInputStream; overload; virtual;
  end;

  OOCPOutputStream = class abstract external 'org.omg.CORBA.portable' name 'OutputStream' (JIOutputStream)
  public
    constructor create(); overload;
    function create_input_stream(): OOCPInputStream; overload; virtual; abstract;
    procedure write_boolean(para1: jboolean); overload; virtual; abstract;
    procedure write_char(para1: jchar); overload; virtual; abstract;
    procedure write_wchar(para1: jchar); overload; virtual; abstract;
    procedure write_octet(para1: jbyte); overload; virtual; abstract;
    procedure write_short(para1: jshort); overload; virtual; abstract;
    procedure write_ushort(para1: jshort); overload; virtual; abstract;
    procedure write_long(para1: jint); overload; virtual; abstract;
    procedure write_ulong(para1: jint); overload; virtual; abstract;
    procedure write_longlong(para1: jlong); overload; virtual; abstract;
    procedure write_ulonglong(para1: jlong); overload; virtual; abstract;
    procedure write_float(para1: jfloat); overload; virtual; abstract;
    procedure write_double(para1: jdouble); overload; virtual; abstract;
    procedure write_string(para1: JLString); overload; virtual; abstract;
    procedure write_wstring(para1: JLString); overload; virtual; abstract;
    procedure write_boolean_array(para1: Arr1jboolean; para2: jint; para3: jint); overload; virtual; abstract;
    procedure write_boolean_array(var para1: array of jboolean; para2: jint; para3: jint); overload; virtual; abstract;
    procedure write_char_array(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual; abstract;
    procedure write_char_array(var para1: array of jchar; para2: jint; para3: jint); overload; virtual; abstract;
    procedure write_wchar_array(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual; abstract;
    procedure write_wchar_array(var para1: array of jchar; para2: jint; para3: jint); overload; virtual; abstract;
    procedure write_octet_array(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual; abstract;
    procedure write_octet_array(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual; abstract;
    procedure write_short_array(para1: Arr1jshort; para2: jint; para3: jint); overload; virtual; abstract;
    procedure write_short_array(var para1: array of jshort; para2: jint; para3: jint); overload; virtual; abstract;
    procedure write_ushort_array(para1: Arr1jshort; para2: jint; para3: jint); overload; virtual; abstract;
    procedure write_ushort_array(var para1: array of jshort; para2: jint; para3: jint); overload; virtual; abstract;
    procedure write_long_array(para1: Arr1jint; para2: jint; para3: jint); overload; virtual; abstract;
    procedure write_long_array(var para1: array of jint; para2: jint; para3: jint); overload; virtual; abstract;
    procedure write_ulong_array(para1: Arr1jint; para2: jint; para3: jint); overload; virtual; abstract;
    procedure write_ulong_array(var para1: array of jint; para2: jint; para3: jint); overload; virtual; abstract;
    procedure write_longlong_array(para1: Arr1jlong; para2: jint; para3: jint); overload; virtual; abstract;
    procedure write_longlong_array(var para1: array of jlong; para2: jint; para3: jint); overload; virtual; abstract;
    procedure write_ulonglong_array(para1: Arr1jlong; para2: jint; para3: jint); overload; virtual; abstract;
    procedure write_ulonglong_array(var para1: array of jlong; para2: jint; para3: jint); overload; virtual; abstract;
    procedure write_float_array(para1: Arr1jfloat; para2: jint; para3: jint); overload; virtual; abstract;
    procedure write_float_array(var para1: array of jfloat; para2: jint; para3: jint); overload; virtual; abstract;
    procedure write_double_array(para1: Arr1jdouble; para2: jint; para3: jint); overload; virtual; abstract;
    procedure write_double_array(var para1: array of jdouble; para2: jint; para3: jint); overload; virtual; abstract;
    procedure write_Object(para1: OOCObject); overload; virtual; abstract;
    procedure write_TypeCode(para1: OOCTypeCode); overload; virtual; abstract;
    procedure write_any(para1: OOCAny); overload; virtual; abstract;
    procedure write_Principal(para1: OOCPrincipal); overload; virtual;
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write_fixed(para1: JMBigDecimal); overload; virtual;
    procedure write_Context(para1: OOCContext; para2: OOCContextList); overload; virtual;
    function orb(): OOCORB; overload; virtual;
  end;

  JIBufferedWriter = class external 'java.io' name 'BufferedWriter' (JIWriter)
  public
    constructor create(para1: JIWriter); overload;
    constructor create(para1: JIWriter; para2: jint); overload;
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: JLString; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure newLine(); overload; virtual;  // throws java.io.IOException
    procedure flush(); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  JICharArrayWriter = class external 'java.io' name 'CharArrayWriter' (JIWriter)
  strict protected
    var
      fbuf: Arr1jchar; external name 'buf';
      fcount: jint; external name 'count';
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    procedure write(para1: jint); overload; virtual;
    procedure write(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;
    procedure write(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;
    procedure write(para1: JLString; para2: jint; para3: jint); overload; virtual;
    procedure writeTo(para1: JIWriter); overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence): JICharArrayWriter; overload; virtual;
    function append(para1: JLCharSequence; para2: jint; para3: jint): JICharArrayWriter; overload; virtual;
    function append(para1: jchar): JICharArrayWriter; overload; virtual;
    procedure reset(); overload; virtual;
    function toCharArray(): Arr1jchar; overload; virtual;
    function size(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure flush(); overload; virtual;
    procedure close(); overload; virtual;
    function append(para1: jchar): JIWriter; overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence; para2: jint; para3: jint): JIWriter; overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence): JIWriter; overload; virtual;  // throws java.io.IOException
    function append(para1: jchar): JLAppendable; overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence; para2: jint; para3: jint): JLAppendable; overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence): JLAppendable; overload; virtual;  // throws java.io.IOException
  end;

  JIFilterWriter = class abstract external 'java.io' name 'FilterWriter' (JIWriter)
  strict protected
    var
      fout: JIWriter; external name 'out';
  strict protected
    constructor create(para1: JIWriter); overload;
  public
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: JLString; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure flush(); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  JIOutputStreamWriter = class external 'java.io' name 'OutputStreamWriter' (JIWriter)
  public
    constructor create(para1: JIOutputStream; para2: JLString); overload;  // throws java.io.UnsupportedEncodingException
    constructor create(para1: JIOutputStream); overload;
    constructor create(para1: JIOutputStream; para2: JNCCharset); overload;
    constructor create(para1: JIOutputStream; para2: JNCCharsetEncoder); overload;
    function getEncoding(): JLString; overload; virtual;
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: JLString; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure flush(); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  JIPipedWriter = class external 'java.io' name 'PipedWriter' (JIWriter)
  public
    constructor create(para1: JIPipedReader); overload;  // throws java.io.IOException
    constructor create(); overload;
    procedure connect(para1: JIPipedReader); overload; virtual;  // throws java.io.IOException
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure flush(); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  JIPrintWriter = class external 'java.io' name 'PrintWriter' (JIWriter)
  strict protected
    var
      fout: JIWriter; external name 'out';
  public
    constructor create(para1: JIWriter); overload;
    constructor create(para1: JIWriter; para2: jboolean); overload;
    constructor create(para1: JIOutputStream); overload;
    constructor create(para1: JIOutputStream; para2: jboolean); overload;
    constructor create(para1: JLString); overload;  // throws java.io.FileNotFoundException
    constructor create(para1: JLString; para2: JLString); overload;  // throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException
    constructor create(para1: JIFile); overload;  // throws java.io.FileNotFoundException
    constructor create(para1: JIFile; para2: JLString); overload;  // throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException
    procedure flush(); overload; virtual;
    procedure close(); overload; virtual;
    function checkError(): jboolean; overload; virtual;
  strict protected
    procedure setError(); overload; virtual;
    procedure clearError(); overload; virtual;
  public
    procedure write(para1: jint); overload; virtual;
    procedure write(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;
    procedure write(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;
    procedure write(para1: Arr1jchar); overload; virtual;
    procedure write(var para1: array of jchar); overload; virtual;
    procedure write(para1: JLString; para2: jint; para3: jint); overload; virtual;
    procedure write(para1: JLString); overload; virtual;
    procedure print(para1: jboolean); overload; virtual;
    procedure print(para1: jchar); overload; virtual;
    procedure print(para1: jint); overload; virtual;
    procedure print(para1: jlong); overload; virtual;
    procedure print(para1: jfloat); overload; virtual;
    procedure print(para1: jdouble); overload; virtual;
    procedure print(para1: Arr1jchar); overload; virtual;
    procedure print(var para1: array of jchar); overload; virtual;
    procedure print(para1: JLString); overload; virtual;
    procedure print(para1: JLObject); overload; virtual;
    procedure println(); overload; virtual;
    procedure println(para1: jboolean); overload; virtual;
    procedure println(para1: jchar); overload; virtual;
    procedure println(para1: jint); overload; virtual;
    procedure println(para1: jlong); overload; virtual;
    procedure println(para1: jfloat); overload; virtual;
    procedure println(para1: jdouble); overload; virtual;
    procedure println(para1: Arr1jchar); overload; virtual;
    procedure println(var para1: array of jchar); overload; virtual;
    procedure println(para1: JLString); overload; virtual;
    procedure println(para1: JLObject); overload; virtual;
    function printf(para1: JLString; para2: Arr1JLObject): JIPrintWriter; overload; virtual;
    function printf(para1: JLString; const para2: array of JLObject): JIPrintWriter; overload; virtual;
    function printf(para1: JULocale; para2: JLString; para3: Arr1JLObject): JIPrintWriter; overload; virtual;
    function printf(para1: JULocale; para2: JLString; const para3: array of JLObject): JIPrintWriter; overload; virtual;
    function format(para1: JLString; para2: Arr1JLObject): JIPrintWriter; overload; virtual;
    function format(para1: JLString; const para2: array of JLObject): JIPrintWriter; overload; virtual;
    function format(para1: JULocale; para2: JLString; para3: Arr1JLObject): JIPrintWriter; overload; virtual;
    function format(para1: JULocale; para2: JLString; const para3: array of JLObject): JIPrintWriter; overload; virtual;
    function append(para1: JLCharSequence): JIPrintWriter; overload; virtual;
    function append(para1: JLCharSequence; para2: jint; para3: jint): JIPrintWriter; overload; virtual;
    function append(para1: jchar): JIPrintWriter; overload; virtual;
    function append(para1: jchar): JIWriter; overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence; para2: jint; para3: jint): JIWriter; overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence): JIWriter; overload; virtual;  // throws java.io.IOException
    function append(para1: jchar): JLAppendable; overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence; para2: jint; para3: jint): JLAppendable; overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence): JLAppendable; overload; virtual;  // throws java.io.IOException
  end;

  JIStringWriter = class external 'java.io' name 'StringWriter' (JIWriter)
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    procedure write(para1: jint); overload; virtual;
    procedure write(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;
    procedure write(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;
    procedure write(para1: JLString); overload; virtual;
    procedure write(para1: JLString; para2: jint; para3: jint); overload; virtual;
    function append(para1: JLCharSequence): JIStringWriter; overload; virtual;
    function append(para1: JLCharSequence; para2: jint; para3: jint): JIStringWriter; overload; virtual;
    function append(para1: jchar): JIStringWriter; overload; virtual;
    function toString(): JLString; overload; virtual;
    function getBuffer(): JLStringBuffer; overload; virtual;
    procedure flush(); overload; virtual;
    procedure close(); overload; virtual;  // throws java.io.IOException
    function append(para1: jchar): JIWriter; overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence; para2: jint; para3: jint): JIWriter; overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence): JIWriter; overload; virtual;  // throws java.io.IOException
    function append(para1: jchar): JLAppendable; overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence; para2: jint; para3: jint): JLAppendable; overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence): JLAppendable; overload; virtual;  // throws java.io.IOException
  end;

  JNURLClassLoader = class external 'java.net' name 'URLClassLoader' (JSSecureClassLoader)
  public
    constructor create(para1: Arr1JNURL; para2: JLClassLoader); overload;
    constructor create(const para1: array of JNURL; para2: JLClassLoader); overload;
    constructor create(para1: Arr1JNURL); overload;
    constructor create(const para1: array of JNURL); overload;
    constructor create(para1: Arr1JNURL; para2: JLClassLoader; para3: JNURLStreamHandlerFactory); overload;
    constructor create(const para1: array of JNURL; para2: JLClassLoader; para3: JNURLStreamHandlerFactory); overload;
  strict protected
    procedure addURL(para1: JNURL); overload; virtual;
  public
    function getURLs(): Arr1JNURL; overload; virtual;
  strict protected
    function findClass(para1: JLString): JLClass; overload; virtual;  // throws java.lang.ClassNotFoundException
    function definePackage(para1: JLString; para2: JUJManifest; para3: JNURL): JLPackage; overload; virtual;  // throws java.lang.IllegalArgumentException
  public
    function findResource(para1: JLString): JNURL; overload; virtual;
    function findResources(para1: JLString): JUEnumeration; overload; virtual;  // throws java.io.IOException
  strict protected
    function getPermissions(para1: JSCodeSource): JSPermissionCollection; overload; virtual;
  public
    class function newInstance(para1: Arr1JNURL; para2: JLClassLoader): JNURLClassLoader; static; overload;
    class function newInstance(var para1: array of JNURL; para2: JLClassLoader): JNURLClassLoader; static; overload;
    class function newInstance(para1: Arr1JNURL): JNURLClassLoader; static; overload;
    class function newInstance(var para1: array of JNURL): JNURLClassLoader; static; overload;
  end;

  JAEventDispatchThread = class external 'java.awt' name 'EventDispatchThread' (JLThread)
  public
    type
      InnerHierarchyEventFilter = class;
      Arr1InnerHierarchyEventFilter = array of InnerHierarchyEventFilter;
      Arr2InnerHierarchyEventFilter = array of Arr1InnerHierarchyEventFilter;
      Arr3InnerHierarchyEventFilter = array of Arr2InnerHierarchyEventFilter;
      InnerStopDispatchEvent = class;
      Arr1InnerStopDispatchEvent = array of InnerStopDispatchEvent;
      Arr2InnerStopDispatchEvent = array of Arr1InnerStopDispatchEvent;
      Arr3InnerStopDispatchEvent = array of Arr2InnerStopDispatchEvent;
      InnerHierarchyEventFilter = class external 'java.awt' name 'HierarchyEventFilter' 
      end;

      InnerStopDispatchEvent = class external 'java.awt' name 'StopDispatchEvent' 
      end;

  public
    procedure stopDispatching(); overload; virtual;
    procedure stopDispatchingLater(); overload; virtual;
    procedure run(); overload; virtual;
  end;

  JLThreadGroup = class external 'java.lang' name 'ThreadGroup' (JLObject, JLThread.InnerUncaughtExceptionHandler)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLThreadGroup; para2: JLString); overload;
    function getName(): JLString; overload; virtual; final;
    function getParent(): JLThreadGroup; overload; virtual; final;
    function getMaxPriority(): jint; overload; virtual; final;
    function isDaemon(): jboolean; overload; virtual; final;
    function isDestroyed(): jboolean; overload; virtual;
    procedure setDaemon(para1: jboolean); overload; virtual; final;
    procedure setMaxPriority(para1: jint); overload; virtual; final;
    function parentOf(para1: JLThreadGroup): jboolean; overload; virtual; final;
    procedure checkAccess(); overload; virtual; final;
    function activeCount(): jint; overload; virtual;
    function enumerate(para1: Arr1JLThread): jint; overload; virtual;
    function enumerate(var para1: array of JLThread): jint; overload; virtual;
    function enumerate(para1: Arr1JLThread; para2: jboolean): jint; overload; virtual;
    function enumerate(var para1: array of JLThread; para2: jboolean): jint; overload; virtual;
    function activeGroupCount(): jint; overload; virtual;
    function enumerate(para1: Arr1JLThreadGroup): jint; overload; virtual;
    function enumerate(var para1: array of JLThreadGroup): jint; overload; virtual;
    function enumerate(para1: Arr1JLThreadGroup; para2: jboolean): jint; overload; virtual;
    function enumerate(var para1: array of JLThreadGroup; para2: jboolean): jint; overload; virtual;
    procedure stop(); overload; virtual; final;
    procedure interrupt(); overload; virtual; final;
    procedure suspend(); overload; virtual; final;
    procedure resume(); overload; virtual; final;
    procedure destroy(); overload; virtual; final;
    procedure list(); overload; virtual;
    procedure uncaughtException(para1: JLThread; para2: JLThrowable); overload; virtual;
    function allowThreadSuspension(para1: jboolean): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JLMThreadInfo = class external 'java.lang.management' name 'ThreadInfo' (JLObject)
  public
    function getThreadId(): jlong; overload; virtual;
    function getThreadName(): JLString; overload; virtual;
    function getThreadState(): JLThread.InnerState; overload; virtual;
    function getBlockedTime(): jlong; overload; virtual;
    function getBlockedCount(): jlong; overload; virtual;
    function getWaitedTime(): jlong; overload; virtual;
    function getWaitedCount(): jlong; overload; virtual;
    function getLockInfo(): JLMLockInfo; overload; virtual;
    function getLockName(): JLString; overload; virtual;
    function getLockOwnerId(): jlong; overload; virtual;
    function getLockOwnerName(): JLString; overload; virtual;
    function getStackTrace(): Arr1JLStackTraceElement; overload; virtual;
    function isSuspended(): jboolean; overload; virtual;
    function isInNative(): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    class function from(para1: JMOCompositeData): JLMThreadInfo; static; overload;
    function getLockedMonitors(): Arr1JLMMonitorInfo; overload; virtual;
    function getLockedSynchronizers(): Arr1JLMLockInfo; overload; virtual;
  end;

  JUTimerThread = class external 'java.util' name 'TimerThread' (JLThread)
  public
    procedure run(); overload; virtual;
  end;

  JSCSyntheticImageGenerator = class external 'javax.swing.colorchooser' name 'SyntheticImageGenerator' (JLThread)
  public
    procedure run(); overload; virtual;
  end;

  JMTTimerAlarmClock = class external 'javax.management.timer' name 'TimerAlarmClock' (JUTimerTask)
  public
    constructor create(para1: JMTTimer; para2: jlong); overload;
    constructor create(para1: JMTTimer; para2: JUDate); overload;
    procedure run(); overload; virtual;
  end;

  JLRFinalizer = class sealed external 'java.lang.ref' name 'Finalizer' (JLRFinalReference)
  public
    type
      InnerFinalizerThread = class;
      Arr1InnerFinalizerThread = array of InnerFinalizerThread;
      Arr2InnerFinalizerThread = array of Arr1InnerFinalizerThread;
      Arr3InnerFinalizerThread = array of Arr2InnerFinalizerThread;
      InnerFinalizerThread = class external 'java.lang.ref' name 'FinalizerThread' 
      end;

  end;

  JNPlainDatagramSocketImpl = class external 'java.net' name 'PlainDatagramSocketImpl' (JNDatagramSocketImpl)
  strict protected
    procedure create_(); external name 'create'; overload; virtual;  // throws java.net.SocketException
    procedure bind(para1: jint; para2: JNInetAddress); overload; virtual;  // throws java.net.SocketException
    procedure bind0(para1: jint; para2: JNInetAddress); overload; virtual;  // throws java.net.SocketException
    procedure send(para1: JNDatagramPacket); overload; virtual;  // throws java.io.IOException
    procedure connect(para1: JNInetAddress; para2: jint); overload; virtual;  // throws java.net.SocketException
    procedure disconnect(); overload; virtual;
    function peek(para1: JNInetAddress): jint; overload; virtual;  // throws java.io.IOException
    function peekData(para1: JNDatagramPacket): jint; overload; virtual;  // throws java.io.IOException
    procedure receive(para1: JNDatagramPacket); overload; virtual;  // throws java.io.IOException
    procedure receive0(para1: JNDatagramPacket); overload; virtual;  // throws java.io.IOException
    procedure setTimeToLive(para1: jint); overload; virtual;  // throws java.io.IOException
    function getTimeToLive(): jint; overload; virtual;  // throws java.io.IOException
    procedure setTTL(para1: jbyte); overload; virtual;  // throws java.io.IOException
    function getTTL(): jbyte; overload; virtual;  // throws java.io.IOException
    procedure join(para1: JNInetAddress); overload; virtual;  // throws java.io.IOException
    procedure leave(para1: JNInetAddress); overload; virtual;  // throws java.io.IOException
    procedure joinGroup(para1: JNSocketAddress; para2: JNNetworkInterface); overload; virtual;  // throws java.io.IOException
    procedure leaveGroup(para1: JNSocketAddress; para2: JNNetworkInterface); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;
    procedure finalize(); overload; virtual;
  public
    procedure setOption(para1: jint; para2: JLObject); overload; virtual;  // throws java.net.SocketException
    function getOption(para1: jint): JLObject; overload; virtual;  // throws java.net.SocketException
  end;

  JNPlainSocketImpl = class external 'java.net' name 'PlainSocketImpl' (JNSocketImpl)
  public
    const
      SHUT_RD = 0;
      SHUT_WR = 1;
  strict protected
    procedure create_(para1: jboolean); external name 'create'; overload; virtual;  // throws java.io.IOException
    procedure connect(para1: JLString; para2: jint); overload; virtual;  // throws java.net.UnknownHostException, java.io.IOException
    procedure connect(para1: JNInetAddress; para2: jint); overload; virtual;  // throws java.io.IOException
    procedure connect(para1: JNSocketAddress; para2: jint); overload; virtual;  // throws java.io.IOException
  public
    procedure setOption(para1: jint; para2: JLObject); overload; virtual;  // throws java.net.SocketException
    function getOption(para1: jint): JLObject; overload; virtual;  // throws java.net.SocketException
  strict protected
    procedure bind(para1: JNInetAddress; para2: jint); overload; virtual;  // throws java.io.IOException
    procedure listen(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure accept(para1: JNSocketImpl); overload; virtual;  // throws java.io.IOException
    function getInputStream(): JIInputStream; overload; virtual;  // throws java.io.IOException
    function getOutputStream(): JIOutputStream; overload; virtual;  // throws java.io.IOException
    function available(): jint; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure shutdownInput(); overload; virtual;  // throws java.io.IOException
    procedure shutdownOutput(); overload; virtual;  // throws java.io.IOException
    function supportsUrgentData(): jboolean; overload; virtual;
    procedure sendUrgentData(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure finalize(); overload; virtual;  // throws java.io.IOException
  public
    function acquireFD(): JIFileDescriptor; overload; virtual; final;
    procedure releaseFD(); overload; virtual; final;
    function isConnectionReset(): jboolean; overload; virtual;
    function isConnectionResetPending(): jboolean; overload; virtual;
    procedure setConnectionReset(); overload; virtual;
    procedure setConnectionResetPending(); overload; virtual;
    function isClosedOrPending(): jboolean; overload; virtual;
    function getTimeout(): jint; overload; virtual;
  end;

  JNSHttpsURLConnection = class abstract external 'javax.net.ssl' name 'HttpsURLConnection' (JNHttpURLConnection)
  public
    type
      InnerDefaultHostnameVerifier = class;
      Arr1InnerDefaultHostnameVerifier = array of InnerDefaultHostnameVerifier;
      Arr2InnerDefaultHostnameVerifier = array of Arr1InnerDefaultHostnameVerifier;
      Arr3InnerDefaultHostnameVerifier = array of Arr2InnerDefaultHostnameVerifier;
      InnerDefaultHostnameVerifier = class external 'javax.net.ssl' name 'DefaultHostnameVerifier' 
      end;

  strict protected
    var
      fhostnameVerifier: JNSHostnameVerifier; external name 'hostnameVerifier';
  strict protected
    constructor create(para1: JNURL); overload;
  public
    function getCipherSuite(): JLString; overload; virtual; abstract;
    function getLocalCertificates(): Arr1JSCCertificate; overload; virtual; abstract;
    function getServerCertificates(): Arr1JSCCertificate; overload; virtual; abstract;  // throws javax.net.ssl.SSLPeerUnverifiedException
    function getPeerPrincipal(): JSPrincipal; overload; virtual;  // throws javax.net.ssl.SSLPeerUnverifiedException
    function getLocalPrincipal(): JSPrincipal; overload; virtual;
    class procedure setDefaultHostnameVerifier(para1: JNSHostnameVerifier); static; overload;
    class function getDefaultHostnameVerifier(): JNSHostnameVerifier; static; overload;
    procedure setHostnameVerifier(para1: JNSHostnameVerifier); overload; virtual;
    function getHostnameVerifier(): JNSHostnameVerifier; overload; virtual;
    class procedure setDefaultSSLSocketFactory(para1: JNSSSLSocketFactory); static; overload;
    class function getDefaultSSLSocketFactory(): JNSSSLSocketFactory; static; overload;
    procedure setSSLSocketFactory(para1: JNSSSLSocketFactory); overload; virtual;
    function getSSLSocketFactory(): JNSSSLSocketFactory; overload; virtual;
  end;

  JRSRemoteObjectInvocationHandler = class external 'java.rmi.server' name 'RemoteObjectInvocationHandler' (JRSRemoteObject, JLRInvocationHandler)
  public
    type
      InnerMethodToHash_Maps = class;
      Arr1InnerMethodToHash_Maps = array of InnerMethodToHash_Maps;
      Arr2InnerMethodToHash_Maps = array of Arr1InnerMethodToHash_Maps;
      Arr3InnerMethodToHash_Maps = array of Arr2InnerMethodToHash_Maps;
      InnerMethodToHash_Maps = class external 'java.rmi.server' name 'MethodToHash_Maps' 
      end;

  public
    constructor create(para1: JRSRemoteRef); overload;
    function invoke(para1: JLObject; para2: JLRMethod; para3: Arr1JLObject): JLObject; overload; virtual;  // throws java.lang.Throwable
    function invoke(para1: JLObject; para2: JLRMethod; var para3: array of JLObject): JLObject; overload; virtual;  // throws java.lang.Throwable
  end;

  JRSRemoteServer = class abstract external 'java.rmi.server' name 'RemoteServer' (JRSRemoteObject)
  strict protected
    constructor create(); overload;
    constructor create(para1: JRSRemoteRef); overload;
  public
    class function getClientHost(): JLString; static; overload;  // throws java.rmi.server.ServerNotActiveException
    class procedure setLog(para1: JIOutputStream); static; overload;
    class function getLog(): JIPrintStream; static; overload;
  end;

  JRSRemoteStub = class abstract external 'java.rmi.server' name 'RemoteStub' (JRSRemoteObject)
  strict protected
    constructor create(); overload;
    constructor create(para1: JRSRemoteRef); overload;
    class procedure setRef(para1: JRSRemoteStub; para2: JRSRemoteRef); static; overload;
  end;

  JMRRRMIConnectionImpl = class external 'javax.management.remote.rmi' name 'RMIConnectionImpl' (JLObject, JMRRRMIConnection, JRSUnreferenced)
  public
    type
      InnerPrivilegedOperation = class;
      Arr1InnerPrivilegedOperation = array of InnerPrivilegedOperation;
      Arr2InnerPrivilegedOperation = array of Arr1InnerPrivilegedOperation;
      Arr3InnerPrivilegedOperation = array of Arr2InnerPrivilegedOperation;
      InnerSetCcl = class;
      Arr1InnerSetCcl = array of InnerSetCcl;
      Arr2InnerSetCcl = array of Arr1InnerSetCcl;
      Arr3InnerSetCcl = array of Arr2InnerSetCcl;
      InnerRMIServerCommunicatorAdmin = class;
      Arr1InnerRMIServerCommunicatorAdmin = array of InnerRMIServerCommunicatorAdmin;
      Arr2InnerRMIServerCommunicatorAdmin = array of Arr1InnerRMIServerCommunicatorAdmin;
      Arr3InnerRMIServerCommunicatorAdmin = array of Arr2InnerRMIServerCommunicatorAdmin;
      InnerPrivilegedOperation = class external 'javax.management.remote.rmi' name 'PrivilegedOperation' 
      end;

      InnerSetCcl = class external 'javax.management.remote.rmi' name 'SetCcl' 
      end;

      InnerRMIServerCommunicatorAdmin = class external 'javax.management.remote.rmi' name 'RMIServerCommunicatorAdmin' 
      end;

  public
    constructor create(para1: JMRRRMIServerImpl; para2: JLString; para3: JLClassLoader; para4: JSASubject; para5: JUMap); overload;
    function getConnectionId(): JLString; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure unreferenced(); overload; virtual;
    function createMBean(para1: JLString; para2: JMObjectName; para3: JSASubject): JMObjectInstance; overload; virtual;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, java.io.IOException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JMObjectName; para4: JSASubject): JMObjectInstance; overload; virtual;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, javax.management.InstanceNotFoundException, java.io.IOException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JRMarshalledObject; para4: Arr1JLString; para5: JSASubject): JMObjectInstance; overload; virtual;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, java.io.IOException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JRMarshalledObject; var para4: array of JLString; para5: JSASubject): JMObjectInstance; overload; virtual;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, java.io.IOException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JMObjectName; para4: JRMarshalledObject; para5: Arr1JLString; para6: JSASubject): JMObjectInstance; overload; virtual;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, javax.management.InstanceNotFoundException, java.io.IOException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JMObjectName; para4: JRMarshalledObject; var para5: array of JLString; para6: JSASubject): JMObjectInstance; overload; virtual;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, javax.management.InstanceNotFoundException, java.io.IOException
    procedure unregisterMBean(para1: JMObjectName; para2: JSASubject); overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.MBeanRegistrationException, java.io.IOException
    function getObjectInstance(para1: JMObjectName; para2: JSASubject): JMObjectInstance; overload; virtual;  // throws javax.management.InstanceNotFoundException, java.io.IOException
    function queryMBeans(para1: JMObjectName; para2: JRMarshalledObject; para3: JSASubject): JUSet; overload; virtual;  // throws java.io.IOException
    function queryNames(para1: JMObjectName; para2: JRMarshalledObject; para3: JSASubject): JUSet; overload; virtual;  // throws java.io.IOException
    function isRegistered(para1: JMObjectName; para2: JSASubject): jboolean; overload; virtual;  // throws java.io.IOException
    function getMBeanCount(para1: JSASubject): JLInteger; overload; virtual;  // throws java.io.IOException
    function getAttribute(para1: JMObjectName; para2: JLString; para3: JSASubject): JLObject; overload; virtual;  // throws javax.management.MBeanException, javax.management.AttributeNotFoundException, javax.management.InstanceNotFoundException, javax.management.ReflectionException, java.io.IOException
    function getAttributes(para1: JMObjectName; para2: Arr1JLString; para3: JSASubject): JMAttributeList; overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.ReflectionException, java.io.IOException
    function getAttributes(para1: JMObjectName; var para2: array of JLString; para3: JSASubject): JMAttributeList; overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.ReflectionException, java.io.IOException
    procedure setAttribute(para1: JMObjectName; para2: JRMarshalledObject; para3: JSASubject); overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.AttributeNotFoundException, javax.management.InvalidAttributeValueException, javax.management.MBeanException, javax.management.ReflectionException, java.io.IOException
    function setAttributes(para1: JMObjectName; para2: JRMarshalledObject; para3: JSASubject): JMAttributeList; overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.ReflectionException, java.io.IOException
    function invoke(para1: JMObjectName; para2: JLString; para3: JRMarshalledObject; para4: Arr1JLString; para5: JSASubject): JLObject; overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.MBeanException, javax.management.ReflectionException, java.io.IOException
    function invoke(para1: JMObjectName; para2: JLString; para3: JRMarshalledObject; var para4: array of JLString; para5: JSASubject): JLObject; overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.MBeanException, javax.management.ReflectionException, java.io.IOException
    function getDefaultDomain(para1: JSASubject): JLString; overload; virtual;  // throws java.io.IOException
    function getDomains(para1: JSASubject): Arr1JLString; overload; virtual;  // throws java.io.IOException
    function getMBeanInfo(para1: JMObjectName; para2: JSASubject): JMMBeanInfo; overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.IntrospectionException, javax.management.ReflectionException, java.io.IOException
    function isInstanceOf(para1: JMObjectName; para2: JLString; para3: JSASubject): jboolean; overload; virtual;  // throws javax.management.InstanceNotFoundException, java.io.IOException
    function addNotificationListeners(para1: Arr1JMObjectName; para2: Arr1JRMarshalledObject; para3: Arr1JSASubject): Arr1JLInteger; overload; virtual;  // throws javax.management.InstanceNotFoundException, java.io.IOException
    function addNotificationListeners(var para1: array of JMObjectName; var para2: array of JRMarshalledObject; var para3: array of JSASubject): Arr1JLInteger; overload; virtual;  // throws javax.management.InstanceNotFoundException, java.io.IOException
    procedure addNotificationListener(para1: JMObjectName; para2: JMObjectName; para3: JRMarshalledObject; para4: JRMarshalledObject; para5: JSASubject); overload; virtual;  // throws javax.management.InstanceNotFoundException, java.io.IOException
    procedure removeNotificationListeners(para1: JMObjectName; para2: Arr1JLInteger; para3: JSASubject); overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.ListenerNotFoundException, java.io.IOException
    procedure removeNotificationListeners(para1: JMObjectName; var para2: array of JLInteger; para3: JSASubject); overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.ListenerNotFoundException, java.io.IOException
    procedure removeNotificationListener(para1: JMObjectName; para2: JMObjectName; para3: JSASubject); overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.ListenerNotFoundException, java.io.IOException
    procedure removeNotificationListener(para1: JMObjectName; para2: JMObjectName; para3: JRMarshalledObject; para4: JRMarshalledObject; para5: JSASubject); overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.ListenerNotFoundException, java.io.IOException
    function fetchNotifications(para1: jlong; para2: jint; para3: jlong): JMRNotificationResult; overload; virtual;  // throws java.io.IOException
    function toString(): JLString; overload; virtual;
  end;

  JMRRRMIServerImpl = class abstract external 'javax.management.remote.rmi' name 'RMIServerImpl' (JLObject, JICloseable, JMRRRMIServer)
  public
    constructor create(para1: JUMap); overload;
  strict protected
    procedure export(); overload; virtual; abstract;  // throws java.io.IOException
  public
    function toStub(): JRRemote; overload; virtual; abstract;  // throws java.io.IOException
    procedure setDefaultClassLoader(para1: JLClassLoader); overload; virtual;
    function getDefaultClassLoader(): JLClassLoader; overload; virtual;
    procedure setMBeanServer(para1: JMMBeanServer); overload; virtual;
    function getMBeanServer(): JMMBeanServer; overload; virtual;
    function getVersion(): JLString; overload; virtual;
    function newClient(para1: JLObject): JMRRRMIConnection; overload; virtual;  // throws java.io.IOException
  strict protected
    function makeClient(para1: JLString; para2: JSASubject): JMRRRMIConnection; overload; virtual; abstract;  // throws java.io.IOException
    procedure closeClient(para1: JMRRRMIConnection); overload; virtual; abstract;  // throws java.io.IOException
    function getProtocol(): JLString; overload; virtual; abstract;
    procedure clientClosed(para1: JMRRRMIConnection); overload; virtual;  // throws java.io.IOException
  public
    procedure close(); overload; virtual;  // throws java.io.IOException
  strict protected
    procedure closeServer(); overload; virtual; abstract;  // throws java.io.IOException
  end;

  JIFilePermission = class sealed external 'java.io' name 'FilePermission' (JSPermission, JISerializable)
  public
    constructor create(para1: JLString; para2: JLString); overload;
    function implies(para1: JSPermission): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function getActions(): JLString; overload; virtual;
    function newPermissionCollection(): JSPermissionCollection; overload; virtual;
  end;

  JNSocketPermission = class sealed external 'java.net' name 'SocketPermission' (JSPermission, JISerializable)
  public
    constructor create(para1: JLString; para2: JLString); overload;
    function implies(para1: JSPermission): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function getActions(): JLString; overload; virtual;
    function newPermissionCollection(): JSPermissionCollection; overload; virtual;
  end;

  JSAllPermission = class sealed external 'java.security' name 'AllPermission' (JSPermission)
  public
    constructor create(); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    function implies(para1: JSPermission): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function getActions(): JLString; overload; virtual;
    function newPermissionCollection(): JSPermissionCollection; overload; virtual;
  end;

  JSBasicPermission = class abstract external 'java.security' name 'BasicPermission' (JSPermission, JISerializable)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    function implies(para1: JSPermission): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function getActions(): JLString; overload; virtual;
    function newPermissionCollection(): JSPermissionCollection; overload; virtual;
  end;

  JSUnresolvedPermission = class sealed external 'java.security' name 'UnresolvedPermission' (JSPermission, JISerializable)
  public
    constructor create(para1: JLString; para2: JLString; para3: JLString; para4: Arr1JSCCertificate); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLString; const para4: array of JSCCertificate); overload;
    function implies(para1: JSPermission): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function getActions(): JLString; overload; virtual;
    function getUnresolvedType(): JLString; overload; virtual;
    function getUnresolvedName(): JLString; overload; virtual;
    function getUnresolvedActions(): JLString; overload; virtual;
    function getUnresolvedCerts(): Arr1JSCCertificate; overload; virtual;
    function toString(): JLString; overload; virtual;
    function newPermissionCollection(): JSPermissionCollection; overload; virtual;
  end;

  JCSunJCE_f = class external 'javax.crypto' name 'SunJCE_f' (JSPermission)
  public
    function implies(para1: JSPermission): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function getActions(): JLString; overload; virtual;
    function newPermissionCollection(): JSPermissionCollection; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JMMBeanPermission = class external 'javax.management' name 'MBeanPermission' (JSPermission)
  public
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: JMObjectName; para4: JLString); overload;
    function getActions(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JSAPrivateCredentialPermission = class sealed external 'javax.security.auth' name 'PrivateCredentialPermission' (JSPermission)
  public
    type
      InnerCredOwner = class;
      Arr1InnerCredOwner = array of InnerCredOwner;
      Arr2InnerCredOwner = array of Arr1InnerCredOwner;
      Arr3InnerCredOwner = array of Arr2InnerCredOwner;
      InnerCredOwner = class external 'javax.security.auth' name 'CredOwner' 
      end;

  public
    constructor create(para1: JLString; para2: JLString); overload;
    function getCredentialClass(): JLString; overload; virtual;
    function getPrincipals(): Arr2JLString; overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function getActions(): JLString; overload; virtual;
    function newPermissionCollection(): JSPermissionCollection; overload; virtual;
  end;

  JSAKServicePermission = class sealed external 'javax.security.auth.kerberos' name 'ServicePermission' (JSPermission, JISerializable)
  public
    constructor create(para1: JLString; para2: JLString); overload;
    function implies(para1: JSPermission): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function getActions(): JLString; overload; virtual;
    function newPermissionCollection(): JSPermissionCollection; overload; virtual;
  end;

  JSCardPermission = class external 'javax.smartcardio' name 'CardPermission' (JSPermission)
  public
    constructor create(para1: JLString; para2: JLString); overload;
    function getActions(): JLString; overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JSIdentityScope = class abstract external 'java.security' name 'IdentityScope' (JSIdentity)
  strict protected
    constructor create(); overload;
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JSIdentityScope); overload;  // throws java.security.KeyManagementException
    class function getSystemScope(): JSIdentityScope; static; overload;
  strict protected
    class procedure setSystemScope(para1: JSIdentityScope); static; overload;
  public
    function size(): jint; overload; virtual; abstract;
    function getIdentity(para1: JLString): JSIdentity; overload; virtual; abstract;
    function getIdentity(para1: JSPrincipal): JSIdentity; overload; virtual;
    function getIdentity(para1: JSPublicKey): JSIdentity; overload; virtual; abstract;
    procedure addIdentity(para1: JSIdentity); overload; virtual; abstract;  // throws java.security.KeyManagementException
    procedure removeIdentity(para1: JSIdentity); overload; virtual; abstract;  // throws java.security.KeyManagementException
    function identities(): JUEnumeration; overload; virtual; abstract;
    function toString(): JLString; overload; virtual;
  end;

  JSSigner = class abstract external 'java.security' name 'Signer' (JSIdentity)
  strict protected
    constructor create(); overload;
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JSIdentityScope); overload;  // throws java.security.KeyManagementException
    function getPrivateKey(): JSPrivateKey; overload; virtual;
    procedure setKeyPair(para1: JSKeyPair); overload; virtual; final;  // throws java.security.InvalidParameterException, java.security.KeyException
    function toString(): JLString; overload; virtual;
  end;

  JXCDSHMACParameterSpec = class sealed external 'javax.xml.crypto.dsig.spec' name 'HMACParameterSpec' (JLObject, JXCDSSignatureMethodParameterSpec)
  public
    constructor create(para1: jint); overload;
    function getOutputLength(): jint; overload; virtual;
  end;

  JXCDSC14NMethodParameterSpec = interface external 'javax.xml.crypto.dsig.spec' name 'C14NMethodParameterSpec' (JXCDSTransformParameterSpec)
  end;

  JXCDSXPathFilter2ParameterSpec = class sealed external 'javax.xml.crypto.dsig.spec' name 'XPathFilter2ParameterSpec' (JLObject, JXCDSTransformParameterSpec)
  public
    constructor create(para1: JUList); overload;
    function getXPathList(): JUList; overload; virtual;
  end;

  JXCDSXPathFilterParameterSpec = class sealed external 'javax.xml.crypto.dsig.spec' name 'XPathFilterParameterSpec' (JLObject, JXCDSTransformParameterSpec)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JUMap); overload;
    function getXPath(): JLString; overload; virtual;
    function getNamespaceMap(): JUMap; overload; virtual;
  end;

  JXCDSXSLTTransformParameterSpec = class sealed external 'javax.xml.crypto.dsig.spec' name 'XSLTTransformParameterSpec' (JLObject, JXCDSTransformParameterSpec)
  public
    constructor create(para1: JXCXMLStructure); overload;
    function getStylesheet(): JXCXMLStructure; overload; virtual;
  end;

  JSSPKCS8EncodedKeySpec = class external 'java.security.spec' name 'PKCS8EncodedKeySpec' (JSSEncodedKeySpec)
  public
    constructor create(para1: Arr1jbyte); overload;
    constructor create(const para1: array of jbyte); overload;
    function getEncoded(): Arr1jbyte; overload; virtual;
    function getFormat(): JLString; overload; virtual; final;
  end;

  JSSX509EncodedKeySpec = class external 'java.security.spec' name 'X509EncodedKeySpec' (JSSEncodedKeySpec)
  public
    constructor create(para1: Arr1jbyte); overload;
    constructor create(const para1: array of jbyte); overload;
    function getEncoded(): Arr1jbyte; overload; virtual;
    function getFormat(): JLString; overload; virtual; final;
  end;

  JSSRSAMultiPrimePrivateCrtKeySpec = class external 'java.security.spec' name 'RSAMultiPrimePrivateCrtKeySpec' (JSSRSAPrivateKeySpec)
  public
    constructor create(para1: JMBigInteger; para2: JMBigInteger; para3: JMBigInteger; para4: JMBigInteger; para5: JMBigInteger; para6: JMBigInteger; para7: JMBigInteger; para8: JMBigInteger; para9: Arr1JSSRSAOtherPrimeInfo); overload;
    constructor create(para1: JMBigInteger; para2: JMBigInteger; para3: JMBigInteger; para4: JMBigInteger; para5: JMBigInteger; para6: JMBigInteger; para7: JMBigInteger; para8: JMBigInteger; const para9: array of JSSRSAOtherPrimeInfo); overload;
    function getPublicExponent(): JMBigInteger; overload; virtual;
    function getPrimeP(): JMBigInteger; overload; virtual;
    function getPrimeQ(): JMBigInteger; overload; virtual;
    function getPrimeExponentP(): JMBigInteger; overload; virtual;
    function getPrimeExponentQ(): JMBigInteger; overload; virtual;
    function getCrtCoefficient(): JMBigInteger; overload; virtual;
    function getOtherPrimeInfo(): Arr1JSSRSAOtherPrimeInfo; overload; virtual;
  end;

  JSSRSAPrivateCrtKeySpec = class external 'java.security.spec' name 'RSAPrivateCrtKeySpec' (JSSRSAPrivateKeySpec)
  public
    constructor create(para1: JMBigInteger; para2: JMBigInteger; para3: JMBigInteger; para4: JMBigInteger; para5: JMBigInteger; para6: JMBigInteger; para7: JMBigInteger; para8: JMBigInteger); overload;
    function getPublicExponent(): JMBigInteger; overload; virtual;
    function getPrimeP(): JMBigInteger; overload; virtual;
    function getPrimeQ(): JMBigInteger; overload; virtual;
    function getPrimeExponentP(): JMBigInteger; overload; virtual;
    function getPrimeExponentQ(): JMBigInteger; overload; virtual;
    function getCrtCoefficient(): JMBigInteger; overload; virtual;
  end;

  JSRowSet = interface external 'javax.sql' name 'RowSet' (JSResultSet)
    function getUrl(): JLString; overload;  // throws java.sql.SQLException
    procedure setUrl(para1: JLString); overload;  // throws java.sql.SQLException
    function getDataSourceName(): JLString; overload;
    procedure setDataSourceName(para1: JLString); overload;  // throws java.sql.SQLException
    function getUsername(): JLString; overload;
    procedure setUsername(para1: JLString); overload;  // throws java.sql.SQLException
    function getPassword(): JLString; overload;
    procedure setPassword(para1: JLString); overload;  // throws java.sql.SQLException
    function getTransactionIsolation(): jint; overload;
    procedure setTransactionIsolation(para1: jint); overload;  // throws java.sql.SQLException
    function getTypeMap(): JUMap; overload;  // throws java.sql.SQLException
    procedure setTypeMap(para1: JUMap); overload;  // throws java.sql.SQLException
    function getCommand(): JLString; overload;
    procedure setCommand(para1: JLString); overload;  // throws java.sql.SQLException
    function isReadOnly(): jboolean; overload;
    procedure setReadOnly(para1: jboolean); overload;  // throws java.sql.SQLException
    function getMaxFieldSize(): jint; overload;  // throws java.sql.SQLException
    procedure setMaxFieldSize(para1: jint); overload;  // throws java.sql.SQLException
    function getMaxRows(): jint; overload;  // throws java.sql.SQLException
    procedure setMaxRows(para1: jint); overload;  // throws java.sql.SQLException
    function getEscapeProcessing(): jboolean; overload;  // throws java.sql.SQLException
    procedure setEscapeProcessing(para1: jboolean); overload;  // throws java.sql.SQLException
    function getQueryTimeout(): jint; overload;  // throws java.sql.SQLException
    procedure setQueryTimeout(para1: jint); overload;  // throws java.sql.SQLException
    procedure setType(para1: jint); overload;  // throws java.sql.SQLException
    procedure setConcurrency(para1: jint); overload;  // throws java.sql.SQLException
    procedure setNull(para1: jint; para2: jint); overload;  // throws java.sql.SQLException
    procedure setNull(para1: JLString; para2: jint); overload;  // throws java.sql.SQLException
    procedure setNull(para1: jint; para2: jint; para3: JLString); overload;  // throws java.sql.SQLException
    procedure setNull(para1: JLString; para2: jint; para3: JLString); overload;  // throws java.sql.SQLException
    procedure setBoolean(para1: jint; para2: jboolean); overload;  // throws java.sql.SQLException
    procedure setBoolean(para1: JLString; para2: jboolean); overload;  // throws java.sql.SQLException
    procedure setByte(para1: jint; para2: jbyte); overload;  // throws java.sql.SQLException
    procedure setByte(para1: JLString; para2: jbyte); overload;  // throws java.sql.SQLException
    procedure setShort(para1: jint; para2: jshort); overload;  // throws java.sql.SQLException
    procedure setShort(para1: JLString; para2: jshort); overload;  // throws java.sql.SQLException
    procedure setInt(para1: jint; para2: jint); overload;  // throws java.sql.SQLException
    procedure setInt(para1: JLString; para2: jint); overload;  // throws java.sql.SQLException
    procedure setLong(para1: jint; para2: jlong); overload;  // throws java.sql.SQLException
    procedure setLong(para1: JLString; para2: jlong); overload;  // throws java.sql.SQLException
    procedure setFloat(para1: jint; para2: jfloat); overload;  // throws java.sql.SQLException
    procedure setFloat(para1: JLString; para2: jfloat); overload;  // throws java.sql.SQLException
    procedure setDouble(para1: jint; para2: jdouble); overload;  // throws java.sql.SQLException
    procedure setDouble(para1: JLString; para2: jdouble); overload;  // throws java.sql.SQLException
    procedure setBigDecimal(para1: jint; para2: JMBigDecimal); overload;  // throws java.sql.SQLException
    procedure setBigDecimal(para1: JLString; para2: JMBigDecimal); overload;  // throws java.sql.SQLException
    procedure setString(para1: jint; para2: JLString); overload;  // throws java.sql.SQLException
    procedure setString(para1: JLString; para2: JLString); overload;  // throws java.sql.SQLException
    procedure setBytes(para1: jint; para2: Arr1jbyte); overload;  // throws java.sql.SQLException
    procedure setBytes(para1: jint; var para2: array of jbyte); overload;  // throws java.sql.SQLException
    procedure setBytes(para1: JLString; para2: Arr1jbyte); overload;  // throws java.sql.SQLException
    procedure setBytes(para1: JLString; var para2: array of jbyte); overload;  // throws java.sql.SQLException
    procedure setDate(para1: jint; para2: JSDate); overload;  // throws java.sql.SQLException
    procedure setTime(para1: jint; para2: JSTime); overload;  // throws java.sql.SQLException
    procedure setTimestamp(para1: jint; para2: JSqlTimestamp); overload;  // throws java.sql.SQLException
    procedure setTimestamp(para1: JLString; para2: JSqlTimestamp); overload;  // throws java.sql.SQLException
    procedure setAsciiStream(para1: jint; para2: JIInputStream; para3: jint); overload;  // throws java.sql.SQLException
    procedure setAsciiStream(para1: JLString; para2: JIInputStream; para3: jint); overload;  // throws java.sql.SQLException
    procedure setBinaryStream(para1: jint; para2: JIInputStream; para3: jint); overload;  // throws java.sql.SQLException
    procedure setBinaryStream(para1: JLString; para2: JIInputStream; para3: jint); overload;  // throws java.sql.SQLException
    procedure setCharacterStream(para1: jint; para2: JIReader; para3: jint); overload;  // throws java.sql.SQLException
    procedure setCharacterStream(para1: JLString; para2: JIReader; para3: jint); overload;  // throws java.sql.SQLException
    procedure setAsciiStream(para1: jint; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure setAsciiStream(para1: JLString; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure setBinaryStream(para1: jint; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure setBinaryStream(para1: JLString; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure setCharacterStream(para1: jint; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure setCharacterStream(para1: JLString; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure setNCharacterStream(para1: jint; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure setObject(para1: jint; para2: JLObject; para3: jint; para4: jint); overload;  // throws java.sql.SQLException
    procedure setObject(para1: JLString; para2: JLObject; para3: jint; para4: jint); overload;  // throws java.sql.SQLException
    procedure setObject(para1: jint; para2: JLObject; para3: jint); overload;  // throws java.sql.SQLException
    procedure setObject(para1: JLString; para2: JLObject; para3: jint); overload;  // throws java.sql.SQLException
    procedure setObject(para1: JLString; para2: JLObject); overload;  // throws java.sql.SQLException
    procedure setObject(para1: jint; para2: JLObject); overload;  // throws java.sql.SQLException
    procedure setRef(para1: jint; para2: JSRef); overload;  // throws java.sql.SQLException
    procedure setBlob(para1: jint; para2: JSBlob); overload;  // throws java.sql.SQLException
    procedure setBlob(para1: jint; para2: JIInputStream; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setBlob(para1: jint; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure setBlob(para1: JLString; para2: JIInputStream; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setBlob(para1: JLString; para2: JSBlob); overload;  // throws java.sql.SQLException
    procedure setBlob(para1: JLString; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure setClob(para1: jint; para2: JSClob); overload;  // throws java.sql.SQLException
    procedure setClob(para1: jint; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setClob(para1: jint; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure setClob(para1: JLString; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setClob(para1: JLString; para2: JSClob); overload;  // throws java.sql.SQLException
    procedure setClob(para1: JLString; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure setArray(para1: jint; para2: JSArray); overload;  // throws java.sql.SQLException
    procedure setDate(para1: jint; para2: JSDate; para3: JUCalendar); overload;  // throws java.sql.SQLException
    procedure setDate(para1: JLString; para2: JSDate); overload;  // throws java.sql.SQLException
    procedure setDate(para1: JLString; para2: JSDate; para3: JUCalendar); overload;  // throws java.sql.SQLException
    procedure setTime(para1: jint; para2: JSTime; para3: JUCalendar); overload;  // throws java.sql.SQLException
    procedure setTime(para1: JLString; para2: JSTime); overload;  // throws java.sql.SQLException
    procedure setTime(para1: JLString; para2: JSTime; para3: JUCalendar); overload;  // throws java.sql.SQLException
    procedure setTimestamp(para1: jint; para2: JSqlTimestamp; para3: JUCalendar); overload;  // throws java.sql.SQLException
    procedure setTimestamp(para1: JLString; para2: JSqlTimestamp; para3: JUCalendar); overload;  // throws java.sql.SQLException
    procedure clearParameters(); overload;  // throws java.sql.SQLException
    procedure execute(); overload;  // throws java.sql.SQLException
    procedure addRowSetListener(para1: JSRowSetListener); overload;
    procedure removeRowSetListener(para1: JSRowSetListener); overload;
    procedure setSQLXML(para1: jint; para2: JSSQLXML); overload;  // throws java.sql.SQLException
    procedure setSQLXML(para1: JLString; para2: JSSQLXML); overload;  // throws java.sql.SQLException
    procedure setRowId(para1: jint; para2: JSRowId); overload;  // throws java.sql.SQLException
    procedure setRowId(para1: JLString; para2: JSRowId); overload;  // throws java.sql.SQLException
    procedure setNString(para1: jint; para2: JLString); overload;  // throws java.sql.SQLException
    procedure setNString(para1: JLString; para2: JLString); overload;  // throws java.sql.SQLException
    procedure setNCharacterStream(para1: jint; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setNCharacterStream(para1: JLString; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setNCharacterStream(para1: JLString; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure setNClob(para1: JLString; para2: JSNClob); overload;  // throws java.sql.SQLException
    procedure setNClob(para1: JLString; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setNClob(para1: JLString; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure setNClob(para1: jint; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setNClob(para1: jint; para2: JSNClob); overload;  // throws java.sql.SQLException
    procedure setNClob(para1: jint; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure setURL_(para1: jint; para2: JNURL); external name 'setURL'; overload;  // throws java.sql.SQLException
  end;

  JSRowSetMetaData = interface external 'javax.sql' name 'RowSetMetaData' (JSResultSetMetaData)
    procedure setColumnCount(para1: jint); overload;  // throws java.sql.SQLException
    procedure setAutoIncrement(para1: jint; para2: jboolean); overload;  // throws java.sql.SQLException
    procedure setCaseSensitive(para1: jint; para2: jboolean); overload;  // throws java.sql.SQLException
    procedure setSearchable(para1: jint; para2: jboolean); overload;  // throws java.sql.SQLException
    procedure setCurrency(para1: jint; para2: jboolean); overload;  // throws java.sql.SQLException
    procedure setNullable(para1: jint; para2: jint); overload;  // throws java.sql.SQLException
    procedure setSigned(para1: jint; para2: jboolean); overload;  // throws java.sql.SQLException
    procedure setColumnDisplaySize(para1: jint; para2: jint); overload;  // throws java.sql.SQLException
    procedure setColumnLabel(para1: jint; para2: JLString); overload;  // throws java.sql.SQLException
    procedure setColumnName(para1: jint; para2: JLString); overload;  // throws java.sql.SQLException
    procedure setSchemaName(para1: jint; para2: JLString); overload;  // throws java.sql.SQLException
    procedure setPrecision(para1: jint; para2: jint); overload;  // throws java.sql.SQLException
    procedure setScale(para1: jint; para2: jint); overload;  // throws java.sql.SQLException
    procedure setTableName(para1: jint; para2: JLString); overload;  // throws java.sql.SQLException
    procedure setCatalogName(para1: jint; para2: JLString); overload;  // throws java.sql.SQLException
    procedure setColumnType(para1: jint; para2: jint); overload;  // throws java.sql.SQLException
    procedure setColumnTypeName(para1: jint; para2: JLString); overload;  // throws java.sql.SQLException
  end;

  JSPreparedStatement = interface external 'java.sql' name 'PreparedStatement' (JSStatement)
    function executeQuery(): JSResultSet; overload;  // throws java.sql.SQLException
    function executeUpdate(): jint; overload;  // throws java.sql.SQLException
    procedure setNull(para1: jint; para2: jint); overload;  // throws java.sql.SQLException
    procedure setBoolean(para1: jint; para2: jboolean); overload;  // throws java.sql.SQLException
    procedure setByte(para1: jint; para2: jbyte); overload;  // throws java.sql.SQLException
    procedure setShort(para1: jint; para2: jshort); overload;  // throws java.sql.SQLException
    procedure setInt(para1: jint; para2: jint); overload;  // throws java.sql.SQLException
    procedure setLong(para1: jint; para2: jlong); overload;  // throws java.sql.SQLException
    procedure setFloat(para1: jint; para2: jfloat); overload;  // throws java.sql.SQLException
    procedure setDouble(para1: jint; para2: jdouble); overload;  // throws java.sql.SQLException
    procedure setBigDecimal(para1: jint; para2: JMBigDecimal); overload;  // throws java.sql.SQLException
    procedure setString(para1: jint; para2: JLString); overload;  // throws java.sql.SQLException
    procedure setBytes(para1: jint; para2: Arr1jbyte); overload;  // throws java.sql.SQLException
    procedure setBytes(para1: jint; var para2: array of jbyte); overload;  // throws java.sql.SQLException
    procedure setDate(para1: jint; para2: JSDate); overload;  // throws java.sql.SQLException
    procedure setTime(para1: jint; para2: JSTime); overload;  // throws java.sql.SQLException
    procedure setTimestamp(para1: jint; para2: JSqlTimestamp); overload;  // throws java.sql.SQLException
    procedure setAsciiStream(para1: jint; para2: JIInputStream; para3: jint); overload;  // throws java.sql.SQLException
    procedure setUnicodeStream(para1: jint; para2: JIInputStream; para3: jint); overload;  // throws java.sql.SQLException
    procedure setBinaryStream(para1: jint; para2: JIInputStream; para3: jint); overload;  // throws java.sql.SQLException
    procedure clearParameters(); overload;  // throws java.sql.SQLException
    procedure setObject(para1: jint; para2: JLObject; para3: jint); overload;  // throws java.sql.SQLException
    procedure setObject(para1: jint; para2: JLObject); overload;  // throws java.sql.SQLException
    function execute(): jboolean; overload;  // throws java.sql.SQLException
    procedure addBatch(); overload;  // throws java.sql.SQLException
    procedure setCharacterStream(para1: jint; para2: JIReader; para3: jint); overload;  // throws java.sql.SQLException
    procedure setRef(para1: jint; para2: JSRef); overload;  // throws java.sql.SQLException
    procedure setBlob(para1: jint; para2: JSBlob); overload;  // throws java.sql.SQLException
    procedure setClob(para1: jint; para2: JSClob); overload;  // throws java.sql.SQLException
    procedure setArray(para1: jint; para2: JSArray); overload;  // throws java.sql.SQLException
    function getMetaData(): JSResultSetMetaData; overload;  // throws java.sql.SQLException
    procedure setDate(para1: jint; para2: JSDate; para3: JUCalendar); overload;  // throws java.sql.SQLException
    procedure setTime(para1: jint; para2: JSTime; para3: JUCalendar); overload;  // throws java.sql.SQLException
    procedure setTimestamp(para1: jint; para2: JSqlTimestamp; para3: JUCalendar); overload;  // throws java.sql.SQLException
    procedure setNull(para1: jint; para2: jint; para3: JLString); overload;  // throws java.sql.SQLException
    procedure setURL(para1: jint; para2: JNURL); overload;  // throws java.sql.SQLException
    function getParameterMetaData(): JSParameterMetaData; overload;  // throws java.sql.SQLException
    procedure setRowId(para1: jint; para2: JSRowId); overload;  // throws java.sql.SQLException
    procedure setNString(para1: jint; para2: JLString); overload;  // throws java.sql.SQLException
    procedure setNCharacterStream(para1: jint; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setNClob(para1: jint; para2: JSNClob); overload;  // throws java.sql.SQLException
    procedure setClob(para1: jint; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setBlob(para1: jint; para2: JIInputStream; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setNClob(para1: jint; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setSQLXML(para1: jint; para2: JSSQLXML); overload;  // throws java.sql.SQLException
    procedure setObject(para1: jint; para2: JLObject; para3: jint; para4: jint); overload;  // throws java.sql.SQLException
    procedure setAsciiStream(para1: jint; para2: JIInputStream; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setBinaryStream(para1: jint; para2: JIInputStream; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setCharacterStream(para1: jint; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setAsciiStream(para1: jint; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure setBinaryStream(para1: jint; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure setCharacterStream(para1: jint; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure setNCharacterStream(para1: jint; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure setClob(para1: jint; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure setBlob(para1: jint; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure setNClob(para1: jint; para2: JIReader); overload;  // throws java.sql.SQLException
  end;

  JUProperties = class external 'java.util' name 'Properties' (JUHashtable)
  public
    type
      InnerLineReader = class;
      Arr1InnerLineReader = array of InnerLineReader;
      Arr2InnerLineReader = array of Arr1InnerLineReader;
      Arr3InnerLineReader = array of Arr2InnerLineReader;
      InnerLineReader = class external 'java.util' name 'LineReader' 
      end;

  strict protected
    var
      fdefaults: JUProperties; external name 'defaults';
  public
    constructor create(); overload;
    constructor create(para1: JUProperties); overload;
    function setProperty(para1: JLString; para2: JLString): JLObject; overload; virtual;
    procedure load(para1: JIReader); overload; virtual;  // throws java.io.IOException
    procedure load(para1: JIInputStream); overload; virtual;  // throws java.io.IOException
    procedure save(para1: JIOutputStream; para2: JLString); overload; virtual;
    procedure store(para1: JIWriter; para2: JLString); overload; virtual;  // throws java.io.IOException
    procedure store(para1: JIOutputStream; para2: JLString); overload; virtual;  // throws java.io.IOException
    procedure loadFromXML(para1: JIInputStream); overload; virtual;  // throws java.io.IOException, java.util.InvalidPropertiesFormatException
    procedure storeToXML(para1: JIOutputStream; para2: JLString); overload; virtual;  // throws java.io.IOException
    procedure storeToXML(para1: JIOutputStream; para2: JLString; para3: JLString); overload; virtual;  // throws java.io.IOException
    function getProperty(para1: JLString): JLString; overload; virtual;
    function getProperty(para1: JLString; para2: JLString): JLString; overload; virtual;
    function propertyNames(): JUEnumeration; overload; virtual;
    function stringPropertyNames(): JUSet; overload; virtual;
    procedure list(para1: JIPrintStream); overload; virtual;
    procedure list(para1: JIPrintWriter); overload; virtual;
  end;

  JSUIDefaults = class external 'javax.swing' name 'UIDefaults' (JUHashtable)
  public
    type
      InnerActiveValue = interface;
      Arr1InnerActiveValue = array of InnerActiveValue;
      Arr2InnerActiveValue = array of Arr1InnerActiveValue;
      Arr3InnerActiveValue = array of Arr2InnerActiveValue;
      InnerLazyValue = interface;
      Arr1InnerLazyValue = array of InnerLazyValue;
      Arr2InnerLazyValue = array of Arr1InnerLazyValue;
      Arr3InnerLazyValue = array of Arr2InnerLazyValue;
      InnerLazyInputMap = class;
      Arr1InnerLazyInputMap = array of InnerLazyInputMap;
      Arr2InnerLazyInputMap = array of Arr1InnerLazyInputMap;
      Arr3InnerLazyInputMap = array of Arr2InnerLazyInputMap;
      InnerProxyLazyValue = class;
      Arr1InnerProxyLazyValue = array of InnerProxyLazyValue;
      Arr2InnerProxyLazyValue = array of Arr1InnerProxyLazyValue;
      Arr3InnerProxyLazyValue = array of Arr2InnerProxyLazyValue;
      InnerActiveValue = interface external 'javax.swing' name 'ActiveValue' 
        function createValue(para1: JSUIDefaults): JLObject; overload;
      end;

      InnerLazyValue = interface external 'javax.swing' name 'LazyValue' 
        function createValue(para1: JSUIDefaults): JLObject; overload;
      end;

      InnerLazyInputMap = class external 'javax.swing' name 'LazyInputMap' (JLObject, JSUIDefaults.InnerLazyValue)
      public
        constructor create(para1: Arr1JLObject); overload;
        constructor create(const para1: array of JLObject); overload;
        function createValue(para1: JSUIDefaults): JLObject; overload; virtual;
      end;

      InnerProxyLazyValue = class external 'javax.swing' name 'ProxyLazyValue' (JLObject, JSUIDefaults.InnerLazyValue)
      public
        constructor create(para1: JLString); overload;
        constructor create(para1: JLString; para2: JLString); overload;
        constructor create(para1: JLString; para2: Arr1JLObject); overload;
        constructor create(para1: JLString; const para2: array of JLObject); overload;
        constructor create(para1: JLString; para2: JLString; para3: Arr1JLObject); overload;
        constructor create(para1: JLString; para2: JLString; const para3: array of JLObject); overload;
        function createValue(para1: JSUIDefaults): JLObject; overload; virtual;
      end;

  public
    constructor create(); overload;
    constructor create(para1: jint; para2: jfloat); overload;
    constructor create(para1: Arr1JLObject); overload;
    constructor create(const para1: array of JLObject); overload;
    function get(para1: JLObject): JLObject; overload; virtual;
    function get(para1: JLObject; para2: JULocale): JLObject; overload; virtual;
    function put(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
    procedure putDefaults(para1: Arr1JLObject); overload; virtual;
    procedure putDefaults(var para1: array of JLObject); overload; virtual;
    function getFont(para1: JLObject): JAFont; overload; virtual;
    function getFont(para1: JLObject; para2: JULocale): JAFont; overload; virtual;
    function getColor(para1: JLObject): JAColor; overload; virtual;
    function getColor(para1: JLObject; para2: JULocale): JAColor; overload; virtual;
    function getIcon(para1: JLObject): JSIcon; overload; virtual;
    function getIcon(para1: JLObject; para2: JULocale): JSIcon; overload; virtual;
    function getBorder(para1: JLObject): JSBBorder; overload; virtual;
    function getBorder(para1: JLObject; para2: JULocale): JSBBorder; overload; virtual;
    function getString(para1: JLObject): JLString; overload; virtual;
    function getString(para1: JLObject; para2: JULocale): JLString; overload; virtual;
    function getInt(para1: JLObject): jint; overload; virtual;
    function getInt(para1: JLObject; para2: JULocale): jint; overload; virtual;
    function getBoolean(para1: JLObject): jboolean; overload; virtual;
    function getBoolean(para1: JLObject; para2: JULocale): jboolean; overload; virtual;
    function getInsets(para1: JLObject): JAInsets; overload; virtual;
    function getInsets(para1: JLObject; para2: JULocale): JAInsets; overload; virtual;
    function getDimension(para1: JLObject): JADimension; overload; virtual;
    function getDimension(para1: JLObject; para2: JULocale): JADimension; overload; virtual;
    function getUIClass(para1: JLString; para2: JLClassLoader): JLClass; overload; virtual;
    function getUIClass(para1: JLString): JLClass; overload; virtual;
  strict protected
    procedure getUIError(para1: JLString); overload; virtual;
  public
    function getUI(para1: JSJComponent): JSPComponentUI; overload; virtual;
    procedure addPropertyChangeListener(para1: JBPropertyChangeListener); overload; virtual;
    procedure removePropertyChangeListener(para1: JBPropertyChangeListener); overload; virtual;
    function getPropertyChangeListeners(): Arr1JBPropertyChangeListener; overload; virtual;
  strict protected
    procedure firePropertyChange(para1: JLString; para2: JLObject; para3: JLObject); overload; virtual;
  public
    procedure addResourceBundle(para1: JLString); overload; virtual;
    procedure removeResourceBundle(para1: JLString); overload; virtual;
    procedure setDefaultLocale(para1: JULocale); overload; virtual;
    function getDefaultLocale(): JULocale; overload; virtual;
  end;

  JADDragSourceAdapter = class abstract external 'java.awt.dnd' name 'DragSourceAdapter' (JLObject, JADDragSourceListener, JADDragSourceMotionListener)
  public
    constructor create(); overload;
    procedure dragEnter(para1: JADDragSourceDragEvent); overload; virtual;
    procedure dragOver(para1: JADDragSourceDragEvent); overload; virtual;
    procedure dragMouseMoved(para1: JADDragSourceDragEvent); overload; virtual;
    procedure dropActionChanged(para1: JADDragSourceDragEvent); overload; virtual;
    procedure dragExit(para1: JADDragSourceEvent); overload; virtual;
    procedure dragDropEnd(para1: JADDragSourceDropEvent); overload; virtual;
  end;

  JADDragSourceContext = class external 'java.awt.dnd' name 'DragSourceContext' (JLObject, JADDragSourceListener, JADDragSourceMotionListener, JISerializable)
  strict protected
    const
      DEFAULT = 0;
      ENTER = 1;
      OVER = 2;
      CHANGED = 3;
  public
    constructor create(para1: JADPDragSourceContextPeer; para2: JADDragGestureEvent; para3: JACursor; para4: JAImage; para5: JAPoint; para6: JADTransferable; para7: JADDragSourceListener); overload;
    function getDragSource(): JADDragSource; overload; virtual;
    function getComponent(): JAComponent; overload; virtual;
    function getTrigger(): JADDragGestureEvent; overload; virtual;
    function getSourceActions(): jint; overload; virtual;
    procedure setCursor(para1: JACursor); overload; virtual;
    function getCursor(): JACursor; overload; virtual;
    procedure addDragSourceListener(para1: JADDragSourceListener); overload; virtual;  // throws java.util.TooManyListenersException
    procedure removeDragSourceListener(para1: JADDragSourceListener); overload; virtual;
    procedure transferablesFlavorsChanged(); overload; virtual;
    procedure dragEnter(para1: JADDragSourceDragEvent); overload; virtual;
    procedure dragOver(para1: JADDragSourceDragEvent); overload; virtual;
    procedure dragExit(para1: JADDragSourceEvent); overload; virtual;
    procedure dropActionChanged(para1: JADDragSourceDragEvent); overload; virtual;
    procedure dragDropEnd(para1: JADDragSourceDropEvent); overload; virtual;
    procedure dragMouseMoved(para1: JADDragSourceDragEvent); overload; virtual;
    function getTransferable(): JADTransferable; overload; virtual;
  strict protected
    procedure updateCurrentCursor(para1: jint; para2: jint; para3: jint); overload; virtual;
  end;

  JADDropTargetAdapter = class abstract external 'java.awt.dnd' name 'DropTargetAdapter' (JLObject, JADDropTargetListener)
  public
    constructor create(); overload;
    procedure dragEnter(para1: JADDropTargetDragEvent); overload; virtual;
    procedure dragOver(para1: JADDropTargetDragEvent); overload; virtual;
    procedure dropActionChanged(para1: JADDropTargetDragEvent); overload; virtual;
    procedure dragExit(para1: JADDropTargetEvent); overload; virtual;
  end;

  JALightweightDispatcher = class external 'java.awt' name 'LightweightDispatcher' (JLObject, JISerializable, JAEAWTEventListener)
  public
    procedure eventDispatched(para1: JAAWTEvent); overload; virtual;
  end;

  JADDropTarget = class external 'java.awt.dnd' name 'DropTarget' (JLObject, JADDropTargetListener, JISerializable)
  public
    type
      InnerDropTargetAutoScroller = class;
      Arr1InnerDropTargetAutoScroller = array of InnerDropTargetAutoScroller;
      Arr2InnerDropTargetAutoScroller = array of Arr1InnerDropTargetAutoScroller;
      Arr3InnerDropTargetAutoScroller = array of Arr2InnerDropTargetAutoScroller;
      InnerDropTargetAutoScroller = class external 'java.awt.dnd' name 'DropTargetAutoScroller' (JLObject, JAEActionListener)
      strict protected
        constructor create(para1: JAComponent; para2: JAPoint); overload;
        procedure updateLocation(para1: JAPoint); overload; virtual;
        procedure stop(); overload; virtual;
      public
        procedure actionPerformed(para1: JAEActionEvent); overload; virtual;
      end;

  public
    constructor create(para1: JAComponent; para2: jint; para3: JADDropTargetListener; para4: jboolean; para5: JADFlavorMap); overload;  // throws java.awt.HeadlessException
    constructor create(para1: JAComponent; para2: jint; para3: JADDropTargetListener; para4: jboolean); overload;  // throws java.awt.HeadlessException
    constructor create(); overload;  // throws java.awt.HeadlessException
    constructor create(para1: JAComponent; para2: JADDropTargetListener); overload;  // throws java.awt.HeadlessException
    constructor create(para1: JAComponent; para2: jint; para3: JADDropTargetListener); overload;  // throws java.awt.HeadlessException
    procedure setComponent(para1: JAComponent); overload; virtual;
    function getComponent(): JAComponent; overload; virtual;
    procedure setDefaultActions(para1: jint); overload; virtual;
    function getDefaultActions(): jint; overload; virtual;
    procedure setActive(para1: jboolean); overload; virtual;
    function isActive(): jboolean; overload; virtual;
    procedure addDropTargetListener(para1: JADDropTargetListener); overload; virtual;  // throws java.util.TooManyListenersException
    procedure removeDropTargetListener(para1: JADDropTargetListener); overload; virtual;
    procedure dragEnter(para1: JADDropTargetDragEvent); overload; virtual;
    procedure dragOver(para1: JADDropTargetDragEvent); overload; virtual;
    procedure dropActionChanged(para1: JADDropTargetDragEvent); overload; virtual;
    procedure dragExit(para1: JADDropTargetEvent); overload; virtual;
    procedure drop(para1: JADDropTargetDropEvent); overload; virtual;
    function getFlavorMap(): JADFlavorMap; overload; virtual;
    procedure setFlavorMap(para1: JADFlavorMap); overload; virtual;
    procedure addNotify(para1: JAPComponentPeer); overload; virtual;
    procedure removeNotify(para1: JAPComponentPeer); overload; virtual;
    function getDropTargetContext(): JADDropTargetContext; overload; virtual;
  strict protected
    function createDropTargetContext(): JADDropTargetContext; overload; virtual;
    function createDropTargetAutoScroller(para1: JAComponent; para2: JAPoint): JADDropTarget.InnerDropTargetAutoScroller; overload; virtual;
    procedure initializeAutoscrolling(para1: JAPoint); overload; virtual;
    procedure updateAutoscroll(para1: JAPoint); overload; virtual;
    procedure clearAutoscroll(); overload; virtual;
  end;

  JSAction = interface external 'javax.swing' name 'Action' (JAEActionListener)
    const
      DEFAULT = 'Default';
      NAME = 'Name';
      SHORT_DESCRIPTION = 'ShortDescription';
      LONG_DESCRIPTION = 'LongDescription';
      SMALL_ICON = 'SmallIcon';
      ACTION_COMMAND_KEY = 'ActionCommandKey';
      ACCELERATOR_KEY = 'AcceleratorKey';
      MNEMONIC_KEY = 'MnemonicKey';
      SELECTED_KEY = 'SwingSelectedKey';
      DISPLAYED_MNEMONIC_INDEX_KEY = 'SwingDisplayedMnemonicIndexKey';
      LARGE_ICON_KEY = 'SwingLargeIconKey';
    function getValue(para1: JLString): JLObject; overload;
    procedure putValue(para1: JLString; para2: JLObject); overload;
    procedure setEnabled(para1: jboolean); overload;
    function isEnabled(): jboolean; overload;
    procedure addPropertyChangeListener(para1: JBPropertyChangeListener); overload;
    procedure removePropertyChangeListener(para1: JBPropertyChangeListener); overload;
  end;

  JSAutoscroller = class external 'javax.swing' name 'Autoscroller' (JLObject, JAEActionListener)
  public
    class procedure stop(para1: JSJComponent); static; overload;
    class function isRunning(para1: JSJComponent): jboolean; static; overload;
    class procedure processMouseDragged(para1: JAEMouseEvent); static; overload;
    procedure actionPerformed(para1: JAEActionEvent); overload; virtual;
  end;

  JSColorTracker = class external 'javax.swing' name 'ColorTracker' (JLObject, JAEActionListener, JISerializable)
  public
    constructor create(para1: JSJColorChooser); overload;
    procedure actionPerformed(para1: JAEActionEvent); overload; virtual;
    function getColor(): JAColor; overload; virtual;
  end;

  JAPeerFixer = class external 'java.awt' name 'PeerFixer' (JLObject, JAEAdjustmentListener, JISerializable)
  public
    procedure adjustmentValueChanged(para1: JAEAdjustmentEvent); overload; virtual;
  end;

  JAEComponentAdapter = class abstract external 'java.awt.event' name 'ComponentAdapter' (JLObject, JAEComponentListener)
  public
    constructor create(); overload;
    procedure componentResized(para1: JAEComponentEvent); overload; virtual;
    procedure componentMoved(para1: JAEComponentEvent); overload; virtual;
    procedure componentShown(para1: JAEComponentEvent); overload; virtual;
    procedure componentHidden(para1: JAEComponentEvent); overload; virtual;
  end;

  JAEContainerAdapter = class abstract external 'java.awt.event' name 'ContainerAdapter' (JLObject, JAEContainerListener)
  public
    constructor create(); overload;
    procedure componentAdded(para1: JAEContainerEvent); overload; virtual;
    procedure componentRemoved(para1: JAEContainerEvent); overload; virtual;
  end;

  JAEFocusAdapter = class abstract external 'java.awt.event' name 'FocusAdapter' (JLObject, JAEFocusListener)
  public
    constructor create(); overload;
    procedure focusGained(para1: JAEFocusEvent); overload; virtual;
    procedure focusLost(para1: JAEFocusEvent); overload; virtual;
  end;

  JSPBBasicComboBoxEditor = class external 'javax.swing.plaf.basic' name 'BasicComboBoxEditor' (JLObject, JSComboBoxEditor, JAEFocusListener)
  public
    type
      InnerBorderlessTextField = class;
      Arr1InnerBorderlessTextField = array of InnerBorderlessTextField;
      Arr2InnerBorderlessTextField = array of Arr1InnerBorderlessTextField;
      Arr3InnerBorderlessTextField = array of Arr2InnerBorderlessTextField;
      InnerBorderlessTextField = class external 'javax.swing.plaf.basic' name 'BorderlessTextField' 
      end;

  public
    type
      InnerUIResource = class;
      Arr1InnerUIResource = array of InnerUIResource;
      Arr2InnerUIResource = array of Arr1InnerUIResource;
      Arr3InnerUIResource = array of Arr2InnerUIResource;
      InnerUIResource = class external 'javax.swing.plaf.basic' name 'UIResource' (JSPBBasicComboBoxEditor, JSPUIResource)
      public
        constructor create(); overload;
      end;

  strict protected
    var
      feditor: JSJTextField; external name 'editor';
  public
    constructor create(); overload;
    function getEditorComponent(): JAComponent; overload; virtual;
  strict protected
    function createEditorComponent(): JSJTextField; overload; virtual;
  public
    procedure setItem(para1: JLObject); overload; virtual;
    function getItem(): JLObject; overload; virtual;
    procedure selectAll(); overload; virtual;
    procedure focusGained(para1: JAEFocusEvent); overload; virtual;
    procedure focusLost(para1: JAEFocusEvent); overload; virtual;
    procedure addActionListener(para1: JAEActionListener); overload; virtual;
    procedure removeActionListener(para1: JAEActionListener); overload; virtual;
  end;

  JAEHierarchyBoundsAdapter = class abstract external 'java.awt.event' name 'HierarchyBoundsAdapter' (JLObject, JAEHierarchyBoundsListener)
  public
    constructor create(); overload;
    procedure ancestorMoved(para1: JAEHierarchyEvent); overload; virtual;
    procedure ancestorResized(para1: JAEHierarchyEvent); overload; virtual;
  end;

  JAEKeyAdapter = class abstract external 'java.awt.event' name 'KeyAdapter' (JLObject, JAEKeyListener)
  public
    constructor create(); overload;
    procedure keyTyped(para1: JAEKeyEvent); overload; virtual;
    procedure keyPressed(para1: JAEKeyEvent); overload; virtual;
    procedure keyReleased(para1: JAEKeyEvent); overload; virtual;
  end;

  JADMouseDragGestureRecognizer = class abstract external 'java.awt.dnd' name 'MouseDragGestureRecognizer' (JADDragGestureRecognizer, JAEMouseListener, JAEMouseMotionListener)
  strict protected
    constructor create(para1: JADDragSource; para2: JAComponent; para3: jint; para4: JADDragGestureListener); overload;
    constructor create(para1: JADDragSource; para2: JAComponent; para3: jint); overload;
    constructor create(para1: JADDragSource; para2: JAComponent); overload;
    constructor create(para1: JADDragSource); overload;
    procedure registerListeners(); overload; virtual;
    procedure unregisterListeners(); overload; virtual;
  public
    procedure mouseClicked(para1: JAEMouseEvent); overload; virtual;
    procedure mousePressed(para1: JAEMouseEvent); overload; virtual;
    procedure mouseReleased(para1: JAEMouseEvent); overload; virtual;
    procedure mouseEntered(para1: JAEMouseEvent); overload; virtual;
    procedure mouseExited(para1: JAEMouseEvent); overload; virtual;
    procedure mouseDragged(para1: JAEMouseEvent); overload; virtual;
    procedure mouseMoved(para1: JAEMouseEvent); overload; virtual;
  end;

  JAEMouseMotionAdapter = class abstract external 'java.awt.event' name 'MouseMotionAdapter' (JLObject, JAEMouseMotionListener)
  public
    constructor create(); overload;
    procedure mouseDragged(para1: JAEMouseEvent); overload; virtual;
    procedure mouseMoved(para1: JAEMouseEvent); overload; virtual;
  end;

  JSEMouseInputListener = interface external 'javax.swing.event' name 'MouseInputListener' (JAEMouseListener, JAEMouseMotionListener)
  end;

  JAEMouseAdapter = class abstract external 'java.awt.event' name 'MouseAdapter' (JLObject, JAEMouseListener, JAEMouseWheelListener, JAEMouseMotionListener)
  public
    constructor create(); overload;
    procedure mouseClicked(para1: JAEMouseEvent); overload; virtual;
    procedure mousePressed(para1: JAEMouseEvent); overload; virtual;
    procedure mouseReleased(para1: JAEMouseEvent); overload; virtual;
    procedure mouseEntered(para1: JAEMouseEvent); overload; virtual;
    procedure mouseExited(para1: JAEMouseEvent); overload; virtual;
    procedure mouseWheelMoved(para1: JAEMouseWheelEvent); overload; virtual;
    procedure mouseDragged(para1: JAEMouseEvent); overload; virtual;
    procedure mouseMoved(para1: JAEMouseEvent); overload; virtual;
  end;

  JAAWTEventMulticaster = class external 'java.awt' name 'AWTEventMulticaster' (JLObject, JAEComponentListener, JAEContainerListener, JAEFocusListener, JAEKeyListener, JAEMouseListener, JAEMouseMotionListener, JAEWindowListener, JAEWindowFocusListener, JAEWindowStateListener, JAEActionListener, JAEItemListener, JAEAdjustmentListener, JAETextListener, JAEInputMethodListener, JAEHierarchyListener, JAEHierarchyBoundsListener, JAEMouseWheelListener)
  strict protected
    final var
      fa: JUEventListener; external name 'a';
      fb: JUEventListener; external name 'b';
  strict protected
    constructor create(para1: JUEventListener; para2: JUEventListener); overload;
    function remove(para1: JUEventListener): JUEventListener; overload; virtual;
  public
    procedure componentResized(para1: JAEComponentEvent); overload; virtual;
    procedure componentMoved(para1: JAEComponentEvent); overload; virtual;
    procedure componentShown(para1: JAEComponentEvent); overload; virtual;
    procedure componentHidden(para1: JAEComponentEvent); overload; virtual;
    procedure componentAdded(para1: JAEContainerEvent); overload; virtual;
    procedure componentRemoved(para1: JAEContainerEvent); overload; virtual;
    procedure focusGained(para1: JAEFocusEvent); overload; virtual;
    procedure focusLost(para1: JAEFocusEvent); overload; virtual;
    procedure keyTyped(para1: JAEKeyEvent); overload; virtual;
    procedure keyPressed(para1: JAEKeyEvent); overload; virtual;
    procedure keyReleased(para1: JAEKeyEvent); overload; virtual;
    procedure mouseClicked(para1: JAEMouseEvent); overload; virtual;
    procedure mousePressed(para1: JAEMouseEvent); overload; virtual;
    procedure mouseReleased(para1: JAEMouseEvent); overload; virtual;
    procedure mouseEntered(para1: JAEMouseEvent); overload; virtual;
    procedure mouseExited(para1: JAEMouseEvent); overload; virtual;
    procedure mouseDragged(para1: JAEMouseEvent); overload; virtual;
    procedure mouseMoved(para1: JAEMouseEvent); overload; virtual;
    procedure windowOpened(para1: JAEWindowEvent); overload; virtual;
    procedure windowClosing(para1: JAEWindowEvent); overload; virtual;
    procedure windowClosed(para1: JAEWindowEvent); overload; virtual;
    procedure windowIconified(para1: JAEWindowEvent); overload; virtual;
    procedure windowDeiconified(para1: JAEWindowEvent); overload; virtual;
    procedure windowActivated(para1: JAEWindowEvent); overload; virtual;
    procedure windowDeactivated(para1: JAEWindowEvent); overload; virtual;
    procedure windowStateChanged(para1: JAEWindowEvent); overload; virtual;
    procedure windowGainedFocus(para1: JAEWindowEvent); overload; virtual;
    procedure windowLostFocus(para1: JAEWindowEvent); overload; virtual;
    procedure actionPerformed(para1: JAEActionEvent); overload; virtual;
    procedure itemStateChanged(para1: JAEItemEvent); overload; virtual;
    procedure adjustmentValueChanged(para1: JAEAdjustmentEvent); overload; virtual;
    procedure textValueChanged(para1: JAETextEvent); overload; virtual;
    procedure inputMethodTextChanged(para1: JAEInputMethodEvent); overload; virtual;
    procedure caretPositionChanged(para1: JAEInputMethodEvent); overload; virtual;
    procedure hierarchyChanged(para1: JAEHierarchyEvent); overload; virtual;
    procedure ancestorMoved(para1: JAEHierarchyEvent); overload; virtual;
    procedure ancestorResized(para1: JAEHierarchyEvent); overload; virtual;
    procedure mouseWheelMoved(para1: JAEMouseWheelEvent); overload; virtual;
    class function add(para1: JAEComponentListener; para2: JAEComponentListener): JAEComponentListener; static; overload;
    class function add(para1: JAEContainerListener; para2: JAEContainerListener): JAEContainerListener; static; overload;
    class function add(para1: JAEFocusListener; para2: JAEFocusListener): JAEFocusListener; static; overload;
    class function add(para1: JAEKeyListener; para2: JAEKeyListener): JAEKeyListener; static; overload;
    class function add(para1: JAEMouseListener; para2: JAEMouseListener): JAEMouseListener; static; overload;
    class function add(para1: JAEMouseMotionListener; para2: JAEMouseMotionListener): JAEMouseMotionListener; static; overload;
    class function add(para1: JAEWindowListener; para2: JAEWindowListener): JAEWindowListener; static; overload;
    class function add(para1: JAEWindowStateListener; para2: JAEWindowStateListener): JAEWindowStateListener; static; overload;
    class function add(para1: JAEWindowFocusListener; para2: JAEWindowFocusListener): JAEWindowFocusListener; static; overload;
    class function add(para1: JAEActionListener; para2: JAEActionListener): JAEActionListener; static; overload;
    class function add(para1: JAEItemListener; para2: JAEItemListener): JAEItemListener; static; overload;
    class function add(para1: JAEAdjustmentListener; para2: JAEAdjustmentListener): JAEAdjustmentListener; static; overload;
    class function add(para1: JAETextListener; para2: JAETextListener): JAETextListener; static; overload;
    class function add(para1: JAEInputMethodListener; para2: JAEInputMethodListener): JAEInputMethodListener; static; overload;
    class function add(para1: JAEHierarchyListener; para2: JAEHierarchyListener): JAEHierarchyListener; static; overload;
    class function add(para1: JAEHierarchyBoundsListener; para2: JAEHierarchyBoundsListener): JAEHierarchyBoundsListener; static; overload;
    class function add(para1: JAEMouseWheelListener; para2: JAEMouseWheelListener): JAEMouseWheelListener; static; overload;
    class function remove(para1: JAEComponentListener; para2: JAEComponentListener): JAEComponentListener; static; overload;
    class function remove(para1: JAEContainerListener; para2: JAEContainerListener): JAEContainerListener; static; overload;
    class function remove(para1: JAEFocusListener; para2: JAEFocusListener): JAEFocusListener; static; overload;
    class function remove(para1: JAEKeyListener; para2: JAEKeyListener): JAEKeyListener; static; overload;
    class function remove(para1: JAEMouseListener; para2: JAEMouseListener): JAEMouseListener; static; overload;
    class function remove(para1: JAEMouseMotionListener; para2: JAEMouseMotionListener): JAEMouseMotionListener; static; overload;
    class function remove(para1: JAEWindowListener; para2: JAEWindowListener): JAEWindowListener; static; overload;
    class function remove(para1: JAEWindowStateListener; para2: JAEWindowStateListener): JAEWindowStateListener; static; overload;
    class function remove(para1: JAEWindowFocusListener; para2: JAEWindowFocusListener): JAEWindowFocusListener; static; overload;
    class function remove(para1: JAEActionListener; para2: JAEActionListener): JAEActionListener; static; overload;
    class function remove(para1: JAEItemListener; para2: JAEItemListener): JAEItemListener; static; overload;
    class function remove(para1: JAEAdjustmentListener; para2: JAEAdjustmentListener): JAEAdjustmentListener; static; overload;
    class function remove(para1: JAETextListener; para2: JAETextListener): JAETextListener; static; overload;
    class function remove(para1: JAEInputMethodListener; para2: JAEInputMethodListener): JAEInputMethodListener; static; overload;
    class function remove(para1: JAEHierarchyListener; para2: JAEHierarchyListener): JAEHierarchyListener; static; overload;
    class function remove(para1: JAEHierarchyBoundsListener; para2: JAEHierarchyBoundsListener): JAEHierarchyBoundsListener; static; overload;
    class function remove(para1: JAEMouseWheelListener; para2: JAEMouseWheelListener): JAEMouseWheelListener; static; overload;
  strict protected
    class function addInternal(para1: JUEventListener; para2: JUEventListener): JUEventListener; static; overload;
    class function removeInternal(para1: JUEventListener; para2: JUEventListener): JUEventListener; static; overload;
    procedure saveInternal(para1: JIObjectOutputStream; para2: JLString); overload; virtual;  // throws java.io.IOException
    class procedure save(para1: JIObjectOutputStream; para2: JLString; para3: JUEventListener); static; overload;  // throws java.io.IOException
  public
    class function getListeners(para1: JUEventListener; para2: JLClass): Arr1JUEventListener; static; overload;
  end;

  JAEWindowAdapter = class abstract external 'java.awt.event' name 'WindowAdapter' (JLObject, JAEWindowListener, JAEWindowStateListener, JAEWindowFocusListener)
  public
    constructor create(); overload;
    procedure windowOpened(para1: JAEWindowEvent); overload; virtual;
    procedure windowClosing(para1: JAEWindowEvent); overload; virtual;
    procedure windowClosed(para1: JAEWindowEvent); overload; virtual;
    procedure windowIconified(para1: JAEWindowEvent); overload; virtual;
    procedure windowDeiconified(para1: JAEWindowEvent); overload; virtual;
    procedure windowActivated(para1: JAEWindowEvent); overload; virtual;
    procedure windowDeactivated(para1: JAEWindowEvent); overload; virtual;
    procedure windowStateChanged(para1: JAEWindowEvent); overload; virtual;
    procedure windowGainedFocus(para1: JAEWindowEvent); overload; virtual;
    procedure windowLostFocus(para1: JAEWindowEvent); overload; virtual;
  end;

  JSActionPropertyChangeListener = class abstract external 'javax.swing' name 'ActionPropertyChangeListener' (JLObject, JBPropertyChangeListener, JISerializable)
  public
    type
      InnerOwnedWeakReference = class;
      Arr1InnerOwnedWeakReference = array of InnerOwnedWeakReference;
      Arr2InnerOwnedWeakReference = array of Arr1InnerOwnedWeakReference;
      Arr3InnerOwnedWeakReference = array of Arr2InnerOwnedWeakReference;
      InnerOwnedWeakReference = class external 'javax.swing' name 'OwnedWeakReference' 
      end;

  public
    constructor create(para1: JSJComponent; para2: JSAction); overload;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual; final;
  strict protected
    procedure actionPropertyChanged(para1: JSJComponent; para2: JSAction; para3: JBPropertyChangeEvent); overload; virtual; abstract;
  public
    function getTarget(): JSJComponent; overload; virtual;
    function getAction(): JSAction; overload; virtual;
  end;

  JSAncestorNotifier = class external 'javax.swing' name 'AncestorNotifier' (JLObject, JAEComponentListener, JBPropertyChangeListener, JISerializable)
  strict protected
    procedure fireAncestorAdded(para1: JSJComponent; para2: jint; para3: JAContainer; para4: JAContainer); overload; virtual;
    procedure fireAncestorRemoved(para1: JSJComponent; para2: jint; para3: JAContainer; para4: JAContainer); overload; virtual;
    procedure fireAncestorMoved(para1: JSJComponent; para2: jint; para3: JAContainer; para4: JAContainer); overload; virtual;
  public
    procedure componentResized(para1: JAEComponentEvent); overload; virtual;
    procedure componentMoved(para1: JAEComponentEvent); overload; virtual;
    procedure componentShown(para1: JAEComponentEvent); overload; virtual;
    procedure componentHidden(para1: JAEComponentEvent); overload; virtual;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  end;

  JBBBeanContextServicesListener = interface external 'java.beans.beancontext' name 'BeanContextServicesListener' (JBBBeanContextServiceRevokedListener)
    procedure serviceAvailable(para1: JBBBeanContextServiceAvailableEvent); overload;
  end;

  JAEAWTEventListenerProxy = class external 'java.awt.event' name 'AWTEventListenerProxy' (JUEventListenerProxy, JAEAWTEventListener)
  public
    constructor create(para1: jlong; para2: JAEAWTEventListener); overload;
    procedure eventDispatched(para1: JAAWTEvent); overload; virtual;
    function getEventMask(): jlong; overload; virtual;
  end;

  JBPropertyChangeListenerProxy = class external 'java.beans' name 'PropertyChangeListenerProxy' (JUEventListenerProxy, JBPropertyChangeListener)
  public
    constructor create(para1: JLString; para2: JBPropertyChangeListener); overload;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
    function getPropertyName(): JLString; overload; virtual;
  end;

  JBVetoableChangeListenerProxy = class external 'java.beans' name 'VetoableChangeListenerProxy' (JUEventListenerProxy, JBVetoableChangeListener)
  public
    constructor create(para1: JLString; para2: JBVetoableChangeListener); overload;
    procedure vetoableChange(para1: JBPropertyChangeEvent); overload; virtual;  // throws java.beans.PropertyVetoException
    function getPropertyName(): JLString; overload; virtual;
  end;

  JNENamespaceChangeListener = interface external 'javax.naming.event' name 'NamespaceChangeListener' (JNENamingListener)
    procedure objectAdded(para1: JNENamingEvent); overload;
    procedure objectRemoved(para1: JNENamingEvent); overload;
    procedure objectRenamed(para1: JNENamingEvent); overload;
  end;

  JNEObjectChangeListener = interface external 'javax.naming.event' name 'ObjectChangeListener' (JNENamingListener)
    procedure objectChanged(para1: JNENamingEvent); overload;
  end;

  JNLUnsolicitedNotificationListener = interface external 'javax.naming.ldap' name 'UnsolicitedNotificationListener' (JNENamingListener)
    procedure notificationReceived(para1: JNLUnsolicitedNotificationEvent); overload;
  end;

  JSPBBasicButtonListener = class external 'javax.swing.plaf.basic' name 'BasicButtonListener' (JLObject, JAEMouseListener, JAEMouseMotionListener, JAEFocusListener, JSEChangeListener, JBPropertyChangeListener)
  public
    type
      InnerActions = class;
      Arr1InnerActions = array of InnerActions;
      Arr2InnerActions = array of Arr1InnerActions;
      Arr3InnerActions = array of Arr2InnerActions;
      InnerActions = class external 'javax.swing.plaf.basic' name 'Actions' 
      end;

  public
    constructor create(para1: JSAbstractButton); overload;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  strict protected
    procedure checkOpacity(para1: JSAbstractButton); overload; virtual;
  public
    procedure installKeyboardActions(para1: JSJComponent); overload; virtual;
    procedure uninstallKeyboardActions(para1: JSJComponent); overload; virtual;
    procedure stateChanged(para1: JSEChangeEvent); overload; virtual;
    procedure focusGained(para1: JAEFocusEvent); overload; virtual;
    procedure focusLost(para1: JAEFocusEvent); overload; virtual;
    procedure mouseMoved(para1: JAEMouseEvent); overload; virtual;
    procedure mouseDragged(para1: JAEMouseEvent); overload; virtual;
    procedure mouseClicked(para1: JAEMouseEvent); overload; virtual;
    procedure mousePressed(para1: JAEMouseEvent); overload; virtual;
    procedure mouseReleased(para1: JAEMouseEvent); overload; virtual;
    procedure mouseEntered(para1: JAEMouseEvent); overload; virtual;
    procedure mouseExited(para1: JAEMouseEvent); overload; virtual;
  end;

  JSEInternalFrameAdapter = class abstract external 'javax.swing.event' name 'InternalFrameAdapter' (JLObject, JSEInternalFrameListener)
  public
    constructor create(); overload;
    procedure internalFrameOpened(para1: JSEInternalFrameEvent); overload; virtual;
    procedure internalFrameClosing(para1: JSEInternalFrameEvent); overload; virtual;
    procedure internalFrameClosed(para1: JSEInternalFrameEvent); overload; virtual;
    procedure internalFrameIconified(para1: JSEInternalFrameEvent); overload; virtual;
    procedure internalFrameDeiconified(para1: JSEInternalFrameEvent); overload; virtual;
    procedure internalFrameActivated(para1: JSEInternalFrameEvent); overload; virtual;
    procedure internalFrameDeactivated(para1: JSEInternalFrameEvent); overload; virtual;
  end;

  JSTDefaultTableColumnModel = class external 'javax.swing.table' name 'DefaultTableColumnModel' (JLObject, JSTTableColumnModel, JBPropertyChangeListener, JSEListSelectionListener, JISerializable)
  strict protected
    var
      ftableColumns: JUVector; external name 'tableColumns';
      fselectionModel: JSListSelectionModel; external name 'selectionModel';
      fcolumnMargin: jint; external name 'columnMargin';
      flistenerList: JSEEventListenerList; external name 'listenerList';
      fchangeEvent: JSEChangeEvent; external name 'changeEvent';
      fcolumnSelectionAllowed: jboolean; external name 'columnSelectionAllowed';
      ftotalColumnWidth: jint; external name 'totalColumnWidth';
  public
    constructor create(); overload;
    procedure addColumn(para1: JSTTableColumn); overload; virtual;
    procedure removeColumn(para1: JSTTableColumn); overload; virtual;
    procedure moveColumn(para1: jint; para2: jint); overload; virtual;
    procedure setColumnMargin(para1: jint); overload; virtual;
    function getColumnCount(): jint; overload; virtual;
    function getColumns(): JUEnumeration; overload; virtual;
    function getColumnIndex(para1: JLObject): jint; overload; virtual;
    function getColumn(para1: jint): JSTTableColumn; overload; virtual;
    function getColumnMargin(): jint; overload; virtual;
    function getColumnIndexAtX(para1: jint): jint; overload; virtual;
    function getTotalColumnWidth(): jint; overload; virtual;
    procedure setSelectionModel(para1: JSListSelectionModel); overload; virtual;
    function getSelectionModel(): JSListSelectionModel; overload; virtual;
    procedure setColumnSelectionAllowed(para1: jboolean); overload; virtual;
    function getColumnSelectionAllowed(): jboolean; overload; virtual;
    function getSelectedColumns(): Arr1jint; overload; virtual;
    function getSelectedColumnCount(): jint; overload; virtual;
    procedure addColumnModelListener(para1: JSETableColumnModelListener); overload; virtual;
    procedure removeColumnModelListener(para1: JSETableColumnModelListener); overload; virtual;
    function getColumnModelListeners(): Arr1JSETableColumnModelListener; overload; virtual;
  strict protected
    procedure fireColumnAdded(para1: JSETableColumnModelEvent); overload; virtual;
    procedure fireColumnRemoved(para1: JSETableColumnModelEvent); overload; virtual;
    procedure fireColumnMoved(para1: JSETableColumnModelEvent); overload; virtual;
    procedure fireColumnSelectionChanged(para1: JSEListSelectionEvent); overload; virtual;
    procedure fireColumnMarginChanged(); overload; virtual;
  public
    function getListeners(para1: JLClass): Arr1JUEventListener; overload; virtual;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
    procedure valueChanged(para1: JSEListSelectionEvent); overload; virtual;
  strict protected
    function createSelectionModel(): JSListSelectionModel; overload; virtual;
    procedure recalcWidthCache(); overload; virtual;
  end;

  JAAccessibleResourceBundle = class external 'javax.accessibility' name 'AccessibleResourceBundle' (JUListResourceBundle)
  public
    constructor create(); overload;
    function getContents(): Arr2JLObject; overload; virtual;
  end;

  JUCAbstractExecutorService = class abstract external 'java.util.concurrent' name 'AbstractExecutorService' (JLObject, JUCExecutorService)
  public
    constructor create(); overload;
  strict protected
    function newTaskFor(para1: JLRunnable; para2: JLObject): JUCRunnableFuture; overload; virtual;
    function newTaskFor(para1: JUCCallable): JUCRunnableFuture; overload; virtual;
  public
    function submit(para1: JLRunnable): JUCFuture; overload; virtual;
    function submit(para1: JLRunnable; para2: JLObject): JUCFuture; overload; virtual;
    function submit(para1: JUCCallable): JUCFuture; overload; virtual;
    function invokeAny(para1: JUCollection): JLObject; overload; virtual;  // throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
    function invokeAny(para1: JUCollection; para2: jlong; para3: JUCTimeUnit): JLObject; overload; virtual;  // throws java.lang.InterruptedException, java.util.concurrent.ExecutionException, java.util.concurrent.TimeoutException
    function invokeAll(para1: JUCollection): JUList; overload; virtual;  // throws java.lang.InterruptedException
    function invokeAll(para1: JUCollection; para2: jlong; para3: JUCTimeUnit): JUList; overload; virtual;  // throws java.lang.InterruptedException
  end;

  JUCScheduledExecutorService = interface external 'java.util.concurrent' name 'ScheduledExecutorService' (JUCExecutorService)
    function schedule(para1: JLRunnable; para2: jlong; para3: JUCTimeUnit): JUCScheduledFuture; overload;
    function schedule(para1: JUCCallable; para2: jlong; para3: JUCTimeUnit): JUCScheduledFuture; overload;
    function scheduleAtFixedRate(para1: JLRunnable; para2: jlong; para3: jlong; para4: JUCTimeUnit): JUCScheduledFuture; overload;
    function scheduleWithFixedDelay(para1: JLRunnable; para2: jlong; para3: jlong; para4: JUCTimeUnit): JUCScheduledFuture; overload;
  end;

  JUCFutureTask = class external 'java.util.concurrent' name 'FutureTask' (JLObject, JUCRunnableFuture)
  public
    type
      InnerSync = class;
      Arr1InnerSync = array of InnerSync;
      Arr2InnerSync = array of Arr1InnerSync;
      Arr3InnerSync = array of Arr2InnerSync;
      InnerSync = class sealed external 'java.util.concurrent' name 'Sync' 
      end;

  public
    constructor create(para1: JUCCallable); overload;
    constructor create(para1: JLRunnable; para2: JLObject); overload;
    function isCancelled(): jboolean; overload; virtual;
    function isDone(): jboolean; overload; virtual;
    function cancel(para1: jboolean): jboolean; overload; virtual;
    function get(): JLObject; overload; virtual;  // throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
    function get(para1: jlong; para2: JUCTimeUnit): JLObject; overload; virtual;  // throws java.lang.InterruptedException, java.util.concurrent.ExecutionException, java.util.concurrent.TimeoutException
  strict protected
    procedure done(); overload; virtual;
    procedure &set(para1: JLObject); overload; virtual;
    procedure setException(para1: JLThrowable); overload; virtual;
  public
    procedure run(); overload; virtual;
  strict protected
    function runAndReset(): jboolean; overload; virtual;
  end;

  JSSwingWorker = class abstract external 'javax.swing' name 'SwingWorker' (JLObject, JUCRunnableFuture)
  public
    type
      InnerDoSubmitAccumulativeRunnable = class;
      Arr1InnerDoSubmitAccumulativeRunnable = array of InnerDoSubmitAccumulativeRunnable;
      Arr2InnerDoSubmitAccumulativeRunnable = array of Arr1InnerDoSubmitAccumulativeRunnable;
      Arr3InnerDoSubmitAccumulativeRunnable = array of Arr2InnerDoSubmitAccumulativeRunnable;
      InnerSwingWorkerPropertyChangeSupport = class;
      Arr1InnerSwingWorkerPropertyChangeSupport = array of InnerSwingWorkerPropertyChangeSupport;
      Arr2InnerSwingWorkerPropertyChangeSupport = array of Arr1InnerSwingWorkerPropertyChangeSupport;
      Arr3InnerSwingWorkerPropertyChangeSupport = array of Arr2InnerSwingWorkerPropertyChangeSupport;
      InnerDoSubmitAccumulativeRunnable = class external 'javax.swing' name 'DoSubmitAccumulativeRunnable' 
      end;

      InnerSwingWorkerPropertyChangeSupport = class external 'javax.swing' name 'SwingWorkerPropertyChangeSupport' 
      end;

  public
    type
      InnerStateValue = class;
      Arr1InnerStateValue = array of InnerStateValue;
      Arr2InnerStateValue = array of Arr1InnerStateValue;
      Arr3InnerStateValue = array of Arr2InnerStateValue;
      InnerStateValue = class sealed external 'javax.swing' name 'StateValue' (JLEnum)
      public
        final class var
          fPENDING: JSSwingWorker.InnerStateValue; external name 'PENDING';
          fSTARTED: JSSwingWorker.InnerStateValue; external name 'STARTED';
          fDONE: JSSwingWorker.InnerStateValue; external name 'DONE';
      public
        class function values(): JSSwingWorker.Arr1InnerStateValue; static; overload;
        class function valueOf(para1: JLString): JSSwingWorker.InnerStateValue; static; overload;
      end;

  public
    constructor create(); overload;
  strict protected
    function doInBackground(): JLObject; overload; virtual; abstract;  // throws java.lang.Exception
  public
    procedure run(); overload; virtual; final;
  strict protected
    procedure publish(para1: Arr1JLObject); overload; virtual; final;
    procedure publish(const para1: array of JLObject); overload; virtual; final;
    procedure process(para1: JUList); overload; virtual;
    procedure done(); overload; virtual;
    procedure setProgress(para1: jint); overload; virtual; final;
  public
    function getProgress(): jint; overload; virtual; final;
    procedure execute(); overload; virtual; final;
    function cancel(para1: jboolean): jboolean; overload; virtual; final;
    function isCancelled(): jboolean; overload; virtual; final;
    function isDone(): jboolean; overload; virtual; final;
    function get(): JLObject; overload; virtual; final;  // throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
    function get(para1: jlong; para2: JUCTimeUnit): JLObject; overload; virtual; final;  // throws java.lang.InterruptedException, java.util.concurrent.ExecutionException, java.util.concurrent.TimeoutException
    procedure addPropertyChangeListener(para1: JBPropertyChangeListener); overload; virtual; final;
    procedure removePropertyChangeListener(para1: JBPropertyChangeListener); overload; virtual; final;
    procedure firePropertyChange(para1: JLString; para2: JLObject; para3: JLObject); overload; virtual; final;
    function getPropertyChangeSupport(): JBPropertyChangeSupport; overload; virtual; final;
    function getState(): JSSwingWorker.InnerStateValue; overload; virtual; final;
  end;

  JULConsoleHandler = class external 'java.util.logging' name 'ConsoleHandler' (JULStreamHandler)
  public
    constructor create(); overload;
    procedure publish(para1: JULLogRecord); overload; virtual;
    procedure close(); overload; virtual;
  end;

  JULFileHandler = class external 'java.util.logging' name 'FileHandler' (JULStreamHandler)
  public
    type
      InnerInitializationErrorManager = class;
      Arr1InnerInitializationErrorManager = array of InnerInitializationErrorManager;
      Arr2InnerInitializationErrorManager = array of Arr1InnerInitializationErrorManager;
      Arr3InnerInitializationErrorManager = array of Arr2InnerInitializationErrorManager;
      InnerMeteredStream = class;
      Arr1InnerMeteredStream = array of InnerMeteredStream;
      Arr2InnerMeteredStream = array of Arr1InnerMeteredStream;
      Arr3InnerMeteredStream = array of Arr2InnerMeteredStream;
      InnerInitializationErrorManager = class external 'java.util.logging' name 'InitializationErrorManager' 
      end;

      InnerMeteredStream = class external 'java.util.logging' name 'MeteredStream' 
      end;

  public
    constructor create(); overload;  // throws java.io.IOException, java.lang.SecurityException
    constructor create(para1: JLString); overload;  // throws java.io.IOException, java.lang.SecurityException
    constructor create(para1: JLString; para2: jboolean); overload;  // throws java.io.IOException, java.lang.SecurityException
    constructor create(para1: JLString; para2: jint; para3: jint); overload;  // throws java.io.IOException, java.lang.SecurityException
    constructor create(para1: JLString; para2: jint; para3: jint; para4: jboolean); overload;  // throws java.io.IOException, java.lang.SecurityException
    procedure publish(para1: JULLogRecord); overload; virtual;
    procedure close(); overload; virtual;  // throws java.lang.SecurityException
  end;

  JULSocketHandler = class external 'java.util.logging' name 'SocketHandler' (JULStreamHandler)
  public
    constructor create(); overload;  // throws java.io.IOException
    constructor create(para1: JLString; para2: jint); overload;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.lang.SecurityException
    procedure publish(para1: JULLogRecord); overload; virtual;
  end;

  JUPFileSystemPreferences = class external 'java.util.prefs' name 'FileSystemPreferences' (JUPAbstractPreferences)
  public
    type
      InnerChange = class;
      Arr1InnerChange = array of InnerChange;
      Arr2InnerChange = array of Arr1InnerChange;
      Arr3InnerChange = array of Arr2InnerChange;
      InnerNodeCreate = class;
      Arr1InnerNodeCreate = array of InnerNodeCreate;
      Arr2InnerNodeCreate = array of Arr1InnerNodeCreate;
      Arr3InnerNodeCreate = array of Arr2InnerNodeCreate;
      InnerPut = class;
      Arr1InnerPut = array of InnerPut;
      Arr2InnerPut = array of Arr1InnerPut;
      Arr3InnerPut = array of Arr2InnerPut;
      InnerRemove = class;
      Arr1InnerRemove = array of InnerRemove;
      Arr2InnerRemove = array of Arr1InnerRemove;
      Arr3InnerRemove = array of Arr2InnerRemove;
      InnerChange = class abstract external 'java.util.prefs' name 'Change' 
      end;

      InnerNodeCreate = class external 'java.util.prefs' name 'NodeCreate' 
      end;

      InnerPut = class external 'java.util.prefs' name 'Put' 
      end;

      InnerRemove = class external 'java.util.prefs' name 'Remove' 
      end;

  public
    function isUserNode(): jboolean; overload; virtual;
  strict protected
    procedure putSpi(para1: JLString; para2: JLString); overload; virtual;
    function getSpi(para1: JLString): JLString; overload; virtual;
    procedure removeSpi(para1: JLString); overload; virtual;
    function keysSpi(): Arr1JLString; overload; virtual;
    function childrenNamesSpi(): Arr1JLString; overload; virtual;
    function childSpi(para1: JLString): JUPAbstractPreferences; overload; virtual;
  public
    procedure removeNode(); overload; virtual;  // throws java.util.prefs.BackingStoreException
  strict protected
    procedure removeNodeSpi(); overload; virtual;  // throws java.util.prefs.BackingStoreException
  public
    procedure sync(); overload; virtual;  // throws java.util.prefs.BackingStoreException
  strict protected
    procedure syncSpi(); overload; virtual;  // throws java.util.prefs.BackingStoreException
  public
    procedure flush(); overload; virtual;  // throws java.util.prefs.BackingStoreException
  strict protected
    procedure flushSpi(); overload; virtual;  // throws java.util.prefs.BackingStoreException
  end;

  JUJJarEntry = class external 'java.util.jar' name 'JarEntry' (JUZZipEntry)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JUZZipEntry); overload;
    constructor create(para1: JUJJarEntry); overload;
    function getAttributes(): JUJAttributes; overload; virtual;  // throws java.io.IOException
    function getCertificates(): Arr1JSCCertificate; overload; virtual;
    function getCodeSigners(): Arr1JSCodeSigner; overload; virtual;
  end;

  JUJJarFile = class external 'java.util.jar' name 'JarFile' (JUZZipFile)
  public
    type
      InnerJarFileEntry = class;
      Arr1InnerJarFileEntry = array of InnerJarFileEntry;
      Arr2InnerJarFileEntry = array of Arr1InnerJarFileEntry;
      Arr3InnerJarFileEntry = array of Arr2InnerJarFileEntry;
      InnerJarFileEntry = class external 'java.util.jar' name 'JarFileEntry' 
      end;

  public
    const
      MANIFEST_NAME = 'META-INF/MANIFEST.MF';
  public
    constructor create(para1: JLString); overload;  // throws java.io.IOException
    constructor create(para1: JLString; para2: jboolean); overload;  // throws java.io.IOException
    constructor create(para1: JIFile); overload;  // throws java.io.IOException
    constructor create(para1: JIFile; para2: jboolean); overload;  // throws java.io.IOException
    constructor create(para1: JIFile; para2: jboolean; para3: jint); overload;  // throws java.io.IOException
    function getManifest(): JUJManifest; overload; virtual;  // throws java.io.IOException
    function getJarEntry(para1: JLString): JUJJarEntry; overload; virtual;
    function getEntry(para1: JLString): JUZZipEntry; overload; virtual;
    function entries(): JUEnumeration; overload; virtual;
    function getInputStream(para1: JUZZipEntry): JIInputStream; overload; virtual;  // throws java.io.IOException
  end;

  JIPJJPEGImageReadParam = class external 'javax.imageio.plugins.jpeg' name 'JPEGImageReadParam' (JIImageReadParam)
  public
    constructor create(); overload;
    function areTablesSet(): jboolean; overload; virtual;
    procedure setDecodeTables(para1: Arr1JIPJJPEGQTable; para2: Arr1JIPJJPEGHuffmanTable; para3: Arr1JIPJJPEGHuffmanTable); overload; virtual;
    procedure setDecodeTables(var para1: array of JIPJJPEGQTable; var para2: array of JIPJJPEGHuffmanTable; var para3: array of JIPJJPEGHuffmanTable); overload; virtual;
    procedure unsetDecodeTables(); overload; virtual;
    function getQTables(): Arr1JIPJJPEGQTable; overload; virtual;
    function getDCHuffmanTables(): Arr1JIPJJPEGHuffmanTable; overload; virtual;
    function getACHuffmanTables(): Arr1JIPJJPEGHuffmanTable; overload; virtual;
  end;

  JIPBBMPImageWriteParam = class external 'javax.imageio.plugins.bmp' name 'BMPImageWriteParam' (JIImageWriteParam)
  public
    constructor create(para1: JULocale); overload;
    constructor create(); overload;
    procedure setTopDown(para1: jboolean); overload; virtual;
    function isTopDown(): jboolean; overload; virtual;
  end;

  JIPJJPEGImageWriteParam = class external 'javax.imageio.plugins.jpeg' name 'JPEGImageWriteParam' (JIImageWriteParam)
  public
    constructor create(para1: JULocale); overload;
    procedure unsetCompression(); overload; virtual;
    function isCompressionLossless(): jboolean; overload; virtual;
    function getCompressionQualityDescriptions(): Arr1JLString; overload; virtual;
    function getCompressionQualityValues(): Arr1jfloat; overload; virtual;
    function areTablesSet(): jboolean; overload; virtual;
    procedure setEncodeTables(para1: Arr1JIPJJPEGQTable; para2: Arr1JIPJJPEGHuffmanTable; para3: Arr1JIPJJPEGHuffmanTable); overload; virtual;
    procedure setEncodeTables(var para1: array of JIPJJPEGQTable; var para2: array of JIPJJPEGHuffmanTable; var para3: array of JIPJJPEGHuffmanTable); overload; virtual;
    procedure unsetEncodeTables(); overload; virtual;
    function getQTables(): Arr1JIPJJPEGQTable; overload; virtual;
    function getDCHuffmanTables(): Arr1JIPJJPEGHuffmanTable; overload; virtual;
    function getACHuffmanTables(): Arr1JIPJJPEGHuffmanTable; overload; virtual;
    procedure setOptimizeHuffmanTables(para1: jboolean); overload; virtual;
    function getOptimizeHuffmanTables(): jboolean; overload; virtual;
  end;

  JISImageInputStreamSpi = class abstract external 'javax.imageio.spi' name 'ImageInputStreamSpi' (JISIIOServiceProvider)
  strict protected
    var
      finputClass: JLClass; external name 'inputClass';
  strict protected
    constructor create(); overload;
  public
    constructor create(para1: JLString; para2: JLString; para3: JLClass); overload;
    function getInputClass(): JLClass; overload; virtual;
    function canUseCacheFile(): jboolean; overload; virtual;
    function needsCacheFile(): jboolean; overload; virtual;
    function createInputStreamInstance(para1: JLObject; para2: jboolean; para3: JIFile): JISImageInputStream; overload; virtual; abstract;  // throws java.io.IOException
    function createInputStreamInstance(para1: JLObject): JISImageInputStream; overload; virtual;  // throws java.io.IOException
  end;

  JISImageOutputStreamSpi = class abstract external 'javax.imageio.spi' name 'ImageOutputStreamSpi' (JISIIOServiceProvider)
  strict protected
    var
      foutputClass: JLClass; external name 'outputClass';
  strict protected
    constructor create(); overload;
  public
    constructor create(para1: JLString; para2: JLString; para3: JLClass); overload;
    function getOutputClass(): JLClass; overload; virtual;
    function canUseCacheFile(): jboolean; overload; virtual;
    function needsCacheFile(): jboolean; overload; virtual;
    function createOutputStreamInstance(para1: JLObject; para2: jboolean; para3: JIFile): JISImageOutputStream; overload; virtual; abstract;  // throws java.io.IOException
    function createOutputStreamInstance(para1: JLObject): JISImageOutputStream; overload; virtual;  // throws java.io.IOException
  end;

  JISImageReaderWriterSpi = class abstract external 'javax.imageio.spi' name 'ImageReaderWriterSpi' (JISIIOServiceProvider)
  strict protected
    var
      fnames: Arr1JLString; external name 'names';
      fsuffixes: Arr1JLString; external name 'suffixes';
      fMIMETypes: Arr1JLString; external name 'MIMETypes';
      fpluginClassName: JLString; external name 'pluginClassName';
      fsupportsStandardStreamMetadataFormat: jboolean; external name 'supportsStandardStreamMetadataFormat';
      fnativeStreamMetadataFormatName: JLString; external name 'nativeStreamMetadataFormatName';
      fnativeStreamMetadataFormatClassName: JLString; external name 'nativeStreamMetadataFormatClassName';
      fextraStreamMetadataFormatNames: Arr1JLString; external name 'extraStreamMetadataFormatNames';
      fextraStreamMetadataFormatClassNames: Arr1JLString; external name 'extraStreamMetadataFormatClassNames';
      fsupportsStandardImageMetadataFormat: jboolean; external name 'supportsStandardImageMetadataFormat';
      fnativeImageMetadataFormatName: JLString; external name 'nativeImageMetadataFormatName';
      fnativeImageMetadataFormatClassName: JLString; external name 'nativeImageMetadataFormatClassName';
      fextraImageMetadataFormatNames: Arr1JLString; external name 'extraImageMetadataFormatNames';
      fextraImageMetadataFormatClassNames: Arr1JLString; external name 'extraImageMetadataFormatClassNames';
  public
    constructor create(para1: JLString; para2: JLString; para3: Arr1JLString; para4: Arr1JLString; para5: Arr1JLString; para6: JLString; para7: jboolean; para8: JLString; para9: JLString; para10: Arr1JLString; para11: Arr1JLString; para12: jboolean; para13: JLString; para14: JLString; para15: Arr1JLString; para16: Arr1JLString); overload;
    constructor create(para1: JLString; para2: JLString; const para3: array of JLString; const para4: array of JLString; const para5: array of JLString; para6: JLString; para7: jboolean; para8: JLString; para9: JLString; const para10: array of JLString; const para11: array of JLString; para12: jboolean; para13: JLString; para14: JLString; const para15: array of JLString; const para16: array of JLString); overload;
    constructor create(); overload;
    function getFormatNames(): Arr1JLString; overload; virtual;
    function getFileSuffixes(): Arr1JLString; overload; virtual;
    function getMIMETypes(): Arr1JLString; overload; virtual;
    function getPluginClassName(): JLString; overload; virtual;
    function isStandardStreamMetadataFormatSupported(): jboolean; overload; virtual;
    function getNativeStreamMetadataFormatName(): JLString; overload; virtual;
    function getExtraStreamMetadataFormatNames(): Arr1JLString; overload; virtual;
    function isStandardImageMetadataFormatSupported(): jboolean; overload; virtual;
    function getNativeImageMetadataFormatName(): JLString; overload; virtual;
    function getExtraImageMetadataFormatNames(): Arr1JLString; overload; virtual;
    function getStreamMetadataFormat(para1: JLString): JIMIIOMetadataFormat; overload; virtual;
    function getImageMetadataFormat(para1: JLString): JIMIIOMetadataFormat; overload; virtual;
  end;

  JISImageTranscoderSpi = class abstract external 'javax.imageio.spi' name 'ImageTranscoderSpi' (JISIIOServiceProvider)
  strict protected
    constructor create(); overload;
  public
    constructor create(para1: JLString; para2: JLString); overload;
    function getReaderServiceProviderName(): JLString; overload; virtual; abstract;
    function getWriterServiceProviderName(): JLString; overload; virtual; abstract;
    function createTranscoderInstance(): JIImageTranscoder; overload; virtual; abstract;
  end;

  JLMUSimpleAnnotationValueVisitor6 = class external 'javax.lang.model.util' name 'SimpleAnnotationValueVisitor6' (JLMUAbstractAnnotationValueVisitor6)
  strict protected
    final var
      fDEFAULT_VALUE: JLObject; external name 'DEFAULT_VALUE';
  strict protected
    constructor create(); overload;
    constructor create(para1: JLObject); overload;
    function defaultAction(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
  public
    function visitBoolean(para1: jboolean; para2: JLObject): JLObject; overload; virtual;
    function visitByte(para1: jbyte; para2: JLObject): JLObject; overload; virtual;
    function visitChar(para1: jchar; para2: JLObject): JLObject; overload; virtual;
    function visitDouble(para1: jdouble; para2: JLObject): JLObject; overload; virtual;
    function visitFloat(para1: jfloat; para2: JLObject): JLObject; overload; virtual;
    function visitInt(para1: jint; para2: JLObject): JLObject; overload; virtual;
    function visitLong(para1: jlong; para2: JLObject): JLObject; overload; virtual;
    function visitShort(para1: jshort; para2: JLObject): JLObject; overload; virtual;
    function visitString(para1: JLString; para2: JLObject): JLObject; overload; virtual;
    function visitType(para1: JLMTTypeMirror; para2: JLObject): JLObject; overload; virtual;
    function visitEnumConstant(para1: JLMEVariableElement; para2: JLObject): JLObject; overload; virtual;
    function visitAnnotation(para1: JLMEAnnotationMirror; para2: JLObject): JLObject; overload; virtual;
    function visitArray(para1: JUList; para2: JLObject): JLObject; overload; virtual;
  end;

  JLMUElementScanner6 = class external 'javax.lang.model.util' name 'ElementScanner6' (JLMUAbstractElementVisitor6)
  strict protected
    final var
      fDEFAULT_VALUE: JLObject; external name 'DEFAULT_VALUE';
  strict protected
    constructor create(); overload;
    constructor create(para1: JLObject); overload;
  public
    function scan(para1: JLIterable; para2: JLObject): JLObject; overload; virtual; final;
    function scan(para1: JLMEElement; para2: JLObject): JLObject; overload; virtual;
    function scan(para1: JLMEElement): JLObject; overload; virtual; final;
    function visitPackage(para1: JLMEPackageElement; para2: JLObject): JLObject; overload; virtual;
    function visitType(para1: JLMETypeElement; para2: JLObject): JLObject; overload; virtual;
    function visitVariable(para1: JLMEVariableElement; para2: JLObject): JLObject; overload; virtual;
    function visitExecutable(para1: JLMEExecutableElement; para2: JLObject): JLObject; overload; virtual;
    function visitTypeParameter(para1: JLMETypeParameterElement; para2: JLObject): JLObject; overload; virtual;
  end;

  JLMUSimpleElementVisitor6 = class external 'javax.lang.model.util' name 'SimpleElementVisitor6' (JLMUAbstractElementVisitor6)
  strict protected
    final var
      fDEFAULT_VALUE: JLObject; external name 'DEFAULT_VALUE';
  strict protected
    constructor create(); overload;
    constructor create(para1: JLObject); overload;
    function defaultAction(para1: JLMEElement; para2: JLObject): JLObject; overload; virtual;
  public
    function visitPackage(para1: JLMEPackageElement; para2: JLObject): JLObject; overload; virtual;
    function visitType(para1: JLMETypeElement; para2: JLObject): JLObject; overload; virtual;
    function visitVariable(para1: JLMEVariableElement; para2: JLObject): JLObject; overload; virtual;
    function visitExecutable(para1: JLMEExecutableElement; para2: JLObject): JLObject; overload; virtual;
    function visitTypeParameter(para1: JLMETypeParameterElement; para2: JLObject): JLObject; overload; virtual;
  end;

  JLMTArrayType = interface external 'javax.lang.model.type' name 'ArrayType' (JLMTReferenceType)
    function getComponentType(): JLMTTypeMirror; overload;
  end;

  JLMTDeclaredType = interface external 'javax.lang.model.type' name 'DeclaredType' (JLMTReferenceType)
    function asElement(): JLMEElement; overload;
    function getEnclosingType(): JLMTTypeMirror; overload;
    function getTypeArguments(): JUList; overload;
  end;

  JLMTNullType = interface external 'javax.lang.model.type' name 'NullType' (JLMTReferenceType)
  end;

  JLMTTypeVariable = interface external 'javax.lang.model.type' name 'TypeVariable' (JLMTReferenceType)
    function asElement(): JLMEElement; overload;
    function getUpperBound(): JLMTTypeMirror; overload;
    function getLowerBound(): JLMTTypeMirror; overload;
  end;

  JLMUSimpleTypeVisitor6 = class external 'javax.lang.model.util' name 'SimpleTypeVisitor6' (JLMUAbstractTypeVisitor6)
  strict protected
    final var
      fDEFAULT_VALUE: JLObject; external name 'DEFAULT_VALUE';
  strict protected
    constructor create(); overload;
    constructor create(para1: JLObject); overload;
    function defaultAction(para1: JLMTTypeMirror; para2: JLObject): JLObject; overload; virtual;
  public
    function visitPrimitive(para1: JLMTPrimitiveType; para2: JLObject): JLObject; overload; virtual;
    function visitNull(para1: JLMTNullType; para2: JLObject): JLObject; overload; virtual;
    function visitArray(para1: JLMTArrayType; para2: JLObject): JLObject; overload; virtual;
    function visitDeclared(para1: JLMTDeclaredType; para2: JLObject): JLObject; overload; virtual;
    function visitError(para1: JLMTErrorType; para2: JLObject): JLObject; overload; virtual;
    function visitTypeVariable(para1: JLMTTypeVariable; para2: JLObject): JLObject; overload; virtual;
    function visitWildcard(para1: JLMTWildcardType; para2: JLObject): JLObject; overload; virtual;
    function visitExecutable(para1: JLMTExecutableType; para2: JLObject): JLObject; overload; virtual;
    function visitNoType(para1: JLMTNoType; para2: JLObject): JLObject; overload; virtual;
  end;

  JMMBeanAttributeInfo = class external 'javax.management' name 'MBeanAttributeInfo' (JMMBeanFeatureInfo, JLCloneable)
  public
    constructor create(para1: JLString; para2: JLString; para3: JLString; para4: jboolean; para5: jboolean; para6: jboolean); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLString; para4: jboolean; para5: jboolean; para6: jboolean; para7: JMDescriptor); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLRMethod; para4: JLRMethod); overload;  // throws javax.management.IntrospectionException
    function clone(): JLObject; overload; virtual;
    function getType(): JLString; overload; virtual;
    function isReadable(): jboolean; overload; virtual;
    function isWritable(): jboolean; overload; virtual;
    function isIs(): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JMMBeanConstructorInfo = class external 'javax.management' name 'MBeanConstructorInfo' (JMMBeanFeatureInfo, JLCloneable)
  public
    constructor create(para1: JLString; para2: JLRConstructor); overload;
    constructor create(para1: JLString; para2: JLString; para3: Arr1JMMBeanParameterInfo); overload;
    constructor create(para1: JLString; para2: JLString; const para3: array of JMMBeanParameterInfo); overload;
    constructor create(para1: JLString; para2: JLString; para3: Arr1JMMBeanParameterInfo; para4: JMDescriptor); overload;
    constructor create(para1: JLString; para2: JLString; const para3: array of JMMBeanParameterInfo; para4: JMDescriptor); overload;
    function clone(): JLObject; overload; virtual;
    function getSignature(): Arr1JMMBeanParameterInfo; overload; virtual;
    function toString(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JMMBeanNotificationInfo = class external 'javax.management' name 'MBeanNotificationInfo' (JMMBeanFeatureInfo, JLCloneable)
  public
    constructor create(para1: Arr1JLString; para2: JLString; para3: JLString); overload;
    constructor create(const para1: array of JLString; para2: JLString; para3: JLString); overload;
    constructor create(para1: Arr1JLString; para2: JLString; para3: JLString; para4: JMDescriptor); overload;
    constructor create(const para1: array of JLString; para2: JLString; para3: JLString; para4: JMDescriptor); overload;
    function clone(): JLObject; overload; virtual;
    function getNotifTypes(): Arr1JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JMMBeanOperationInfo = class external 'javax.management' name 'MBeanOperationInfo' (JMMBeanFeatureInfo, JLCloneable)
  public
    const
      INFO = 0;
      ACTION = 1;
      ACTION_INFO = 2;
      UNKNOWN = 3;
  public
    constructor create(para1: JLString; para2: JLRMethod); overload;
    constructor create(para1: JLString; para2: JLString; para3: Arr1JMMBeanParameterInfo; para4: JLString; para5: jint); overload;
    constructor create(para1: JLString; para2: JLString; const para3: array of JMMBeanParameterInfo; para4: JLString; para5: jint); overload;
    constructor create(para1: JLString; para2: JLString; para3: Arr1JMMBeanParameterInfo; para4: JLString; para5: jint; para6: JMDescriptor); overload;
    constructor create(para1: JLString; para2: JLString; const para3: array of JMMBeanParameterInfo; para4: JLString; para5: jint; para6: JMDescriptor); overload;
    function clone(): JLObject; overload; virtual;
    function getReturnType(): JLString; overload; virtual;
    function getSignature(): Arr1JMMBeanParameterInfo; overload; virtual;
    function getImpact(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JMMBeanParameterInfo = class external 'javax.management' name 'MBeanParameterInfo' (JMMBeanFeatureInfo, JLCloneable)
  public
    constructor create(para1: JLString; para2: JLString; para3: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLString; para4: JMDescriptor); overload;
    function clone(): JLObject; overload; virtual;
    function getType(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JMMModelMBeanInfoSupport = class external 'javax.management.modelmbean' name 'ModelMBeanInfoSupport' (JMMBeanInfo, JMMModelMBeanInfo)
  public
    constructor create(para1: JMMModelMBeanInfo); overload;
    constructor create(para1: JLString; para2: JLString; para3: Arr1JMMModelMBeanAttributeInfo; para4: Arr1JMMModelMBeanConstructorInfo; para5: Arr1JMMModelMBeanOperationInfo; para6: Arr1JMMModelMBeanNotificationInfo); overload;
    constructor create(para1: JLString; para2: JLString; const para3: array of JMMModelMBeanAttributeInfo; const para4: array of JMMModelMBeanConstructorInfo; const para5: array of JMMModelMBeanOperationInfo; const para6: array of JMMModelMBeanNotificationInfo); overload;
    constructor create(para1: JLString; para2: JLString; para3: Arr1JMMModelMBeanAttributeInfo; para4: Arr1JMMModelMBeanConstructorInfo; para5: Arr1JMMModelMBeanOperationInfo; para6: Arr1JMMModelMBeanNotificationInfo; para7: JMDescriptor); overload;
    constructor create(para1: JLString; para2: JLString; const para3: array of JMMModelMBeanAttributeInfo; const para4: array of JMMModelMBeanConstructorInfo; const para5: array of JMMModelMBeanOperationInfo; const para6: array of JMMModelMBeanNotificationInfo; para7: JMDescriptor); overload;
    function clone(): JLObject; overload; virtual;
    function getDescriptors(para1: JLString): Arr1JMDescriptor; overload; virtual;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
    procedure setDescriptors(para1: Arr1JMDescriptor); overload; virtual;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
    procedure setDescriptors(var para1: array of JMDescriptor); overload; virtual;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
    function getDescriptor(para1: JLString): JMDescriptor; overload; virtual;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
    function getDescriptor(para1: JLString; para2: JLString): JMDescriptor; overload; virtual;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
    procedure setDescriptor(para1: JMDescriptor; para2: JLString); overload; virtual;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
    function getAttribute(para1: JLString): JMMModelMBeanAttributeInfo; overload; virtual;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
    function getOperation(para1: JLString): JMMModelMBeanOperationInfo; overload; virtual;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
    function getConstructor(para1: JLString): JMMModelMBeanConstructorInfo; overload; virtual;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
    function getNotification(para1: JLString): JMMModelMBeanNotificationInfo; overload; virtual;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
    function getDescriptor(): JMDescriptor; overload; virtual;
    function getMBeanDescriptor(): JMDescriptor; overload; virtual;  // throws javax.management.MBeanException
    procedure setMBeanDescriptor(para1: JMDescriptor); overload; virtual;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
  end;

  JMOOpenMBeanInfoSupport = class external 'javax.management.openmbean' name 'OpenMBeanInfoSupport' (JMMBeanInfo, JMOOpenMBeanInfo)
  public
    constructor create(para1: JLString; para2: JLString; para3: Arr1JMOOpenMBeanAttributeInfo; para4: Arr1JMOOpenMBeanConstructorInfo; para5: Arr1JMOOpenMBeanOperationInfo; para6: Arr1JMMBeanNotificationInfo); overload;
    constructor create(para1: JLString; para2: JLString; const para3: array of JMOOpenMBeanAttributeInfo; const para4: array of JMOOpenMBeanConstructorInfo; const para5: array of JMOOpenMBeanOperationInfo; const para6: array of JMMBeanNotificationInfo); overload;
    constructor create(para1: JLString; para2: JLString; para3: Arr1JMOOpenMBeanAttributeInfo; para4: Arr1JMOOpenMBeanConstructorInfo; para5: Arr1JMOOpenMBeanOperationInfo; para6: Arr1JMMBeanNotificationInfo; para7: JMDescriptor); overload;
    constructor create(para1: JLString; para2: JLString; const para3: array of JMOOpenMBeanAttributeInfo; const para4: array of JMOOpenMBeanConstructorInfo; const para5: array of JMOOpenMBeanOperationInfo; const para6: array of JMMBeanNotificationInfo; para7: JMDescriptor); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JMRMBeanServerForwarder = interface external 'javax.management.remote' name 'MBeanServerForwarder' (JMMBeanServer)
    function getMBeanServer(): JMMBeanServer; overload;
    procedure setMBeanServer(para1: JMMBeanServer); overload;
  end;

  JMMBeanServerDelegate = class external 'javax.management' name 'MBeanServerDelegate' (JLObject, JMMBeanServerDelegateMBean, JMNotificationEmitter)
  public
    final class var
      fDELEGATE_NAME: JMObjectName; external name 'DELEGATE_NAME';
  public
    constructor create(); overload;
    function getMBeanServerId(): JLString; overload; virtual;
    function getSpecificationName(): JLString; overload; virtual;
    function getSpecificationVersion(): JLString; overload; virtual;
    function getSpecificationVendor(): JLString; overload; virtual;
    function getImplementationName(): JLString; overload; virtual;
    function getImplementationVersion(): JLString; overload; virtual;
    function getImplementationVendor(): JLString; overload; virtual;
    function getNotificationInfo(): Arr1JMMBeanNotificationInfo; overload; virtual;
    procedure addNotificationListener(para1: JMNotificationListener; para2: JMNotificationFilter; para3: JLObject); overload; virtual;  // throws java.lang.IllegalArgumentException
    procedure removeNotificationListener(para1: JMNotificationListener; para2: JMNotificationFilter; para3: JLObject); overload; virtual;  // throws javax.management.ListenerNotFoundException
    procedure removeNotificationListener(para1: JMNotificationListener); overload; virtual;  // throws javax.management.ListenerNotFoundException
    procedure sendNotification(para1: JMNotification); overload; virtual;
  end;

  JMNotificationBroadcasterSupport = class external 'javax.management' name 'NotificationBroadcasterSupport' (JLObject, JMNotificationEmitter)
  public
    type
      InnerListenerInfo = class;
      Arr1InnerListenerInfo = array of InnerListenerInfo;
      Arr2InnerListenerInfo = array of Arr1InnerListenerInfo;
      Arr3InnerListenerInfo = array of Arr2InnerListenerInfo;
      InnerSendNotifJob = class;
      Arr1InnerSendNotifJob = array of InnerSendNotifJob;
      Arr2InnerSendNotifJob = array of Arr1InnerSendNotifJob;
      Arr3InnerSendNotifJob = array of Arr2InnerSendNotifJob;
      InnerWildcardListenerInfo = class;
      Arr1InnerWildcardListenerInfo = array of InnerWildcardListenerInfo;
      Arr2InnerWildcardListenerInfo = array of Arr1InnerWildcardListenerInfo;
      Arr3InnerWildcardListenerInfo = array of Arr2InnerWildcardListenerInfo;
      InnerListenerInfo = class external 'javax.management' name 'ListenerInfo' 
      end;

      InnerSendNotifJob = class external 'javax.management' name 'SendNotifJob' 
      end;

      InnerWildcardListenerInfo = class external 'javax.management' name 'WildcardListenerInfo' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: JUCExecutor); overload;
    constructor create(para1: Arr1JMMBeanNotificationInfo); overload;
    constructor create(const para1: array of JMMBeanNotificationInfo); overload;
    constructor create(para1: JUCExecutor; para2: Arr1JMMBeanNotificationInfo); overload;
    constructor create(para1: JUCExecutor; const para2: array of JMMBeanNotificationInfo); overload;
    procedure addNotificationListener(para1: JMNotificationListener; para2: JMNotificationFilter; para3: JLObject); overload; virtual;
    procedure removeNotificationListener(para1: JMNotificationListener); overload; virtual;  // throws javax.management.ListenerNotFoundException
    procedure removeNotificationListener(para1: JMNotificationListener; para2: JMNotificationFilter; para3: JLObject); overload; virtual;  // throws javax.management.ListenerNotFoundException
    function getNotificationInfo(): Arr1JMMBeanNotificationInfo; overload; virtual;
    procedure sendNotification(para1: JMNotification); overload; virtual;
  strict protected
    procedure handleNotification(para1: JMNotificationListener; para2: JMNotification; para3: JLObject); overload; virtual;
  end;

  JMStandardEmitterMBean = class external 'javax.management' name 'StandardEmitterMBean' (JMStandardMBean, JMNotificationEmitter)
  public
    constructor create(para1: JLObject; para2: JLClass; para3: JMNotificationEmitter); overload;
    constructor create(para1: JLObject; para2: JLClass; para3: jboolean; para4: JMNotificationEmitter); overload;
  strict protected
    constructor create(para1: JLClass; para2: JMNotificationEmitter); overload;
    constructor create(para1: JLClass; para2: jboolean; para3: JMNotificationEmitter); overload;
  public
    procedure removeNotificationListener(para1: JMNotificationListener); overload; virtual;  // throws javax.management.ListenerNotFoundException
    procedure removeNotificationListener(para1: JMNotificationListener; para2: JMNotificationFilter; para3: JLObject); overload; virtual;  // throws javax.management.ListenerNotFoundException
    procedure addNotificationListener(para1: JMNotificationListener; para2: JMNotificationFilter; para3: JLObject); overload; virtual;
    function getNotificationInfo(): Arr1JMMBeanNotificationInfo; overload; virtual;
    procedure sendNotification(para1: JMNotification); overload; virtual;
  end;

  JMMModelMBean = interface external 'javax.management.modelmbean' name 'ModelMBean' (JMDynamicMBean, JMPersistentMBean, JMMModelMBeanNotificationBroadcaster)
    procedure setModelMBeanInfo(para1: JMMModelMBeanInfo); overload;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
    procedure setManagedResource(para1: JLObject; para2: JLString); overload;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException, javax.management.InstanceNotFoundException, javax.management.modelmbean.InvalidTargetObjectTypeException
  end;

  JMRRelationSupport = class external 'javax.management.relation' name 'RelationSupport' (JLObject, JMRRelationSupportMBean, JMMBeanRegistration)
  public
    constructor create(para1: JLString; para2: JMObjectName; para3: JLString; para4: JMRRoleList); overload;  // throws javax.management.relation.InvalidRoleValueException, java.lang.IllegalArgumentException
    constructor create(para1: JLString; para2: JMObjectName; para3: JMMBeanServer; para4: JLString; para5: JMRRoleList); overload;  // throws javax.management.relation.InvalidRoleValueException, java.lang.IllegalArgumentException
    function getRole(para1: JLString): JUList; overload; virtual;  // throws java.lang.IllegalArgumentException, javax.management.relation.RoleNotFoundException, javax.management.relation.RelationServiceNotRegisteredException
    function getRoles(para1: Arr1JLString): JMRRoleResult; overload; virtual;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationServiceNotRegisteredException
    function getRoles(var para1: array of JLString): JMRRoleResult; overload; virtual;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationServiceNotRegisteredException
    function getAllRoles(): JMRRoleResult; overload; virtual;  // throws javax.management.relation.RelationServiceNotRegisteredException
    function retrieveAllRoles(): JMRRoleList; overload; virtual;
    function getRoleCardinality(para1: JLString): JLInteger; overload; virtual;  // throws java.lang.IllegalArgumentException, javax.management.relation.RoleNotFoundException
    procedure setRole(para1: JMRRole); overload; virtual;  // throws java.lang.IllegalArgumentException, javax.management.relation.RoleNotFoundException, javax.management.relation.RelationTypeNotFoundException, javax.management.relation.InvalidRoleValueException, javax.management.relation.RelationServiceNotRegisteredException, javax.management.relation.RelationNotFoundException
    function setRoles(para1: JMRRoleList): JMRRoleResult; overload; virtual;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationServiceNotRegisteredException, javax.management.relation.RelationTypeNotFoundException, javax.management.relation.RelationNotFoundException
    procedure handleMBeanUnregistration(para1: JMObjectName; para2: JLString); overload; virtual;  // throws java.lang.IllegalArgumentException, javax.management.relation.RoleNotFoundException, javax.management.relation.InvalidRoleValueException, javax.management.relation.RelationServiceNotRegisteredException, javax.management.relation.RelationTypeNotFoundException, javax.management.relation.RelationNotFoundException
    function getReferencedMBeans(): JUMap; overload; virtual;
    function getRelationTypeName(): JLString; overload; virtual;
    function getRelationServiceName(): JMObjectName; overload; virtual;
    function getRelationId(): JLString; overload; virtual;
    function preRegister(para1: JMMBeanServer; para2: JMObjectName): JMObjectName; overload; virtual;  // throws java.lang.Exception
    procedure postRegister(para1: JLBoolean); overload; virtual;
    procedure preDeregister(); overload; virtual;  // throws java.lang.Exception
    procedure postDeregister(); overload; virtual;
    function isInRelationService(): JLBoolean; overload; virtual;
    procedure setRelationServiceManagementFlag(para1: JLBoolean); overload; virtual;  // throws java.lang.IllegalArgumentException
  end;

  JNDInitialDirContext = class external 'javax.naming.directory' name 'InitialDirContext' (JNInitialContext, JNDDirContext)
  strict protected
    constructor create(para1: jboolean); overload;  // throws javax.naming.NamingException
  public
    constructor create(); overload;  // throws javax.naming.NamingException
    constructor create(para1: JUHashtable); overload;  // throws javax.naming.NamingException
    function getAttributes(para1: JLString): JNDAttributes; overload; virtual;  // throws javax.naming.NamingException
    function getAttributes(para1: JLString; para2: Arr1JLString): JNDAttributes; overload; virtual;  // throws javax.naming.NamingException
    function getAttributes(para1: JLString; var para2: array of JLString): JNDAttributes; overload; virtual;  // throws javax.naming.NamingException
    function getAttributes(para1: JNName): JNDAttributes; overload; virtual;  // throws javax.naming.NamingException
    function getAttributes(para1: JNName; para2: Arr1JLString): JNDAttributes; overload; virtual;  // throws javax.naming.NamingException
    function getAttributes(para1: JNName; var para2: array of JLString): JNDAttributes; overload; virtual;  // throws javax.naming.NamingException
    procedure modifyAttributes(para1: JLString; para2: jint; para3: JNDAttributes); overload; virtual;  // throws javax.naming.NamingException
    procedure modifyAttributes(para1: JNName; para2: jint; para3: JNDAttributes); overload; virtual;  // throws javax.naming.NamingException
    procedure modifyAttributes(para1: JLString; para2: Arr1JNDModificationItem); overload; virtual;  // throws javax.naming.NamingException
    procedure modifyAttributes(para1: JLString; var para2: array of JNDModificationItem); overload; virtual;  // throws javax.naming.NamingException
    procedure modifyAttributes(para1: JNName; para2: Arr1JNDModificationItem); overload; virtual;  // throws javax.naming.NamingException
    procedure modifyAttributes(para1: JNName; var para2: array of JNDModificationItem); overload; virtual;  // throws javax.naming.NamingException
    procedure bind(para1: JLString; para2: JLObject; para3: JNDAttributes); overload; virtual;  // throws javax.naming.NamingException
    procedure bind(para1: JNName; para2: JLObject; para3: JNDAttributes); overload; virtual;  // throws javax.naming.NamingException
    procedure rebind(para1: JLString; para2: JLObject; para3: JNDAttributes); overload; virtual;  // throws javax.naming.NamingException
    procedure rebind(para1: JNName; para2: JLObject; para3: JNDAttributes); overload; virtual;  // throws javax.naming.NamingException
    function createSubcontext(para1: JLString; para2: JNDAttributes): JNDDirContext; overload; virtual;  // throws javax.naming.NamingException
    function createSubcontext(para1: JNName; para2: JNDAttributes): JNDDirContext; overload; virtual;  // throws javax.naming.NamingException
    function getSchema(para1: JLString): JNDDirContext; overload; virtual;  // throws javax.naming.NamingException
    function getSchema(para1: JNName): JNDDirContext; overload; virtual;  // throws javax.naming.NamingException
    function getSchemaClassDefinition(para1: JLString): JNDDirContext; overload; virtual;  // throws javax.naming.NamingException
    function getSchemaClassDefinition(para1: JNName): JNDDirContext; overload; virtual;  // throws javax.naming.NamingException
    function search(para1: JLString; para2: JNDAttributes): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
    function search(para1: JNName; para2: JNDAttributes): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
    function search(para1: JLString; para2: JNDAttributes; para3: Arr1JLString): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
    function search(para1: JLString; para2: JNDAttributes; var para3: array of JLString): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
    function search(para1: JNName; para2: JNDAttributes; para3: Arr1JLString): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
    function search(para1: JNName; para2: JNDAttributes; var para3: array of JLString): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
    function search(para1: JLString; para2: JLString; para3: JNDSearchControls): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
    function search(para1: JNName; para2: JLString; para3: JNDSearchControls): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
    function search(para1: JLString; para2: JLString; para3: Arr1JLObject; para4: JNDSearchControls): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
    function search(para1: JLString; para2: JLString; var para3: array of JLObject; para4: JNDSearchControls): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
    function search(para1: JNName; para2: JLString; para3: Arr1JLObject; para4: JNDSearchControls): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
    function search(para1: JNName; para2: JLString; var para3: array of JLObject; para4: JNDSearchControls): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
  end;

  JNLLdapContext = interface external 'javax.naming.ldap' name 'LdapContext' (JNDDirContext)
    const
      CONTROL_FACTORIES = 'java.naming.factory.control';
    function extendedOperation(para1: JNLExtendedRequest): JNLExtendedResponse; overload;  // throws javax.naming.NamingException
    function newInstance(para1: Arr1JNLControl): JNLLdapContext; overload;  // throws javax.naming.NamingException
    function newInstance(var para1: array of JNLControl): JNLLdapContext; overload;  // throws javax.naming.NamingException
    procedure reconnect(para1: Arr1JNLControl); overload;  // throws javax.naming.NamingException
    procedure reconnect(var para1: array of JNLControl); overload;  // throws javax.naming.NamingException
    function getConnectControls(): Arr1JNLControl; overload;  // throws javax.naming.NamingException
    procedure setRequestControls(para1: Arr1JNLControl); overload;  // throws javax.naming.NamingException
    procedure setRequestControls(var para1: array of JNLControl); overload;  // throws javax.naming.NamingException
    function getRequestControls(): Arr1JNLControl; overload;  // throws javax.naming.NamingException
    function getResponseControls(): Arr1JNLControl; overload;  // throws javax.naming.NamingException
  end;

  JNEEventDirContext = interface external 'javax.naming.event' name 'EventDirContext' (JNEEventContext, JNDDirContext)
    procedure addNamingListener(para1: JNName; para2: JLString; para3: JNDSearchControls; para4: JNENamingListener); overload;  // throws javax.naming.NamingException
    procedure addNamingListener(para1: JLString; para2: JLString; para3: JNDSearchControls; para4: JNENamingListener); overload;  // throws javax.naming.NamingException
    procedure addNamingListener(para1: JNName; para2: JLString; para3: Arr1JLObject; para4: JNDSearchControls; para5: JNENamingListener); overload;  // throws javax.naming.NamingException
    procedure addNamingListener(para1: JNName; para2: JLString; var para3: array of JLObject; para4: JNDSearchControls; para5: JNENamingListener); overload;  // throws javax.naming.NamingException
    procedure addNamingListener(para1: JLString; para2: JLString; para3: Arr1JLObject; para4: JNDSearchControls; para5: JNENamingListener); overload;  // throws javax.naming.NamingException
    procedure addNamingListener(para1: JLString; para2: JLString; var para3: array of JLObject; para4: JNDSearchControls; para5: JNENamingListener); overload;  // throws javax.naming.NamingException
  end;

  JNSContinuationDirContext = class external 'javax.naming.spi' name 'ContinuationDirContext' (JNSContinuationContext, JNDDirContext)
  strict protected
    function getTargetContext(para1: JNName): JNSDirContextNamePair; overload; virtual;  // throws javax.naming.NamingException
    function getTargetContext(para1: JLString): JNSDirContextStringPair; overload; virtual;  // throws javax.naming.NamingException
  public
    function getAttributes(para1: JLString): JNDAttributes; overload; virtual;  // throws javax.naming.NamingException
    function getAttributes(para1: JLString; para2: Arr1JLString): JNDAttributes; overload; virtual;  // throws javax.naming.NamingException
    function getAttributes(para1: JLString; var para2: array of JLString): JNDAttributes; overload; virtual;  // throws javax.naming.NamingException
    function getAttributes(para1: JNName): JNDAttributes; overload; virtual;  // throws javax.naming.NamingException
    function getAttributes(para1: JNName; para2: Arr1JLString): JNDAttributes; overload; virtual;  // throws javax.naming.NamingException
    function getAttributes(para1: JNName; var para2: array of JLString): JNDAttributes; overload; virtual;  // throws javax.naming.NamingException
    procedure modifyAttributes(para1: JNName; para2: jint; para3: JNDAttributes); overload; virtual;  // throws javax.naming.NamingException
    procedure modifyAttributes(para1: JLString; para2: jint; para3: JNDAttributes); overload; virtual;  // throws javax.naming.NamingException
    procedure modifyAttributes(para1: JNName; para2: Arr1JNDModificationItem); overload; virtual;  // throws javax.naming.NamingException
    procedure modifyAttributes(para1: JNName; var para2: array of JNDModificationItem); overload; virtual;  // throws javax.naming.NamingException
    procedure modifyAttributes(para1: JLString; para2: Arr1JNDModificationItem); overload; virtual;  // throws javax.naming.NamingException
    procedure modifyAttributes(para1: JLString; var para2: array of JNDModificationItem); overload; virtual;  // throws javax.naming.NamingException
    procedure bind(para1: JNName; para2: JLObject; para3: JNDAttributes); overload; virtual;  // throws javax.naming.NamingException
    procedure bind(para1: JLString; para2: JLObject; para3: JNDAttributes); overload; virtual;  // throws javax.naming.NamingException
    procedure rebind(para1: JNName; para2: JLObject; para3: JNDAttributes); overload; virtual;  // throws javax.naming.NamingException
    procedure rebind(para1: JLString; para2: JLObject; para3: JNDAttributes); overload; virtual;  // throws javax.naming.NamingException
    function createSubcontext(para1: JNName; para2: JNDAttributes): JNDDirContext; overload; virtual;  // throws javax.naming.NamingException
    function createSubcontext(para1: JLString; para2: JNDAttributes): JNDDirContext; overload; virtual;  // throws javax.naming.NamingException
    function search(para1: JNName; para2: JNDAttributes; para3: Arr1JLString): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
    function search(para1: JNName; para2: JNDAttributes; var para3: array of JLString): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
    function search(para1: JLString; para2: JNDAttributes; para3: Arr1JLString): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
    function search(para1: JLString; para2: JNDAttributes; var para3: array of JLString): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
    function search(para1: JNName; para2: JNDAttributes): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
    function search(para1: JLString; para2: JNDAttributes): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
    function search(para1: JNName; para2: JLString; para3: JNDSearchControls): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
    function search(para1: JLString; para2: JLString; para3: JNDSearchControls): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
    function search(para1: JNName; para2: JLString; para3: Arr1JLObject; para4: JNDSearchControls): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
    function search(para1: JNName; para2: JLString; var para3: array of JLObject; para4: JNDSearchControls): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
    function search(para1: JLString; para2: JLString; para3: Arr1JLObject; para4: JNDSearchControls): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
    function search(para1: JLString; para2: JLString; var para3: array of JLObject; para4: JNDSearchControls): JNNamingEnumeration; overload; virtual;  // throws javax.naming.NamingException
    function getSchema(para1: JLString): JNDDirContext; overload; virtual;  // throws javax.naming.NamingException
    function getSchema(para1: JNName): JNDDirContext; overload; virtual;  // throws javax.naming.NamingException
    function getSchemaClassDefinition(para1: JLString): JNDDirContext; overload; virtual;  // throws javax.naming.NamingException
    function getSchemaClassDefinition(para1: JNName): JNDDirContext; overload; virtual;  // throws javax.naming.NamingException
  end;

  JNSDirectoryManager = class external 'javax.naming.spi' name 'DirectoryManager' (JNSNamingManager)
  public
    class function getContinuationDirContext(para1: JNCannotProceedException): JNDDirContext; static; overload;  // throws javax.naming.NamingException
    class function getObjectInstance(para1: JLObject; para2: JNName; para3: JNContext; para4: JUHashtable; para5: JNDAttributes): JLObject; static; overload;  // throws java.lang.Exception
    class function getStateToBind(para1: JLObject; para2: JNName; para3: JNContext; para4: JUHashtable; para5: JNDAttributes): JNSDirStateFactory.InnerResult; static; overload;  // throws javax.naming.NamingException
  end;

  JNSDefaultSSLServerSocketFactory = class external 'javax.net.ssl' name 'DefaultSSLServerSocketFactory' (JNSSSLServerSocketFactory)
  public
    function createServerSocket(para1: jint): JNServerSocket; overload; virtual;  // throws java.io.IOException
    function createServerSocket(para1: jint; para2: jint): JNServerSocket; overload; virtual;  // throws java.io.IOException
    function createServerSocket(para1: jint; para2: jint; para3: JNInetAddress): JNServerSocket; overload; virtual;  // throws java.io.IOException
    function getDefaultCipherSuites(): Arr1JLString; overload; virtual;
    function getSupportedCipherSuites(): Arr1JLString; overload; virtual;
  end;

  JNSDefaultSSLSocketFactory = class external 'javax.net.ssl' name 'DefaultSSLSocketFactory' (JNSSSLSocketFactory)
  public
    function createSocket(): JNSocket; overload; virtual;  // throws java.io.IOException
    function createSocket(para1: JLString; para2: jint): JNSocket; overload; virtual;  // throws java.io.IOException
    function createSocket(para1: JNSocket; para2: JLString; para3: jint; para4: jboolean): JNSocket; overload; virtual;  // throws java.io.IOException
    function createSocket(para1: JNInetAddress; para2: jint): JNSocket; overload; virtual;  // throws java.io.IOException
    function createSocket(para1: JLString; para2: jint; para3: JNInetAddress; para4: jint): JNSocket; overload; virtual;  // throws java.io.IOException
    function createSocket(para1: JNInetAddress; para2: jint; para3: JNInetAddress; para4: jint): JNSocket; overload; virtual;  // throws java.io.IOException
    function getDefaultCipherSuites(): Arr1JLString; overload; virtual;
    function getSupportedCipherSuites(): Arr1JLString; overload; virtual;
  end;

  JNSX509ExtendedKeyManager = class abstract external 'javax.net.ssl' name 'X509ExtendedKeyManager' (JLObject, JNSX509KeyManager)
  strict protected
    constructor create(); overload;
  public
    function chooseEngineClientAlias(para1: Arr1JLString; para2: Arr1JSPrincipal; para3: JNSSSLEngine): JLString; overload; virtual;
    function chooseEngineClientAlias(var para1: array of JLString; var para2: array of JSPrincipal; para3: JNSSSLEngine): JLString; overload; virtual;
    function chooseEngineServerAlias(para1: JLString; para2: Arr1JSPrincipal; para3: JNSSSLEngine): JLString; overload; virtual;
    function chooseEngineServerAlias(para1: JLString; var para2: array of JSPrincipal; para3: JNSSSLEngine): JLString; overload; virtual;
  end;

  JPAHashDocAttributeSet = class external 'javax.print.attribute' name 'HashDocAttributeSet' (JPAHashAttributeSet, JPADocAttributeSet, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: JPADocAttribute); overload;
    constructor create(para1: Arr1JPADocAttribute); overload;
    constructor create(const para1: array of JPADocAttribute); overload;
    constructor create(para1: JPADocAttributeSet); overload;
  end;

  JPAHashPrintJobAttributeSet = class external 'javax.print.attribute' name 'HashPrintJobAttributeSet' (JPAHashAttributeSet, JPAPrintJobAttributeSet, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: JPAPrintJobAttribute); overload;
    constructor create(para1: Arr1JPAPrintJobAttribute); overload;
    constructor create(const para1: array of JPAPrintJobAttribute); overload;
    constructor create(para1: JPAPrintJobAttributeSet); overload;
  end;

  JPAHashPrintRequestAttributeSet = class external 'javax.print.attribute' name 'HashPrintRequestAttributeSet' (JPAHashAttributeSet, JPAPrintRequestAttributeSet, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: JPAPrintRequestAttribute); overload;
    constructor create(para1: Arr1JPAPrintRequestAttribute); overload;
    constructor create(const para1: array of JPAPrintRequestAttribute); overload;
    constructor create(para1: JPAPrintRequestAttributeSet); overload;
  end;

  JPAHashPrintServiceAttributeSet = class external 'javax.print.attribute' name 'HashPrintServiceAttributeSet' (JPAHashAttributeSet, JPAPrintServiceAttributeSet, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: JPAPrintServiceAttribute); overload;
    constructor create(para1: Arr1JPAPrintServiceAttribute); overload;
    constructor create(const para1: array of JPAPrintServiceAttribute); overload;
    constructor create(para1: JPAPrintServiceAttributeSet); overload;
  end;

  JSKeyStoreSpi = class abstract external 'java.security' name 'KeyStoreSpi' (JLObject)
  public
    constructor create(); overload;
    function engineGetKey(para1: JLString; para2: Arr1jchar): JSKey; overload; virtual; abstract;  // throws java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException
    function engineGetKey(para1: JLString; var para2: array of jchar): JSKey; overload; virtual; abstract;  // throws java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException
    function engineGetCertificateChain(para1: JLString): Arr1JSCCertificate; overload; virtual; abstract;
    function engineGetCertificate(para1: JLString): JSCCertificate; overload; virtual; abstract;
    function engineGetCreationDate(para1: JLString): JUDate; overload; virtual; abstract;
    procedure engineSetKeyEntry(para1: JLString; para2: JSKey; para3: Arr1jchar; para4: Arr1JSCCertificate); overload; virtual; abstract;  // throws java.security.KeyStoreException
    procedure engineSetKeyEntry(para1: JLString; para2: JSKey; var para3: array of jchar; var para4: array of JSCCertificate); overload; virtual; abstract;  // throws java.security.KeyStoreException
    procedure engineSetKeyEntry(para1: JLString; para2: Arr1jbyte; para3: Arr1JSCCertificate); overload; virtual; abstract;  // throws java.security.KeyStoreException
    procedure engineSetKeyEntry(para1: JLString; var para2: array of jbyte; var para3: array of JSCCertificate); overload; virtual; abstract;  // throws java.security.KeyStoreException
    procedure engineSetCertificateEntry(para1: JLString; para2: JSCCertificate); overload; virtual; abstract;  // throws java.security.KeyStoreException
    procedure engineDeleteEntry(para1: JLString); overload; virtual; abstract;  // throws java.security.KeyStoreException
    function engineAliases(): JUEnumeration; overload; virtual; abstract;
    function engineContainsAlias(para1: JLString): jboolean; overload; virtual; abstract;
    function engineSize(): jint; overload; virtual; abstract;
    function engineIsKeyEntry(para1: JLString): jboolean; overload; virtual; abstract;
    function engineIsCertificateEntry(para1: JLString): jboolean; overload; virtual; abstract;
    function engineGetCertificateAlias(para1: JSCCertificate): JLString; overload; virtual; abstract;
    procedure engineStore(para1: JIOutputStream; para2: Arr1jchar); overload; virtual; abstract;  // throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
    procedure engineStore(para1: JIOutputStream; var para2: array of jchar); overload; virtual; abstract;  // throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
    procedure engineStore(para1: JSKeyStore.InnerLoadStoreParameter); overload; virtual;  // throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
    procedure engineLoad(para1: JIInputStream; para2: Arr1jchar); overload; virtual; abstract;  // throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
    procedure engineLoad(para1: JIInputStream; var para2: array of jchar); overload; virtual; abstract;  // throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
    procedure engineLoad(para1: JSKeyStore.InnerLoadStoreParameter); overload; virtual;  // throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
    function engineGetEntry(para1: JLString; para2: JSKeyStore.InnerProtectionParameter): JSKeyStore.InnerEntry; overload; virtual;  // throws java.security.KeyStoreException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableEntryException
    procedure engineSetEntry(para1: JLString; para2: JSKeyStore.InnerEntry; para3: JSKeyStore.InnerProtectionParameter); overload; virtual;  // throws java.security.KeyStoreException
    function engineEntryInstanceOf(para1: JLString; para2: JLClass): jboolean; overload; virtual;
  end;

  JNSKeyStoreBuilderParameters = class external 'javax.net.ssl' name 'KeyStoreBuilderParameters' (JLObject, JNSManagerFactoryParameters)
  public
    constructor create(para1: JSKeyStore.InnerBuilder); overload;
    constructor create(para1: JUList); overload;
    function getParameters(): JUList; overload; virtual;
  end;

  JSSRealmChoiceCallback = class external 'javax.security.sasl' name 'RealmChoiceCallback' (JSACChoiceCallback)
  public
    constructor create(para1: JLString; para2: Arr1JLString; para3: jint; para4: jboolean); overload;
    constructor create(para1: JLString; const para2: array of JLString; para3: jint; para4: jboolean); overload;
  end;

  JSSRealmCallback = class external 'javax.security.sasl' name 'RealmCallback' (JSACTextInputCallback)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
  end;

  JSSDataLine = interface external 'javax.sound.sampled' name 'DataLine' (JSSLine)
    type
      InnerInfo = class;
      Arr1InnerInfo = array of InnerInfo;
      Arr2InnerInfo = array of Arr1InnerInfo;
      Arr3InnerInfo = array of Arr2InnerInfo;
      InnerInfo = class external 'javax.sound.sampled' name 'Info' (JSSLine.InnerInfo)
      public
        constructor create(para1: JLClass; para2: Arr1JSSAudioFormat; para3: jint; para4: jint); overload;
        constructor create(para1: JLClass; const para2: array of JSSAudioFormat; para3: jint; para4: jint); overload;
        constructor create(para1: JLClass; para2: JSSAudioFormat; para3: jint); overload;
        constructor create(para1: JLClass; para2: JSSAudioFormat); overload;
        function getFormats(): Arr1JSSAudioFormat; overload; virtual;
        function isFormatSupported(para1: JSSAudioFormat): jboolean; overload; virtual;
        function getMinBufferSize(): jint; overload; virtual;
        function getMaxBufferSize(): jint; overload; virtual;
        function matches(para1: JSSLine.InnerInfo): jboolean; overload; virtual;
        function toString(): JLString; overload; virtual;
      end;

    procedure drain(); overload;
    procedure flush(); overload;
    procedure start(); overload;
    procedure stop(); overload;
    function isRunning(): jboolean; overload;
    function isActive(): jboolean; overload;
    function getFormat(): JSSAudioFormat; overload;
    function getBufferSize(): jint; overload;
    function available(): jint; overload;
    function getFramePosition(): jint; overload;
    function getLongFramePosition(): jlong; overload;
    function getMicrosecondPosition(): jlong; overload;
    function getLevel(): jfloat; overload;
  end;

  JSSMixer = interface external 'javax.sound.sampled' name 'Mixer' (JSSLine)
    type
      InnerInfo = class;
      Arr1InnerInfo = array of InnerInfo;
      Arr2InnerInfo = array of Arr1InnerInfo;
      Arr3InnerInfo = array of Arr2InnerInfo;
      InnerInfo = class external 'javax.sound.sampled' name 'Info' (JLObject)
      strict protected
        constructor create(para1: JLString; para2: JLString; para3: JLString; para4: JLString); overload;
      public
        function equals(para1: JLObject): jboolean; overload; virtual; final;
        function hashCode(): jint; overload; virtual; final;
        function getName(): JLString; overload; virtual; final;
        function getVendor(): JLString; overload; virtual; final;
        function getDescription(): JLString; overload; virtual; final;
        function getVersion(): JLString; overload; virtual; final;
        function toString(): JLString; overload; virtual; final;
      end;

    function getMixerInfo(): JSSMixer.InnerInfo; overload;
    function getSourceLineInfo(): JSSLine.Arr1InnerInfo; overload;
    function getTargetLineInfo(): JSSLine.Arr1InnerInfo; overload;
    function getSourceLineInfo(para1: JSSLine.InnerInfo): JSSLine.Arr1InnerInfo; overload;
    function getTargetLineInfo(para1: JSSLine.InnerInfo): JSSLine.Arr1InnerInfo; overload;
    function isLineSupported(para1: JSSLine.InnerInfo): jboolean; overload;
    function getLine(para1: JSSLine.InnerInfo): JSSLine; overload;  // throws javax.sound.sampled.LineUnavailableException
    function getMaxLines(para1: JSSLine.InnerInfo): jint; overload;
    function getSourceLines(): Arr1JSSLine; overload;
    function getTargetLines(): Arr1JSSLine; overload;
    procedure synchronize(para1: Arr1JSSLine; para2: jboolean); overload;
    procedure synchronize(var para1: array of JSSLine; para2: jboolean); overload;
    procedure unsynchronize(para1: Arr1JSSLine); overload;
    procedure unsynchronize(var para1: array of JSSLine); overload;
    function isSynchronizationSupported(para1: Arr1JSSLine; para2: jboolean): jboolean; overload;
    function isSynchronizationSupported(var para1: array of JSSLine; para2: jboolean): jboolean; overload;
  end;

  JSSPort = interface external 'javax.sound.sampled' name 'Port' (JSSLine)
    type
      InnerInfo = class;
      Arr1InnerInfo = array of InnerInfo;
      Arr2InnerInfo = array of Arr1InnerInfo;
      Arr3InnerInfo = array of Arr2InnerInfo;
      InnerInfo = class external 'javax.sound.sampled' name 'Info' (JSSLine.InnerInfo)
      public
        final class var
          fMICROPHONE: JSSPort.InnerInfo; external name 'MICROPHONE';
          fLINE_IN: JSSPort.InnerInfo; external name 'LINE_IN';
          fCOMPACT_DISC: JSSPort.InnerInfo; external name 'COMPACT_DISC';
          fSPEAKER: JSSPort.InnerInfo; external name 'SPEAKER';
          fHEADPHONE: JSSPort.InnerInfo; external name 'HEADPHONE';
          fLINE_OUT: JSSPort.InnerInfo; external name 'LINE_OUT';
      public
        constructor create(para1: JLClass; para2: JLString; para3: jboolean); overload;
        function getName(): JLString; overload; virtual;
        function isSource(): jboolean; overload; virtual;
        function matches(para1: JSSLine.InnerInfo): jboolean; overload; virtual;
        function equals(para1: JLObject): jboolean; overload; virtual; final;
        function hashCode(): jint; overload; virtual; final;
        function toString(): JLString; overload; virtual; final;
      end;

  end;

  JSDefaultCellEditor = class external 'javax.swing' name 'DefaultCellEditor' (JSAbstractCellEditor, JSTTableCellEditor, JSTTreeCellEditor)
  public
    type
      InnerEditorDelegate = class;
      Arr1InnerEditorDelegate = array of InnerEditorDelegate;
      Arr2InnerEditorDelegate = array of Arr1InnerEditorDelegate;
      Arr3InnerEditorDelegate = array of Arr2InnerEditorDelegate;
      InnerEditorDelegate = class external 'javax.swing' name 'EditorDelegate' 
      end;

  strict protected
    var
      feditorComponent: JSJComponent; external name 'editorComponent';
      fdelegate: JSDefaultCellEditor.InnerEditorDelegate; external name 'delegate';
      fclickCountToStart: jint; external name 'clickCountToStart';
  public
    constructor create(para1: JSJTextField); overload;
    constructor create(para1: JSJCheckBox); overload;
    constructor create(para1: JSJComboBox); overload;
    function getComponent(): JAComponent; overload; virtual;
    procedure setClickCountToStart(para1: jint); overload; virtual;
    function getClickCountToStart(): jint; overload; virtual;
    function getCellEditorValue(): JLObject; overload; virtual;
    function isCellEditable(para1: JUEventObject): jboolean; overload; virtual;
    function shouldSelectCell(para1: JUEventObject): jboolean; overload; virtual;
    function stopCellEditing(): jboolean; overload; virtual;
    procedure cancelCellEditing(); overload; virtual;
    function getTreeCellEditorComponent(para1: JSJTree; para2: JLObject; para3: jboolean; para4: jboolean; para5: jboolean; para6: jint): JAComponent; overload; virtual;
    function getTableCellEditorComponent(para1: JSJTable; para2: JLObject; para3: jboolean; para4: jint; para5: jint): JAComponent; overload; virtual;
  end;

  JSTDefaultTreeCellEditor = class external 'javax.swing.tree' name 'DefaultTreeCellEditor' (JLObject, JAEActionListener, JSTTreeCellEditor, JSETreeSelectionListener)
  public
    type
      InnerDefaultTextField = class;
      Arr1InnerDefaultTextField = array of InnerDefaultTextField;
      Arr2InnerDefaultTextField = array of Arr1InnerDefaultTextField;
      Arr3InnerDefaultTextField = array of Arr2InnerDefaultTextField;
      InnerEditorContainer = class;
      Arr1InnerEditorContainer = array of InnerEditorContainer;
      Arr2InnerEditorContainer = array of Arr1InnerEditorContainer;
      Arr3InnerEditorContainer = array of Arr2InnerEditorContainer;
      InnerDefaultTextField = class external 'javax.swing.tree' name 'DefaultTextField' 
      end;

      InnerEditorContainer = class external 'javax.swing.tree' name 'EditorContainer' 
      end;

  strict protected
    var
      frealEditor: JSTTreeCellEditor; external name 'realEditor';
      frenderer: JSTDefaultTreeCellRenderer; external name 'renderer';
      feditingContainer: JAContainer; external name 'editingContainer';
      feditingComponent: JAComponent; external name 'editingComponent';
      fcanEdit: jboolean; external name 'canEdit';
      foffset: jint; external name 'offset';
      ftree: JSJTree; external name 'tree';
      flastPath: JSTTreePath; external name 'lastPath';
      ftimer: JSTimer; external name 'timer';
      flastRow: jint; external name 'lastRow';
      fborderSelectionColor: JAColor; external name 'borderSelectionColor';
      feditingIcon: JSIcon; external name 'editingIcon';
      ffont: JAFont; external name 'font';
  public
    constructor create(para1: JSJTree; para2: JSTDefaultTreeCellRenderer); overload;
    constructor create(para1: JSJTree; para2: JSTDefaultTreeCellRenderer; para3: JSTTreeCellEditor); overload;
    procedure setBorderSelectionColor(para1: JAColor); overload; virtual;
    function getBorderSelectionColor(): JAColor; overload; virtual;
    procedure setFont(para1: JAFont); overload; virtual;
    function getFont(): JAFont; overload; virtual;
    function getTreeCellEditorComponent(para1: JSJTree; para2: JLObject; para3: jboolean; para4: jboolean; para5: jboolean; para6: jint): JAComponent; overload; virtual;
    function getCellEditorValue(): JLObject; overload; virtual;
    function isCellEditable(para1: JUEventObject): jboolean; overload; virtual;
    function shouldSelectCell(para1: JUEventObject): jboolean; overload; virtual;
    function stopCellEditing(): jboolean; overload; virtual;
    procedure cancelCellEditing(); overload; virtual;
    procedure addCellEditorListener(para1: JSECellEditorListener); overload; virtual;
    procedure removeCellEditorListener(para1: JSECellEditorListener); overload; virtual;
    function getCellEditorListeners(): Arr1JSECellEditorListener; overload; virtual;
    procedure valueChanged(para1: JSETreeSelectionEvent); overload; virtual;
    procedure actionPerformed(para1: JAEActionEvent); overload; virtual;
  strict protected
    procedure setTree(para1: JSJTree); overload; virtual;
    function shouldStartEditingTimer(para1: JUEventObject): jboolean; overload; virtual;
    procedure startEditingTimer(); overload; virtual;
    function canEditImmediately(para1: JUEventObject): jboolean; overload; virtual;
    function inHitRegion(para1: jint; para2: jint): jboolean; overload; virtual;
    procedure determineOffset(para1: JSJTree; para2: JLObject; para3: jboolean; para4: jboolean; para5: jboolean; para6: jint); overload; virtual;
    procedure prepareForEditing(); overload; virtual;
    function createContainer(): JAContainer; overload; virtual;
    function createTreeCellEditor(): JSTTreeCellEditor; overload; virtual;
  end;

  JSDefaultListModel = class external 'javax.swing' name 'DefaultListModel' (JSAbstractListModel)
  public
    constructor create(); overload;
    function getSize(): jint; overload; virtual;
    function getElementAt(para1: jint): JLObject; overload; virtual;
    procedure copyInto(para1: Arr1JLObject); overload; virtual;
    procedure copyInto(var para1: array of JLObject); overload; virtual;
    procedure trimToSize(); overload; virtual;
    procedure ensureCapacity(para1: jint); overload; virtual;
    procedure setSize(para1: jint); overload; virtual;
    function capacity(): jint; overload; virtual;
    function size(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function elements(): JUEnumeration; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function indexOf(para1: JLObject): jint; overload; virtual;
    function indexOf(para1: JLObject; para2: jint): jint; overload; virtual;
    function lastIndexOf(para1: JLObject): jint; overload; virtual;
    function lastIndexOf(para1: JLObject; para2: jint): jint; overload; virtual;
    function elementAt(para1: jint): JLObject; overload; virtual;
    function firstElement(): JLObject; overload; virtual;
    function lastElement(): JLObject; overload; virtual;
    procedure setElementAt(para1: JLObject; para2: jint); overload; virtual;
    procedure removeElementAt(para1: jint); overload; virtual;
    procedure insertElementAt(para1: JLObject; para2: jint); overload; virtual;
    procedure addElement(para1: JLObject); overload; virtual;
    function removeElement(para1: JLObject): jboolean; overload; virtual;
    procedure removeAllElements(); overload; virtual;
    function toString(): JLString; overload; virtual;
    function toArray(): Arr1JLObject; overload; virtual;
    function get(para1: jint): JLObject; overload; virtual;
    function &set(para1: jint; para2: JLObject): JLObject; overload; virtual;
    procedure add(para1: jint; para2: JLObject); overload; virtual;
    function remove(para1: jint): JLObject; overload; virtual;
    procedure clear(); overload; virtual;
    procedure removeRange(para1: jint; para2: jint); overload; virtual;
  end;

  JSPBBasicDirectoryModel = class external 'javax.swing.plaf.basic' name 'BasicDirectoryModel' (JSAbstractListModel, JBPropertyChangeListener)
  public
    type
      InnerDoChangeContents = class;
      Arr1InnerDoChangeContents = array of InnerDoChangeContents;
      Arr2InnerDoChangeContents = array of Arr1InnerDoChangeContents;
      Arr3InnerDoChangeContents = array of Arr2InnerDoChangeContents;
      InnerLoadFilesThread = class;
      Arr1InnerLoadFilesThread = array of InnerLoadFilesThread;
      Arr2InnerLoadFilesThread = array of Arr1InnerLoadFilesThread;
      Arr3InnerLoadFilesThread = array of Arr2InnerLoadFilesThread;
      InnerDoChangeContents = class external 'javax.swing.plaf.basic' name 'DoChangeContents' 
      end;

      InnerLoadFilesThread = class external 'javax.swing.plaf.basic' name 'LoadFilesThread' 
      end;

  public
    constructor create(para1: JSJFileChooser); overload;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
    procedure invalidateFileCache(); overload; virtual;
    function getDirectories(): JUVector; overload; virtual;
    function getFiles(): JUVector; overload; virtual;
    procedure validateFileCache(); overload; virtual;
    function renameFile(para1: JIFile; para2: JIFile): jboolean; overload; virtual;
    procedure fireContentsChanged(); overload; virtual;
    function getSize(): jint; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function indexOf(para1: JLObject): jint; overload; virtual;
    function getElementAt(para1: jint): JLObject; overload; virtual;
    procedure intervalAdded(para1: JSEListDataEvent); overload; virtual;
    procedure intervalRemoved(para1: JSEListDataEvent); overload; virtual;
  strict protected
    procedure sort(para1: JUVector); overload; virtual;
    function lt(para1: JIFile; para2: JIFile): jboolean; overload; virtual;
  public
    procedure addPropertyChangeListener(para1: JBPropertyChangeListener); overload; virtual;
    procedure removePropertyChangeListener(para1: JBPropertyChangeListener); overload; virtual;
    function getPropertyChangeListeners(): Arr1JBPropertyChangeListener; overload; virtual;
  strict protected
    procedure firePropertyChange(para1: JLString; para2: JLObject; para3: JLObject); overload; virtual;
  end;

  JSMutableComboBoxModel = interface external 'javax.swing' name 'MutableComboBoxModel' (JSComboBoxModel)
    procedure addElement(para1: JLObject); overload;
    procedure removeElement(para1: JLObject); overload;
    procedure insertElementAt(para1: JLObject; para2: jint); overload;
    procedure removeElementAt(para1: jint); overload;
  end;

  JSTTableRowSorter = class external 'javax.swing.table' name 'TableRowSorter' (JSDefaultRowSorter)
  public
    type
      InnerComparableComparator = class;
      Arr1InnerComparableComparator = array of InnerComparableComparator;
      Arr2InnerComparableComparator = array of Arr1InnerComparableComparator;
      Arr3InnerComparableComparator = array of Arr2InnerComparableComparator;
      InnerTableRowSorterModelWrapper = class;
      Arr1InnerTableRowSorterModelWrapper = array of InnerTableRowSorterModelWrapper;
      Arr2InnerTableRowSorterModelWrapper = array of Arr1InnerTableRowSorterModelWrapper;
      Arr3InnerTableRowSorterModelWrapper = array of Arr2InnerTableRowSorterModelWrapper;
      InnerComparableComparator = class external 'javax.swing.table' name 'ComparableComparator' 
      end;

      InnerTableRowSorterModelWrapper = class external 'javax.swing.table' name 'TableRowSorterModelWrapper' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: JSTTableModel); overload;
    procedure setModel(para1: JSTTableModel); overload; virtual;
    procedure setStringConverter(para1: JSTTableStringConverter); overload; virtual;
    function getStringConverter(): JSTTableStringConverter; overload; virtual;
    function getComparator(para1: jint): JUComparator; overload; virtual;
  strict protected
    function useToString(para1: jint): jboolean; overload; virtual;
  end;

  JSSpinnerDateModel = class external 'javax.swing' name 'SpinnerDateModel' (JSAbstractSpinnerModel, JISerializable)
  public
    constructor create(para1: JUDate; para2: JLComparable; para3: JLComparable; para4: jint); overload;
    constructor create(); overload;
    procedure setStart(para1: JLComparable); overload; virtual;
    function getStart(): JLComparable; overload; virtual;
    procedure setEnd(para1: JLComparable); overload; virtual;
    function getEnd(): JLComparable; overload; virtual;
    procedure setCalendarField(para1: jint); overload; virtual;
    function getCalendarField(): jint; overload; virtual;
    function getNextValue(): JLObject; overload; virtual;
    function getPreviousValue(): JLObject; overload; virtual;
    function getDate(): JUDate; overload; virtual;
    function getValue(): JLObject; overload; virtual;
    procedure setValue(para1: JLObject); overload; virtual;
  end;

  JSSpinnerListModel = class external 'javax.swing' name 'SpinnerListModel' (JSAbstractSpinnerModel, JISerializable)
  public
    constructor create(para1: JUList); overload;
    constructor create(para1: Arr1JLObject); overload;
    constructor create(const para1: array of JLObject); overload;
    constructor create(); overload;
    function getList(): JUList; overload; virtual;
    procedure setList(para1: JUList); overload; virtual;
    function getValue(): JLObject; overload; virtual;
    procedure setValue(para1: JLObject); overload; virtual;
    function getNextValue(): JLObject; overload; virtual;
    function getPreviousValue(): JLObject; overload; virtual;
  end;

  JSSpinnerNumberModel = class external 'javax.swing' name 'SpinnerNumberModel' (JSAbstractSpinnerModel, JISerializable)
  public
    constructor create(para1: JLNumber; para2: JLComparable; para3: JLComparable; para4: JLNumber); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint); overload;
    constructor create(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble); overload;
    constructor create(); overload;
    procedure setMinimum(para1: JLComparable); overload; virtual;
    function getMinimum(): JLComparable; overload; virtual;
    procedure setMaximum(para1: JLComparable); overload; virtual;
    function getMaximum(): JLComparable; overload; virtual;
    procedure setStepSize(para1: JLNumber); overload; virtual;
    function getStepSize(): JLNumber; overload; virtual;
    function getNextValue(): JLObject; overload; virtual;
    function getPreviousValue(): JLObject; overload; virtual;
    function getNumber(): JLNumber; overload; virtual;
    function getValue(): JLObject; overload; virtual;
    procedure setValue(para1: JLObject); overload; virtual;
  end;

  JSPMMetalHighContrastTheme = class external 'javax.swing.plaf.metal' name 'MetalHighContrastTheme' (JSPMDefaultMetalTheme)
  public
    function getName(): JLString; overload; virtual;
  strict protected
    function getPrimary1(): JSPColorUIResource; overload; virtual;
    function getPrimary2(): JSPColorUIResource; overload; virtual;
    function getPrimary3(): JSPColorUIResource; overload; virtual;
  public
    function getPrimaryControlHighlight(): JSPColorUIResource; overload; virtual;
  strict protected
    function getSecondary2(): JSPColorUIResource; overload; virtual;
    function getSecondary3(): JSPColorUIResource; overload; virtual;
  public
    function getControlHighlight(): JSPColorUIResource; overload; virtual;
    function getFocusColor(): JSPColorUIResource; overload; virtual;
    function getTextHighlightColor(): JSPColorUIResource; overload; virtual;
    function getHighlightedTextColor(): JSPColorUIResource; overload; virtual;
    function getMenuSelectedBackground(): JSPColorUIResource; overload; virtual;
    function getMenuSelectedForeground(): JSPColorUIResource; overload; virtual;
    function getAcceleratorForeground(): JSPColorUIResource; overload; virtual;
    function getAcceleratorSelectedForeground(): JSPColorUIResource; overload; virtual;
    procedure addCustomEntriesToTable(para1: JSUIDefaults); overload; virtual;
  end;

  JSPMOceanTheme = class external 'javax.swing.plaf.metal' name 'OceanTheme' (JSPMDefaultMetalTheme)
  public
    type
      InnerCOIcon = class;
      Arr1InnerCOIcon = array of InnerCOIcon;
      Arr2InnerCOIcon = array of Arr1InnerCOIcon;
      Arr3InnerCOIcon = array of Arr2InnerCOIcon;
      InnerIFIcon = class;
      Arr1InnerIFIcon = array of InnerIFIcon;
      Arr2InnerIFIcon = array of Arr1InnerIFIcon;
      Arr3InnerIFIcon = array of Arr2InnerIFIcon;
      InnerCOIcon = class external 'javax.swing.plaf.metal' name 'COIcon' 
      end;

      InnerIFIcon = class external 'javax.swing.plaf.metal' name 'IFIcon' 
      end;

  public
    constructor create(); overload;
    procedure addCustomEntriesToTable(para1: JSUIDefaults); overload; virtual;
    function getName(): JLString; overload; virtual;
  strict protected
    function getPrimary1(): JSPColorUIResource; overload; virtual;
    function getPrimary2(): JSPColorUIResource; overload; virtual;
    function getPrimary3(): JSPColorUIResource; overload; virtual;
    function getSecondary1(): JSPColorUIResource; overload; virtual;
    function getSecondary2(): JSPColorUIResource; overload; virtual;
    function getSecondary3(): JSPColorUIResource; overload; virtual;
    function getBlack(): JSPColorUIResource; overload; virtual;
  public
    function getDesktopColor(): JSPColorUIResource; overload; virtual;
    function getInactiveControlTextColor(): JSPColorUIResource; overload; virtual;
    function getControlTextColor(): JSPColorUIResource; overload; virtual;
    function getMenuDisabledForeground(): JSPColorUIResource; overload; virtual;
  end;

  JSTDefaultTableModel = class external 'javax.swing.table' name 'DefaultTableModel' (JSTAbstractTableModel, JISerializable)
  strict protected
    var
      fdataVector: JUVector; external name 'dataVector';
      fcolumnIdentifiers: JUVector; external name 'columnIdentifiers';
  public
    constructor create(); overload;
    constructor create(para1: jint; para2: jint); overload;
    constructor create(para1: JUVector; para2: jint); overload;
    constructor create(para1: Arr1JLObject; para2: jint); overload;
    constructor create(const para1: array of JLObject; para2: jint); overload;
    constructor create(para1: JUVector; para2: JUVector); overload;
    constructor create(para1: Arr2JLObject; para2: Arr1JLObject); overload;
    constructor create(para1: Arr2JLObject; const para2: array of JLObject); overload;
    function getDataVector(): JUVector; overload; virtual;
    procedure setDataVector(para1: JUVector; para2: JUVector); overload; virtual;
    procedure setDataVector(para1: Arr2JLObject; para2: Arr1JLObject); overload; virtual;
    procedure setDataVector(para1: Arr2JLObject; var para2: array of JLObject); overload; virtual;
    procedure newDataAvailable(para1: JSETableModelEvent); overload; virtual;
    procedure newRowsAdded(para1: JSETableModelEvent); overload; virtual;
    procedure rowsRemoved(para1: JSETableModelEvent); overload; virtual;
    procedure setNumRows(para1: jint); overload; virtual;
    procedure setRowCount(para1: jint); overload; virtual;
    procedure addRow(para1: JUVector); overload; virtual;
    procedure addRow(para1: Arr1JLObject); overload; virtual;
    procedure addRow(var para1: array of JLObject); overload; virtual;
    procedure insertRow(para1: jint; para2: JUVector); overload; virtual;
    procedure insertRow(para1: jint; para2: Arr1JLObject); overload; virtual;
    procedure insertRow(para1: jint; var para2: array of JLObject); overload; virtual;
    procedure moveRow(para1: jint; para2: jint; para3: jint); overload; virtual;
    procedure removeRow(para1: jint); overload; virtual;
    procedure setColumnIdentifiers(para1: JUVector); overload; virtual;
    procedure setColumnIdentifiers(para1: Arr1JLObject); overload; virtual;
    procedure setColumnIdentifiers(var para1: array of JLObject); overload; virtual;
    procedure setColumnCount(para1: jint); overload; virtual;
    procedure addColumn(para1: JLObject); overload; virtual;
    procedure addColumn(para1: JLObject; para2: JUVector); overload; virtual;
    procedure addColumn(para1: JLObject; para2: Arr1JLObject); overload; virtual;
    procedure addColumn(para1: JLObject; var para2: array of JLObject); overload; virtual;
    function getRowCount(): jint; overload; virtual;
    function getColumnCount(): jint; overload; virtual;
    function getColumnName(para1: jint): JLString; overload; virtual;
    function isCellEditable(para1: jint; para2: jint): jboolean; overload; virtual;
    function getValueAt(para1: jint; para2: jint): JLObject; overload; virtual;
    procedure setValueAt(para1: JLObject; para2: jint; para3: jint); overload; virtual;
  strict protected
    class function convertToVector(para1: Arr1JLObject): JUVector; static; overload;
    class function convertToVector(var para1: array of JLObject): JUVector; static; overload;
    class function convertToVector(para1: Arr2JLObject): JUVector; static; overload;
  end;

  JSTSimpleAttributeSet = class external 'javax.swing.text' name 'SimpleAttributeSet' (JLObject, JSTMutableAttributeSet, JISerializable, JLCloneable)
  public
    type
      InnerEmptyAttributeSet = class;
      Arr1InnerEmptyAttributeSet = array of InnerEmptyAttributeSet;
      Arr2InnerEmptyAttributeSet = array of Arr1InnerEmptyAttributeSet;
      Arr3InnerEmptyAttributeSet = array of Arr2InnerEmptyAttributeSet;
      InnerEmptyAttributeSet = class external 'javax.swing.text' name 'EmptyAttributeSet' 
      end;

  public
    final class var
      fEMPTY: JSTAttributeSet; external name 'EMPTY';
  public
    constructor create(); overload;
    constructor create(para1: JSTAttributeSet); overload;
    function isEmpty(): jboolean; overload; virtual;
    function getAttributeCount(): jint; overload; virtual;
    function isDefined(para1: JLObject): jboolean; overload; virtual;
    function isEqual(para1: JSTAttributeSet): jboolean; overload; virtual;
    function copyAttributes(): JSTAttributeSet; overload; virtual;
    function getAttributeNames(): JUEnumeration; overload; virtual;
    function getAttribute(para1: JLObject): JLObject; overload; virtual;
    function containsAttribute(para1: JLObject; para2: JLObject): jboolean; overload; virtual;
    function containsAttributes(para1: JSTAttributeSet): jboolean; overload; virtual;
    procedure addAttribute(para1: JLObject; para2: JLObject); overload; virtual;
    procedure addAttributes(para1: JSTAttributeSet); overload; virtual;
    procedure removeAttribute(para1: JLObject); overload; virtual;
    procedure removeAttributes(para1: JUEnumeration); overload; virtual;
    procedure removeAttributes(para1: JSTAttributeSet); overload; virtual;
    function getResolveParent(): JSTAttributeSet; overload; virtual;
    procedure setResolveParent(para1: JSTAttributeSet); overload; virtual;
    function clone(): JLObject; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSTStyle = interface external 'javax.swing.text' name 'Style' (JSTMutableAttributeSet)
    function getName(): JLString; overload;
    procedure addChangeListener(para1: JSEChangeListener); overload;
    procedure removeChangeListener(para1: JSEChangeListener); overload;
  end;

  JSTRMockAttributeSet = class external 'javax.swing.text.rtf' name 'MockAttributeSet' (JLObject, JSTAttributeSet, JSTMutableAttributeSet)
  public
    var
      fbacking: JUDictionary; external name 'backing';
  public
    function isEmpty(): jboolean; overload; virtual;
    function getAttributeCount(): jint; overload; virtual;
    function isDefined(para1: JLObject): jboolean; overload; virtual;
    function isEqual(para1: JSTAttributeSet): jboolean; overload; virtual;
    function copyAttributes(): JSTAttributeSet; overload; virtual;
    function getAttribute(para1: JLObject): JLObject; overload; virtual;
    procedure addAttribute(para1: JLObject; para2: JLObject); overload; virtual;
    procedure addAttributes(para1: JSTAttributeSet); overload; virtual;
    procedure removeAttribute(para1: JLObject); overload; virtual;
    procedure removeAttributes(para1: JSTAttributeSet); overload; virtual;
    procedure removeAttributes(para1: JUEnumeration); overload; virtual;
    procedure setResolveParent(para1: JSTAttributeSet); overload; virtual;
    function getAttributeNames(): JUEnumeration; overload; virtual;
    function containsAttribute(para1: JLObject; para2: JLObject): jboolean; overload; virtual;
    function containsAttributes(para1: JSTAttributeSet): jboolean; overload; virtual;
    function getResolveParent(): JSTAttributeSet; overload; virtual;
  end;

  JSTDefaultHighlighter = class external 'javax.swing.text' name 'DefaultHighlighter' (JSTLayeredHighlighter)
  public
    type
      InnerHighlightInfo = class;
      Arr1InnerHighlightInfo = array of InnerHighlightInfo;
      Arr2InnerHighlightInfo = array of Arr1InnerHighlightInfo;
      Arr3InnerHighlightInfo = array of Arr2InnerHighlightInfo;
      InnerLayeredHighlightInfo = class;
      Arr1InnerLayeredHighlightInfo = array of InnerLayeredHighlightInfo;
      Arr2InnerLayeredHighlightInfo = array of Arr1InnerLayeredHighlightInfo;
      Arr3InnerLayeredHighlightInfo = array of Arr2InnerLayeredHighlightInfo;
      InnerSafeDamager = class;
      Arr1InnerSafeDamager = array of InnerSafeDamager;
      Arr2InnerSafeDamager = array of Arr1InnerSafeDamager;
      Arr3InnerSafeDamager = array of Arr2InnerSafeDamager;
      InnerHighlightInfo = class external 'javax.swing.text' name 'HighlightInfo' 
      end;

      InnerLayeredHighlightInfo = class external 'javax.swing.text' name 'LayeredHighlightInfo' 
      end;

      InnerSafeDamager = class external 'javax.swing.text' name 'SafeDamager' 
      end;

  public
    type
      InnerDefaultHighlightPainter = class;
      Arr1InnerDefaultHighlightPainter = array of InnerDefaultHighlightPainter;
      Arr2InnerDefaultHighlightPainter = array of Arr1InnerDefaultHighlightPainter;
      Arr3InnerDefaultHighlightPainter = array of Arr2InnerDefaultHighlightPainter;
      InnerDefaultHighlightPainter = class external 'javax.swing.text' name 'DefaultHighlightPainter' (JSTLayeredHighlighter.InnerLayerPainter)
      public
        constructor create(para1: JAColor); overload;
        function getColor(): JAColor; overload; virtual;
        procedure paint(para1: JAGraphics; para2: jint; para3: jint; para4: JAShape; para5: JSTJTextComponent); overload; virtual;
        function paintLayer(para1: JAGraphics; para2: jint; para3: jint; para4: JAShape; para5: JSTJTextComponent; para6: JSTView): JAShape; overload; virtual;
      end;

  public
    final class var
      fDefaultPainter: JSTLayeredHighlighter.InnerLayerPainter; external name 'DefaultPainter';
  public
    constructor create(); overload;
    procedure paint(para1: JAGraphics); overload; virtual;
    procedure install(para1: JSTJTextComponent); overload; virtual;
    procedure deinstall(para1: JSTJTextComponent); overload; virtual;
    function addHighlight(para1: jint; para2: jint; para3: JSTHighlighter.InnerHighlightPainter): JLObject; overload; virtual;  // throws javax.swing.text.BadLocationException
    procedure removeHighlight(para1: JLObject); overload; virtual;
    procedure removeAllHighlights(); overload; virtual;
    procedure changeHighlight(para1: JLObject; para2: jint; para3: jint); overload; virtual;  // throws javax.swing.text.BadLocationException
    function getHighlights(): JSTHighlighter.Arr1InnerHighlight; overload; virtual;
    procedure paintLayeredHighlights(para1: JAGraphics; para2: jint; para3: jint; para4: JAShape; para5: JSTJTextComponent; para6: JSTView); overload; virtual;
    procedure setDrawsLayeredHighlights(para1: jboolean); overload; virtual;
    function getDrawsLayeredHighlights(): jboolean; overload; virtual;
  end;

  JSTAsyncBoxView = class external 'javax.swing.text' name 'AsyncBoxView' (JSTView)
  public
    type
      InnerFlushTask = class;
      Arr1InnerFlushTask = array of InnerFlushTask;
      Arr2InnerFlushTask = array of Arr1InnerFlushTask;
      Arr3InnerFlushTask = array of Arr2InnerFlushTask;
      InnerFlushTask = class external 'javax.swing.text' name 'FlushTask' 
      end;

  public
    type
      InnerChildLocator = class;
      Arr1InnerChildLocator = array of InnerChildLocator;
      Arr2InnerChildLocator = array of Arr1InnerChildLocator;
      Arr3InnerChildLocator = array of Arr2InnerChildLocator;
      InnerChildState = class;
      Arr1InnerChildState = array of InnerChildState;
      Arr2InnerChildState = array of Arr1InnerChildState;
      Arr3InnerChildState = array of Arr2InnerChildState;
      InnerChildLocator = class external 'javax.swing.text' name 'ChildLocator' 
      end;

      InnerChildState = class external 'javax.swing.text' name 'ChildState' 
      end;

  strict protected
    var
      flocator: JSTAsyncBoxView.InnerChildLocator; external name 'locator';
  public
    constructor create(para1: JSTElement; para2: jint); overload;
    function getMajorAxis(): jint; overload; virtual;
    function getMinorAxis(): jint; overload; virtual;
    function getTopInset(): jfloat; overload; virtual;
    procedure setTopInset(para1: jfloat); overload; virtual;
    function getBottomInset(): jfloat; overload; virtual;
    procedure setBottomInset(para1: jfloat); overload; virtual;
    function getLeftInset(): jfloat; overload; virtual;
    procedure setLeftInset(para1: jfloat); overload; virtual;
    function getRightInset(): jfloat; overload; virtual;
    procedure setRightInset(para1: jfloat); overload; virtual;
  strict protected
    function getInsetSpan(para1: jint): jfloat; overload; virtual;
    procedure setEstimatedMajorSpan(para1: jboolean); overload; virtual;
    function getEstimatedMajorSpan(): jboolean; overload; virtual;
    function getChildState(para1: jint): JSTAsyncBoxView.InnerChildState; overload; virtual;
    function getLayoutQueue(): JSTLayoutQueue; overload; virtual;
    function createChildState(para1: JSTView): JSTAsyncBoxView.InnerChildState; overload; virtual;
    procedure majorRequirementChange(para1: JSTAsyncBoxView.InnerChildState; para2: jfloat); overload; virtual;
    procedure minorRequirementChange(para1: JSTAsyncBoxView.InnerChildState); overload; virtual;
    procedure flushRequirementChanges(); overload; virtual;
  public
    procedure replace(para1: jint; para2: jint; para3: Arr1JSTView); overload; virtual;
    procedure replace(para1: jint; para2: jint; var para3: array of JSTView); overload; virtual;
  strict protected
    procedure loadChildren(para1: JSTViewFactory); overload; virtual;
    function getViewIndexAtPosition(para1: jint; para2: JSTPosition.InnerBias): jint; overload; virtual;
    procedure updateLayout(para1: JSEDocumentEvent.InnerElementChange; para2: JSEDocumentEvent; para3: JAShape); overload; virtual;
  public
    procedure setParent(para1: JSTView); overload; virtual;
    procedure preferenceChanged(para1: JSTView; para2: jboolean; para3: jboolean); overload; virtual;
    procedure setSize(para1: jfloat; para2: jfloat); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JAShape); overload; virtual;
    function getPreferredSpan(para1: jint): jfloat; overload; virtual;
    function getMinimumSpan(para1: jint): jfloat; overload; virtual;
    function getMaximumSpan(para1: jint): jfloat; overload; virtual;
    function getViewCount(): jint; overload; virtual;
    function getView(para1: jint): JSTView; overload; virtual;
    function getChildAllocation(para1: jint; para2: JAShape): JAShape; overload; virtual;
    function getViewIndex(para1: jint; para2: JSTPosition.InnerBias): jint; overload; virtual;
    function modelToView(para1: jint; para2: JAShape; para3: JSTPosition.InnerBias): JAShape; overload; virtual;  // throws javax.swing.text.BadLocationException
    function viewToModel(para1: jfloat; para2: jfloat; para3: JAShape; para4: JSTPosition.Arr1InnerBias): jint; overload; virtual;
    function viewToModel(para1: jfloat; para2: jfloat; para3: JAShape; var para4: array of JSTPosition.InnerBias): jint; overload; virtual;
    function getNextVisualPositionFrom(para1: jint; para2: JSTPosition.InnerBias; para3: JAShape; para4: jint; para5: JSTPosition.Arr1InnerBias): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
    function getNextVisualPositionFrom(para1: jint; para2: JSTPosition.InnerBias; para3: JAShape; para4: jint; var para5: array of JSTPosition.InnerBias): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
  end;

  JSTComponentView = class external 'javax.swing.text' name 'ComponentView' (JSTView)
  public
    type
      InnerInvalidator = class;
      Arr1InnerInvalidator = array of InnerInvalidator;
      Arr2InnerInvalidator = array of Arr1InnerInvalidator;
      Arr3InnerInvalidator = array of Arr2InnerInvalidator;
      InnerInvalidator = class external 'javax.swing.text' name 'Invalidator' 
      end;

  public
    constructor create(para1: JSTElement); overload;
  strict protected
    function createComponent(): JAComponent; overload; virtual;
  public
    function getComponent(): JAComponent; overload; virtual; final;
    procedure paint(para1: JAGraphics; para2: JAShape); overload; virtual;
    function getPreferredSpan(para1: jint): jfloat; overload; virtual;
    function getMinimumSpan(para1: jint): jfloat; overload; virtual;
    function getMaximumSpan(para1: jint): jfloat; overload; virtual;
    function getAlignment(para1: jint): jfloat; overload; virtual;
    procedure setParent(para1: JSTView); overload; virtual;
    function modelToView(para1: jint; para2: JAShape; para3: JSTPosition.InnerBias): JAShape; overload; virtual;  // throws javax.swing.text.BadLocationException
    function viewToModel(para1: jfloat; para2: jfloat; para3: JAShape; para4: JSTPosition.Arr1InnerBias): jint; overload; virtual;
    function viewToModel(para1: jfloat; para2: jfloat; para3: JAShape; var para4: array of JSTPosition.InnerBias): jint; overload; virtual;
  end;

  JSTCompositeView = class abstract external 'javax.swing.text' name 'CompositeView' (JSTView)
  public
    constructor create(para1: JSTElement); overload;
  strict protected
    procedure loadChildren(para1: JSTViewFactory); overload; virtual;
  public
    procedure setParent(para1: JSTView); overload; virtual;
    function getViewCount(): jint; overload; virtual;
    function getView(para1: jint): JSTView; overload; virtual;
    procedure replace(para1: jint; para2: jint; para3: Arr1JSTView); overload; virtual;
    procedure replace(para1: jint; para2: jint; var para3: array of JSTView); overload; virtual;
    function getChildAllocation(para1: jint; para2: JAShape): JAShape; overload; virtual;
    function modelToView(para1: jint; para2: JAShape; para3: JSTPosition.InnerBias): JAShape; overload; virtual;  // throws javax.swing.text.BadLocationException
    function modelToView(para1: jint; para2: JSTPosition.InnerBias; para3: jint; para4: JSTPosition.InnerBias; para5: JAShape): JAShape; overload; virtual;  // throws javax.swing.text.BadLocationException
    function viewToModel(para1: jfloat; para2: jfloat; para3: JAShape; para4: JSTPosition.Arr1InnerBias): jint; overload; virtual;
    function viewToModel(para1: jfloat; para2: jfloat; para3: JAShape; var para4: array of JSTPosition.InnerBias): jint; overload; virtual;
    function getNextVisualPositionFrom(para1: jint; para2: JSTPosition.InnerBias; para3: JAShape; para4: jint; para5: JSTPosition.Arr1InnerBias): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
    function getNextVisualPositionFrom(para1: jint; para2: JSTPosition.InnerBias; para3: JAShape; para4: jint; var para5: array of JSTPosition.InnerBias): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
    function getViewIndex(para1: jint; para2: JSTPosition.InnerBias): jint; overload; virtual;
  strict protected
    function isBefore(para1: jint; para2: jint; para3: JARectangle): jboolean; overload; virtual; abstract;
    function isAfter(para1: jint; para2: jint; para3: JARectangle): jboolean; overload; virtual; abstract;
    function getViewAtPoint(para1: jint; para2: jint; para3: JARectangle): JSTView; overload; virtual; abstract;
    procedure childAllocation(para1: jint; para2: JARectangle); overload; virtual; abstract;
    function getViewAtPosition(para1: jint; para2: JARectangle): JSTView; overload; virtual;
    function getViewIndexAtPosition(para1: jint): jint; overload; virtual;
    function getInsideAllocation(para1: JAShape): JARectangle; overload; virtual;
    procedure setParagraphInsets(para1: JSTAttributeSet); overload; virtual;
    procedure setInsets(para1: jshort; para2: jshort; para3: jshort; para4: jshort); overload; virtual;
    function getLeftInset(): jshort; overload; virtual;
    function getRightInset(): jshort; overload; virtual;
    function getTopInset(): jshort; overload; virtual;
    function getBottomInset(): jshort; overload; virtual;
    function getNextNorthSouthVisualPositionFrom(para1: jint; para2: JSTPosition.InnerBias; para3: JAShape; para4: jint; para5: JSTPosition.Arr1InnerBias): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
    function getNextNorthSouthVisualPositionFrom(para1: jint; para2: JSTPosition.InnerBias; para3: JAShape; para4: jint; var para5: array of JSTPosition.InnerBias): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
    function getNextEastWestVisualPositionFrom(para1: jint; para2: JSTPosition.InnerBias; para3: JAShape; para4: jint; para5: JSTPosition.Arr1InnerBias): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
    function getNextEastWestVisualPositionFrom(para1: jint; para2: JSTPosition.InnerBias; para3: JAShape; para4: jint; var para5: array of JSTPosition.InnerBias): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
    function flipEastAndWestAtEnds(para1: jint; para2: JSTPosition.InnerBias): jboolean; overload; virtual;
  end;

  JSTGlyphView = class external 'javax.swing.text' name 'GlyphView' (JSTView, JSTTabableView, JLCloneable)
  public
    type
      InnerJustificationInfo = class;
      Arr1InnerJustificationInfo = array of InnerJustificationInfo;
      Arr2InnerJustificationInfo = array of Arr1InnerJustificationInfo;
      Arr3InnerJustificationInfo = array of Arr2InnerJustificationInfo;
      InnerJustificationInfo = class external 'javax.swing.text' name 'JustificationInfo' 
      end;

  public
    type
      InnerGlyphPainter = class;
      Arr1InnerGlyphPainter = array of InnerGlyphPainter;
      Arr2InnerGlyphPainter = array of Arr1InnerGlyphPainter;
      Arr3InnerGlyphPainter = array of Arr2InnerGlyphPainter;
      InnerGlyphPainter = class abstract external 'javax.swing.text' name 'GlyphPainter' (JLObject)
      public
        constructor create(); overload;
        function getSpan(para1: JSTGlyphView; para2: jint; para3: jint; para4: JSTTabExpander; para5: jfloat): jfloat; overload; virtual; abstract;
        function getHeight(para1: JSTGlyphView): jfloat; overload; virtual; abstract;
        function getAscent(para1: JSTGlyphView): jfloat; overload; virtual; abstract;
        function getDescent(para1: JSTGlyphView): jfloat; overload; virtual; abstract;
        procedure paint(para1: JSTGlyphView; para2: JAGraphics; para3: JAShape; para4: jint; para5: jint); overload; virtual; abstract;
        function modelToView(para1: JSTGlyphView; para2: jint; para3: JSTPosition.InnerBias; para4: JAShape): JAShape; overload; virtual; abstract;  // throws javax.swing.text.BadLocationException
        function viewToModel(para1: JSTGlyphView; para2: jfloat; para3: jfloat; para4: JAShape; para5: JSTPosition.Arr1InnerBias): jint; overload; virtual; abstract;
        function viewToModel(para1: JSTGlyphView; para2: jfloat; para3: jfloat; para4: JAShape; var para5: array of JSTPosition.InnerBias): jint; overload; virtual; abstract;
        function getBoundedPosition(para1: JSTGlyphView; para2: jint; para3: jfloat; para4: jfloat): jint; overload; virtual; abstract;
        function getPainter(para1: JSTGlyphView; para2: jint; para3: jint): JSTGlyphView.InnerGlyphPainter; overload; virtual;
        function getNextVisualPositionFrom(para1: JSTGlyphView; para2: jint; para3: JSTPosition.InnerBias; para4: JAShape; para5: jint; para6: JSTPosition.Arr1InnerBias): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
        function getNextVisualPositionFrom(para1: JSTGlyphView; para2: jint; para3: JSTPosition.InnerBias; para4: JAShape; para5: jint; var para6: array of JSTPosition.InnerBias): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
      end;

  public
    constructor create(para1: JSTElement); overload;
  strict protected
    function clone(): JLObject; overload; virtual; final;
  public
    function getGlyphPainter(): JSTGlyphView.InnerGlyphPainter; overload; virtual;
    procedure setGlyphPainter(para1: JSTGlyphView.InnerGlyphPainter); overload; virtual;
    function getText(para1: jint; para2: jint): JSTSegment; overload; virtual;
    function getBackground(): JAColor; overload; virtual;
    function getForeground(): JAColor; overload; virtual;
    function getFont(): JAFont; overload; virtual;
    function isUnderline(): jboolean; overload; virtual;
    function isStrikeThrough(): jboolean; overload; virtual;
    function isSubscript(): jboolean; overload; virtual;
    function isSuperscript(): jboolean; overload; virtual;
    function getTabExpander(): JSTTabExpander; overload; virtual;
  strict protected
    procedure checkPainter(); overload; virtual;
  public
    function getTabbedSpan(para1: jfloat; para2: JSTTabExpander): jfloat; overload; virtual;
    function getPartialSpan(para1: jint; para2: jint): jfloat; overload; virtual;
    function getStartOffset(): jint; overload; virtual;
    function getEndOffset(): jint; overload; virtual;
    procedure paint(para1: JAGraphics; para2: JAShape); overload; virtual;
    function getPreferredSpan(para1: jint): jfloat; overload; virtual;
    function getAlignment(para1: jint): jfloat; overload; virtual;
    function modelToView(para1: jint; para2: JAShape; para3: JSTPosition.InnerBias): JAShape; overload; virtual;  // throws javax.swing.text.BadLocationException
    function viewToModel(para1: jfloat; para2: jfloat; para3: JAShape; para4: JSTPosition.Arr1InnerBias): jint; overload; virtual;
    function viewToModel(para1: jfloat; para2: jfloat; para3: JAShape; var para4: array of JSTPosition.InnerBias): jint; overload; virtual;
    function getBreakWeight(para1: jint; para2: jfloat; para3: jfloat): jint; overload; virtual;
    function breakView(para1: jint; para2: jint; para3: jfloat; para4: jfloat): JSTView; overload; virtual;
    function createFragment(para1: jint; para2: jint): JSTView; overload; virtual;
    function getNextVisualPositionFrom(para1: jint; para2: JSTPosition.InnerBias; para3: JAShape; para4: jint; para5: JSTPosition.Arr1InnerBias): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
    function getNextVisualPositionFrom(para1: jint; para2: JSTPosition.InnerBias; para3: JAShape; para4: jint; var para5: array of JSTPosition.InnerBias): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
    procedure insertUpdate(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
    procedure removeUpdate(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
    procedure changedUpdate(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
  end;

  JSTIconView = class external 'javax.swing.text' name 'IconView' (JSTView)
  public
    constructor create(para1: JSTElement); overload;
    procedure paint(para1: JAGraphics; para2: JAShape); overload; virtual;
    function getPreferredSpan(para1: jint): jfloat; overload; virtual;
    function getAlignment(para1: jint): jfloat; overload; virtual;
    function modelToView(para1: jint; para2: JAShape; para3: JSTPosition.InnerBias): JAShape; overload; virtual;  // throws javax.swing.text.BadLocationException
    function viewToModel(para1: jfloat; para2: jfloat; para3: JAShape; para4: JSTPosition.Arr1InnerBias): jint; overload; virtual;
    function viewToModel(para1: jfloat; para2: jfloat; para3: JAShape; var para4: array of JSTPosition.InnerBias): jint; overload; virtual;
  end;

  JSTPlainView = class external 'javax.swing.text' name 'PlainView' (JSTView, JSTTabExpander)
  strict protected
    var
      fmetrics: JAFontMetrics; external name 'metrics';
  public
    constructor create(para1: JSTElement); overload;
  strict protected
    function getTabSize(): jint; overload; virtual;
    procedure drawLine(para1: jint; para2: JAGraphics; para3: jint; para4: jint); overload; virtual;
    function drawUnselectedText(para1: JAGraphics; para2: jint; para3: jint; para4: jint; para5: jint): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
    function drawSelectedText(para1: JAGraphics; para2: jint; para3: jint; para4: jint; para5: jint): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
    function getLineBuffer(): JSTSegment; overload; virtual; final;
    procedure updateMetrics(); overload; virtual;
  public
    function getPreferredSpan(para1: jint): jfloat; overload; virtual;
    procedure paint(para1: JAGraphics; para2: JAShape); overload; virtual;
    function modelToView(para1: jint; para2: JAShape; para3: JSTPosition.InnerBias): JAShape; overload; virtual;  // throws javax.swing.text.BadLocationException
    function viewToModel(para1: jfloat; para2: jfloat; para3: JAShape; para4: JSTPosition.Arr1InnerBias): jint; overload; virtual;
    function viewToModel(para1: jfloat; para2: jfloat; para3: JAShape; var para4: array of JSTPosition.InnerBias): jint; overload; virtual;
    procedure insertUpdate(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
    procedure removeUpdate(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
    procedure changedUpdate(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
    procedure setSize(para1: jfloat; para2: jfloat); overload; virtual;
    function nextTabStop(para1: jfloat; para2: jint): jfloat; overload; virtual;
  strict protected
    procedure updateDamage(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
    procedure damageLineRange(para1: jint; para2: jint; para3: JAShape; para4: JAComponent); overload; virtual;
    function lineToRect(para1: JAShape; para2: jint): JARectangle; overload; virtual;
  end;

  JSTHHRuleView = class external 'javax.swing.text.html' name 'HRuleView' (JSTView)
  public
    constructor create(para1: JSTElement); overload;
  strict protected
    procedure setPropertiesFromAttributes(); overload; virtual;
  public
    procedure paint(para1: JAGraphics; para2: JAShape); overload; virtual;
    function getPreferredSpan(para1: jint): jfloat; overload; virtual;
    function getResizeWeight(para1: jint): jint; overload; virtual;
    function getBreakWeight(para1: jint; para2: jfloat; para3: jfloat): jint; overload; virtual;
    function breakView(para1: jint; para2: jint; para3: jfloat; para4: jfloat): JSTView; overload; virtual;
    function modelToView(para1: jint; para2: JAShape; para3: JSTPosition.InnerBias): JAShape; overload; virtual;  // throws javax.swing.text.BadLocationException
    function viewToModel(para1: jfloat; para2: jfloat; para3: JAShape; para4: JSTPosition.Arr1InnerBias): jint; overload; virtual;
    function viewToModel(para1: jfloat; para2: jfloat; para3: JAShape; var para4: array of JSTPosition.InnerBias): jint; overload; virtual;
    function getAttributes(): JSTAttributeSet; overload; virtual;
    procedure changedUpdate(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
  end;

  JSTHImageView = class external 'javax.swing.text.html' name 'ImageView' (JSTView)
  public
    type
      InnerImageHandler = class;
      Arr1InnerImageHandler = array of InnerImageHandler;
      Arr2InnerImageHandler = array of Arr1InnerImageHandler;
      Arr3InnerImageHandler = array of Arr2InnerImageHandler;
      InnerImageLabelView = class;
      Arr1InnerImageLabelView = array of InnerImageLabelView;
      Arr2InnerImageLabelView = array of Arr1InnerImageLabelView;
      Arr3InnerImageLabelView = array of Arr2InnerImageLabelView;
      InnerImageHandler = class external 'javax.swing.text.html' name 'ImageHandler' 
      end;

      InnerImageLabelView = class external 'javax.swing.text.html' name 'ImageLabelView' 
      end;

  public
    constructor create(para1: JSTElement); overload;
    function getAltText(): JLString; overload; virtual;
    function getImageURL(): JNURL; overload; virtual;
    function getNoImageIcon(): JSIcon; overload; virtual;
    function getLoadingImageIcon(): JSIcon; overload; virtual;
    function getImage(): JAImage; overload; virtual;
    procedure setLoadsSynchronously(para1: jboolean); overload; virtual;
    function getLoadsSynchronously(): jboolean; overload; virtual;
  strict protected
    function getStyleSheet(): JSTHStyleSheet; overload; virtual;
  public
    function getAttributes(): JSTAttributeSet; overload; virtual;
    function getToolTipText(para1: jfloat; para2: jfloat; para3: JAShape): JLString; overload; virtual;
  strict protected
    procedure setPropertiesFromAttributes(); overload; virtual;
  public
    procedure setParent(para1: JSTView); overload; virtual;
    procedure changedUpdate(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JAShape); overload; virtual;
    function getPreferredSpan(para1: jint): jfloat; overload; virtual;
    function getAlignment(para1: jint): jfloat; overload; virtual;
    function modelToView(para1: jint; para2: JAShape; para3: JSTPosition.InnerBias): JAShape; overload; virtual;  // throws javax.swing.text.BadLocationException
    function viewToModel(para1: jfloat; para2: jfloat; para3: JAShape; para4: JSTPosition.Arr1InnerBias): jint; overload; virtual;
    function viewToModel(para1: jfloat; para2: jfloat; para3: JAShape; var para4: array of JSTPosition.InnerBias): jint; overload; virtual;
    procedure setSize(para1: jfloat; para2: jfloat); overload; virtual;
  end;

  JSTFixedHeightLayoutCache = class external 'javax.swing.tree' name 'FixedHeightLayoutCache' (JSTAbstractLayoutCache)
  public
    type
      InnerFHTreeStateNode = class;
      Arr1InnerFHTreeStateNode = array of InnerFHTreeStateNode;
      Arr2InnerFHTreeStateNode = array of Arr1InnerFHTreeStateNode;
      Arr3InnerFHTreeStateNode = array of Arr2InnerFHTreeStateNode;
      InnerSearchInfo = class;
      Arr1InnerSearchInfo = array of InnerSearchInfo;
      Arr2InnerSearchInfo = array of Arr1InnerSearchInfo;
      Arr3InnerSearchInfo = array of Arr2InnerSearchInfo;
      InnerVisibleFHTreeStateNodeEnumeration = class;
      Arr1InnerVisibleFHTreeStateNodeEnumeration = array of InnerVisibleFHTreeStateNodeEnumeration;
      Arr2InnerVisibleFHTreeStateNodeEnumeration = array of Arr1InnerVisibleFHTreeStateNodeEnumeration;
      Arr3InnerVisibleFHTreeStateNodeEnumeration = array of Arr2InnerVisibleFHTreeStateNodeEnumeration;
      InnerFHTreeStateNode = class external 'javax.swing.tree' name 'FHTreeStateNode' 
      end;

      InnerSearchInfo = class external 'javax.swing.tree' name 'SearchInfo' 
      end;

      InnerVisibleFHTreeStateNodeEnumeration = class external 'javax.swing.tree' name 'VisibleFHTreeStateNodeEnumeration' 
      end;

  public
    constructor create(); overload;
    procedure setModel(para1: JSTTreeModel); overload; virtual;
    procedure setRootVisible(para1: jboolean); overload; virtual;
    procedure setRowHeight(para1: jint); overload; virtual;
    function getRowCount(): jint; overload; virtual;
    procedure invalidatePathBounds(para1: JSTTreePath); overload; virtual;
    procedure invalidateSizes(); overload; virtual;
    function isExpanded(para1: JSTTreePath): jboolean; overload; virtual;
    function getBounds(para1: JSTTreePath; para2: JARectangle): JARectangle; overload; virtual;
    function getPathForRow(para1: jint): JSTTreePath; overload; virtual;
    function getRowForPath(para1: JSTTreePath): jint; overload; virtual;
    function getPathClosestTo(para1: jint; para2: jint): JSTTreePath; overload; virtual;
    function getVisibleChildCount(para1: JSTTreePath): jint; overload; virtual;
    function getVisiblePathsFrom(para1: JSTTreePath): JUEnumeration; overload; virtual;
    procedure setExpandedState(para1: JSTTreePath; para2: jboolean); overload; virtual;
    function getExpandedState(para1: JSTTreePath): jboolean; overload; virtual;
    procedure treeNodesChanged(para1: JSETreeModelEvent); overload; virtual;
    procedure treeNodesInserted(para1: JSETreeModelEvent); overload; virtual;
    procedure treeNodesRemoved(para1: JSETreeModelEvent); overload; virtual;
    procedure treeStructureChanged(para1: JSETreeModelEvent); overload; virtual;
  end;

  JSTVariableHeightLayoutCache = class external 'javax.swing.tree' name 'VariableHeightLayoutCache' (JSTAbstractLayoutCache)
  public
    type
      InnerTreeStateNode = class;
      Arr1InnerTreeStateNode = array of InnerTreeStateNode;
      Arr2InnerTreeStateNode = array of Arr1InnerTreeStateNode;
      Arr3InnerTreeStateNode = array of Arr2InnerTreeStateNode;
      InnerVisibleTreeStateNodeEnumeration = class;
      Arr1InnerVisibleTreeStateNodeEnumeration = array of InnerVisibleTreeStateNodeEnumeration;
      Arr2InnerVisibleTreeStateNodeEnumeration = array of Arr1InnerVisibleTreeStateNodeEnumeration;
      Arr3InnerVisibleTreeStateNodeEnumeration = array of Arr2InnerVisibleTreeStateNodeEnumeration;
      InnerTreeStateNode = class external 'javax.swing.tree' name 'TreeStateNode' 
      end;

      InnerVisibleTreeStateNodeEnumeration = class external 'javax.swing.tree' name 'VisibleTreeStateNodeEnumeration' 
      end;

  public
    constructor create(); overload;
    procedure setModel(para1: JSTTreeModel); overload; virtual;
    procedure setRootVisible(para1: jboolean); overload; virtual;
    procedure setRowHeight(para1: jint); overload; virtual;
    procedure setNodeDimensions(para1: JSTAbstractLayoutCache.InnerNodeDimensions); overload; virtual;
    procedure setExpandedState(para1: JSTTreePath; para2: jboolean); overload; virtual;
    function getExpandedState(para1: JSTTreePath): jboolean; overload; virtual;
    function getBounds(para1: JSTTreePath; para2: JARectangle): JARectangle; overload; virtual;
    function getPathForRow(para1: jint): JSTTreePath; overload; virtual;
    function getRowForPath(para1: JSTTreePath): jint; overload; virtual;
    function getRowCount(): jint; overload; virtual;
    procedure invalidatePathBounds(para1: JSTTreePath); overload; virtual;
    function getPreferredHeight(): jint; overload; virtual;
    function getPreferredWidth(para1: JARectangle): jint; overload; virtual;
    function getPathClosestTo(para1: jint; para2: jint): JSTTreePath; overload; virtual;
    function getVisiblePathsFrom(para1: JSTTreePath): JUEnumeration; overload; virtual;
    function getVisibleChildCount(para1: JSTTreePath): jint; overload; virtual;
    procedure invalidateSizes(); overload; virtual;
    function isExpanded(para1: JSTTreePath): jboolean; overload; virtual;
    procedure treeNodesChanged(para1: JSETreeModelEvent); overload; virtual;
    procedure treeNodesInserted(para1: JSETreeModelEvent); overload; virtual;
    procedure treeNodesRemoved(para1: JSETreeModelEvent); overload; virtual;
    procedure treeStructureChanged(para1: JSETreeModelEvent); overload; virtual;
  end;

  JSTDefaultMutableTreeNode = class external 'javax.swing.tree' name 'DefaultMutableTreeNode' (JLObject, JLCloneable, JSTMutableTreeNode, JISerializable)
  public
    type
      InnerPathBetweenNodesEnumeration = class;
      Arr1InnerPathBetweenNodesEnumeration = array of InnerPathBetweenNodesEnumeration;
      Arr2InnerPathBetweenNodesEnumeration = array of Arr1InnerPathBetweenNodesEnumeration;
      Arr3InnerPathBetweenNodesEnumeration = array of Arr2InnerPathBetweenNodesEnumeration;
      InnerPostorderEnumeration = class;
      Arr1InnerPostorderEnumeration = array of InnerPostorderEnumeration;
      Arr2InnerPostorderEnumeration = array of Arr1InnerPostorderEnumeration;
      Arr3InnerPostorderEnumeration = array of Arr2InnerPostorderEnumeration;
      InnerPreorderEnumeration = class;
      Arr1InnerPreorderEnumeration = array of InnerPreorderEnumeration;
      Arr2InnerPreorderEnumeration = array of Arr1InnerPreorderEnumeration;
      Arr3InnerPreorderEnumeration = array of Arr2InnerPreorderEnumeration;
      InnerBreadthFirstEnumeration = class;
      Arr1InnerBreadthFirstEnumeration = array of InnerBreadthFirstEnumeration;
      Arr2InnerBreadthFirstEnumeration = array of Arr1InnerBreadthFirstEnumeration;
      Arr3InnerBreadthFirstEnumeration = array of Arr2InnerBreadthFirstEnumeration;
      InnerPathBetweenNodesEnumeration = class sealed external 'javax.swing.tree' name 'PathBetweenNodesEnumeration' 
      end;

      InnerPostorderEnumeration = class sealed external 'javax.swing.tree' name 'PostorderEnumeration' 
      end;

      InnerPreorderEnumeration = class sealed external 'javax.swing.tree' name 'PreorderEnumeration' 
      end;

      InnerBreadthFirstEnumeration = class sealed external 'javax.swing.tree' name 'BreadthFirstEnumeration' 
      public
        type
          InnerQueue = class;
          Arr1InnerQueue = array of InnerQueue;
          Arr2InnerQueue = array of Arr1InnerQueue;
          Arr3InnerQueue = array of Arr2InnerQueue;
          InnerQueue = class sealed external 'javax.swing.tree' name 'Queue' 
          public
            type
              InnerQNode = class;
              Arr1InnerQNode = array of InnerQNode;
              Arr2InnerQNode = array of Arr1InnerQNode;
              Arr3InnerQNode = array of Arr2InnerQNode;
              InnerQNode = class sealed external 'javax.swing.tree' name 'QNode' 
              end;

          end;

      end;

  public
    final class var
      fEMPTY_ENUMERATION: JUEnumeration; external name 'EMPTY_ENUMERATION';
  strict protected
    var
      fparent: JSTMutableTreeNode; external name 'parent';
      fchildren: JUVector; external name 'children';
      fuserObject: JLObject; external name 'userObject';
      fallowsChildren: jboolean; external name 'allowsChildren';
  public
    constructor create(); overload;
    constructor create(para1: JLObject); overload;
    constructor create(para1: JLObject; para2: jboolean); overload;
    procedure insert(para1: JSTMutableTreeNode; para2: jint); overload; virtual;
    procedure remove(para1: jint); overload; virtual;
    procedure setParent(para1: JSTMutableTreeNode); overload; virtual;
    function getParent(): JSTTreeNode; overload; virtual;
    function getChildAt(para1: jint): JSTTreeNode; overload; virtual;
    function getChildCount(): jint; overload; virtual;
    function getIndex(para1: JSTTreeNode): jint; overload; virtual;
    function children(): JUEnumeration; overload; virtual;
    procedure setAllowsChildren(para1: jboolean); overload; virtual;
    function getAllowsChildren(): jboolean; overload; virtual;
    procedure setUserObject(para1: JLObject); overload; virtual;
    function getUserObject(): JLObject; overload; virtual;
    procedure removeFromParent(); overload; virtual;
    procedure remove(para1: JSTMutableTreeNode); overload; virtual;
    procedure removeAllChildren(); overload; virtual;
    procedure add(para1: JSTMutableTreeNode); overload; virtual;
    function isNodeAncestor(para1: JSTTreeNode): jboolean; overload; virtual;
    function isNodeDescendant(para1: JSTDefaultMutableTreeNode): jboolean; overload; virtual;
    function getSharedAncestor(para1: JSTDefaultMutableTreeNode): JSTTreeNode; overload; virtual;
    function isNodeRelated(para1: JSTDefaultMutableTreeNode): jboolean; overload; virtual;
    function getDepth(): jint; overload; virtual;
    function getLevel(): jint; overload; virtual;
    function getPath(): Arr1JSTTreeNode; overload; virtual;
  strict protected
    function getPathToRoot(para1: JSTTreeNode; para2: jint): Arr1JSTTreeNode; overload; virtual;
  public
    function getUserObjectPath(): Arr1JLObject; overload; virtual;
    function getRoot(): JSTTreeNode; overload; virtual;
    function isRoot(): jboolean; overload; virtual;
    function getNextNode(): JSTDefaultMutableTreeNode; overload; virtual;
    function getPreviousNode(): JSTDefaultMutableTreeNode; overload; virtual;
    function preorderEnumeration(): JUEnumeration; overload; virtual;
    function postorderEnumeration(): JUEnumeration; overload; virtual;
    function breadthFirstEnumeration(): JUEnumeration; overload; virtual;
    function depthFirstEnumeration(): JUEnumeration; overload; virtual;
    function pathFromAncestorEnumeration(para1: JSTTreeNode): JUEnumeration; overload; virtual;
    function isNodeChild(para1: JSTTreeNode): jboolean; overload; virtual;
    function getFirstChild(): JSTTreeNode; overload; virtual;
    function getLastChild(): JSTTreeNode; overload; virtual;
    function getChildAfter(para1: JSTTreeNode): JSTTreeNode; overload; virtual;
    function getChildBefore(para1: JSTTreeNode): JSTTreeNode; overload; virtual;
    function isNodeSibling(para1: JSTTreeNode): jboolean; overload; virtual;
    function getSiblingCount(): jint; overload; virtual;
    function getNextSibling(): JSTDefaultMutableTreeNode; overload; virtual;
    function getPreviousSibling(): JSTDefaultMutableTreeNode; overload; virtual;
    function isLeaf(): jboolean; overload; virtual;
    function getFirstLeaf(): JSTDefaultMutableTreeNode; overload; virtual;
    function getLastLeaf(): JSTDefaultMutableTreeNode; overload; virtual;
    function getNextLeaf(): JSTDefaultMutableTreeNode; overload; virtual;
    function getPreviousLeaf(): JSTDefaultMutableTreeNode; overload; virtual;
    function getLeafCount(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function clone(): JLObject; overload; virtual;
  end;

  JSTAbstractDocument = class abstract external 'javax.swing.text' name 'AbstractDocument' (JLObject, JSTDocument, JISerializable)
  public
    type
      InnerBidiElement = class;
      Arr1InnerBidiElement = array of InnerBidiElement;
      Arr2InnerBidiElement = array of Arr1InnerBidiElement;
      Arr3InnerBidiElement = array of Arr2InnerBidiElement;
      InnerBidiRootElement = class;
      Arr1InnerBidiRootElement = array of InnerBidiRootElement;
      Arr2InnerBidiRootElement = array of Arr1InnerBidiRootElement;
      Arr3InnerBidiRootElement = array of Arr2InnerBidiRootElement;
      InnerUndoRedoDocumentEvent = class;
      Arr1InnerUndoRedoDocumentEvent = array of InnerUndoRedoDocumentEvent;
      Arr2InnerUndoRedoDocumentEvent = array of Arr1InnerUndoRedoDocumentEvent;
      Arr3InnerUndoRedoDocumentEvent = array of Arr2InnerUndoRedoDocumentEvent;
      InnerDefaultFilterBypass = class;
      Arr1InnerDefaultFilterBypass = array of InnerDefaultFilterBypass;
      Arr2InnerDefaultFilterBypass = array of Arr1InnerDefaultFilterBypass;
      Arr3InnerDefaultFilterBypass = array of Arr2InnerDefaultFilterBypass;
      InnerBidiElement = class external 'javax.swing.text' name 'BidiElement' 
      end;

      InnerBidiRootElement = class external 'javax.swing.text' name 'BidiRootElement' 
      end;

      InnerUndoRedoDocumentEvent = class external 'javax.swing.text' name 'UndoRedoDocumentEvent' 
      end;

      InnerDefaultFilterBypass = class external 'javax.swing.text' name 'DefaultFilterBypass' 
      end;

  public
    type
      InnerAttributeContext = interface;
      Arr1InnerAttributeContext = array of InnerAttributeContext;
      Arr2InnerAttributeContext = array of Arr1InnerAttributeContext;
      Arr3InnerAttributeContext = array of Arr2InnerAttributeContext;
      InnerContent = interface;
      Arr1InnerContent = array of InnerContent;
      Arr2InnerContent = array of Arr1InnerContent;
      Arr3InnerContent = array of Arr2InnerContent;
      InnerAbstractElement = class;
      Arr1InnerAbstractElement = array of InnerAbstractElement;
      Arr2InnerAbstractElement = array of Arr1InnerAbstractElement;
      Arr3InnerAbstractElement = array of Arr2InnerAbstractElement;
      InnerBranchElement = class;
      Arr1InnerBranchElement = array of InnerBranchElement;
      Arr2InnerBranchElement = array of Arr1InnerBranchElement;
      Arr3InnerBranchElement = array of Arr2InnerBranchElement;
      InnerLeafElement = class;
      Arr1InnerLeafElement = array of InnerLeafElement;
      Arr2InnerLeafElement = array of Arr1InnerLeafElement;
      Arr3InnerLeafElement = array of Arr2InnerLeafElement;
      InnerDefaultDocumentEvent = class;
      Arr1InnerDefaultDocumentEvent = array of InnerDefaultDocumentEvent;
      Arr2InnerDefaultDocumentEvent = array of Arr1InnerDefaultDocumentEvent;
      Arr3InnerDefaultDocumentEvent = array of Arr2InnerDefaultDocumentEvent;
      InnerElementEdit = class;
      Arr1InnerElementEdit = array of InnerElementEdit;
      Arr2InnerElementEdit = array of Arr1InnerElementEdit;
      Arr3InnerElementEdit = array of Arr2InnerElementEdit;
      InnerAttributeContext = interface external 'javax.swing.text' name 'AttributeContext' 
        function addAttribute(para1: JSTAttributeSet; para2: JLObject; para3: JLObject): JSTAttributeSet; overload;
        function addAttributes(para1: JSTAttributeSet; para2: JSTAttributeSet): JSTAttributeSet; overload;
        function removeAttribute(para1: JSTAttributeSet; para2: JLObject): JSTAttributeSet; overload;
        function removeAttributes(para1: JSTAttributeSet; para2: JUEnumeration): JSTAttributeSet; overload;
        function removeAttributes(para1: JSTAttributeSet; para2: JSTAttributeSet): JSTAttributeSet; overload;
        function getEmptySet(): JSTAttributeSet; overload;
        procedure reclaim(para1: JSTAttributeSet); overload;
      end;

      InnerContent = interface external 'javax.swing.text' name 'Content' 
        function createPosition(para1: jint): JSTPosition; overload;  // throws javax.swing.text.BadLocationException
        function length(): jint; overload;
        function insertString(para1: jint; para2: JLString): JSUUndoableEdit; overload;  // throws javax.swing.text.BadLocationException
        function remove(para1: jint; para2: jint): JSUUndoableEdit; overload;  // throws javax.swing.text.BadLocationException
        function getString(para1: jint; para2: jint): JLString; overload;  // throws javax.swing.text.BadLocationException
        procedure getChars(para1: jint; para2: jint; para3: JSTSegment); overload;  // throws javax.swing.text.BadLocationException
      end;

      InnerAbstractElement = class abstract external 'javax.swing.text' name 'AbstractElement' 
      end;

      InnerBranchElement = class external 'javax.swing.text' name 'BranchElement' 
      end;

      InnerLeafElement = class external 'javax.swing.text' name 'LeafElement' 
      end;

      InnerDefaultDocumentEvent = class external 'javax.swing.text' name 'DefaultDocumentEvent' 
      end;

      InnerElementEdit = class external 'javax.swing.text' name 'ElementEdit' (JSUAbstractUndoableEdit, JSEDocumentEvent.InnerElementChange)
      public
        constructor create(para1: JSTElement; para2: jint; para3: Arr1JSTElement; para4: Arr1JSTElement); overload;
        constructor create(para1: JSTElement; para2: jint; const para3: array of JSTElement; const para4: array of JSTElement); overload;
        function getElement(): JSTElement; overload; virtual;
        function getIndex(): jint; overload; virtual;
        function getChildrenRemoved(): Arr1JSTElement; overload; virtual;
        function getChildrenAdded(): Arr1JSTElement; overload; virtual;
        procedure redo(); overload; virtual;  // throws javax.swing.undo.CannotRedoException
        procedure undo(); overload; virtual;  // throws javax.swing.undo.CannotUndoException
      end;

  strict protected
    var
      flistenerList: JSEEventListenerList; external name 'listenerList';
  strict protected
    const
      BAD_LOCATION = 'document location failure';
  public
    const
      ParagraphElementName = 'paragraph';
      ContentElementName = 'content';
      SectionElementName = 'section';
      BidiElementName = 'bidi level';
      ElementNameAttribute = '$ename';
  strict protected
    constructor create(para1: JSTAbstractDocument.InnerContent); overload;
    constructor create(para1: JSTAbstractDocument.InnerContent; para2: JSTAbstractDocument.InnerAttributeContext); overload;
  public
    function getDocumentProperties(): JUDictionary; overload; virtual;
    procedure setDocumentProperties(para1: JUDictionary); overload; virtual;
  strict protected
    procedure fireInsertUpdate(para1: JSEDocumentEvent); overload; virtual;
    procedure fireChangedUpdate(para1: JSEDocumentEvent); overload; virtual;
    procedure fireRemoveUpdate(para1: JSEDocumentEvent); overload; virtual;
    procedure fireUndoableEditUpdate(para1: JSEUndoableEditEvent); overload; virtual;
  public
    function getListeners(para1: JLClass): Arr1JUEventListener; overload; virtual;
    function getAsynchronousLoadPriority(): jint; overload; virtual;
    procedure setAsynchronousLoadPriority(para1: jint); overload; virtual;
    procedure setDocumentFilter(para1: JSTDocumentFilter); overload; virtual;
    function getDocumentFilter(): JSTDocumentFilter; overload; virtual;
    procedure render(para1: JLRunnable); overload; virtual;
    function getLength(): jint; overload; virtual;
    procedure addDocumentListener(para1: JSEDocumentListener); overload; virtual;
    procedure removeDocumentListener(para1: JSEDocumentListener); overload; virtual;
    function getDocumentListeners(): Arr1JSEDocumentListener; overload; virtual;
    procedure addUndoableEditListener(para1: JSEUndoableEditListener); overload; virtual;
    procedure removeUndoableEditListener(para1: JSEUndoableEditListener); overload; virtual;
    function getUndoableEditListeners(): Arr1JSEUndoableEditListener; overload; virtual;
    function getProperty(para1: JLObject): JLObject; overload; virtual; final;
    procedure putProperty(para1: JLObject; para2: JLObject); overload; virtual; final;
    procedure remove(para1: jint; para2: jint); overload; virtual;  // throws javax.swing.text.BadLocationException
    procedure replace(para1: jint; para2: jint; para3: JLString; para4: JSTAttributeSet); overload; virtual;  // throws javax.swing.text.BadLocationException
    procedure insertString(para1: jint; para2: JLString; para3: JSTAttributeSet); overload; virtual;  // throws javax.swing.text.BadLocationException
    function getText(para1: jint; para2: jint): JLString; overload; virtual;  // throws javax.swing.text.BadLocationException
    procedure getText(para1: jint; para2: jint; para3: JSTSegment); overload; virtual;  // throws javax.swing.text.BadLocationException
    function createPosition(para1: jint): JSTPosition; overload; virtual;  // throws javax.swing.text.BadLocationException
    function getStartPosition(): JSTPosition; overload; virtual; final;
    function getEndPosition(): JSTPosition; overload; virtual; final;
    function getRootElements(): Arr1JSTElement; overload; virtual;
    function getDefaultRootElement(): JSTElement; overload; virtual; abstract;
    function getBidiRootElement(): JSTElement; overload; virtual;
    function getParagraphElement(para1: jint): JSTElement; overload; virtual; abstract;
  strict protected
    function getAttributeContext(): JSTAbstractDocument.InnerAttributeContext; overload; virtual; final;
    procedure insertUpdate(para1: JSTAbstractDocument.InnerDefaultDocumentEvent; para2: JSTAttributeSet); overload; virtual;
    procedure removeUpdate(para1: JSTAbstractDocument.InnerDefaultDocumentEvent); overload; virtual;
    procedure postRemoveUpdate(para1: JSTAbstractDocument.InnerDefaultDocumentEvent); overload; virtual;
  public
    procedure dump(para1: JIPrintStream); overload; virtual;
  strict protected
    function getContent(): JSTAbstractDocument.InnerContent; overload; virtual; final;
    function createLeafElement(para1: JSTElement; para2: JSTAttributeSet; para3: jint; para4: jint): JSTElement; overload; virtual;
    function createBranchElement(para1: JSTElement; para2: JSTAttributeSet): JSTElement; overload; virtual;
    function getCurrentWriter(): JLThread; overload; virtual; final;
    procedure writeLock(); overload; virtual; final;
    procedure writeUnlock(); overload; virtual; final;
  public
    procedure readLock(); overload; virtual; final;
    procedure readUnlock(); overload; virtual; final;
  end;

  JSUCompoundEdit = class external 'javax.swing.undo' name 'CompoundEdit' (JSUAbstractUndoableEdit)
  strict protected
    var
      fedits: JUVector; external name 'edits';
  public
    constructor create(); overload;
    procedure undo(); overload; virtual;  // throws javax.swing.undo.CannotUndoException
    procedure redo(); overload; virtual;  // throws javax.swing.undo.CannotRedoException
  strict protected
    function lastEdit(): JSUUndoableEdit; overload; virtual;
  public
    procedure die(); overload; virtual;
    function addEdit(para1: JSUUndoableEdit): jboolean; overload; virtual;
    procedure &end(); overload; virtual;
    function canUndo(): jboolean; overload; virtual;
    function canRedo(): jboolean; overload; virtual;
    function isInProgress(): jboolean; overload; virtual;
    function isSignificant(): jboolean; overload; virtual;
    function getPresentationName(): JLString; overload; virtual;
    function getUndoPresentationName(): JLString; overload; virtual;
    function getRedoPresentationName(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSUStateEdit = class external 'javax.swing.undo' name 'StateEdit' (JSUAbstractUndoableEdit)
  strict protected
    const
      RCSID = '$Id: StateEdit.java,v 1.6 1997/10/01 20:05:51 sandipc Exp $';
  strict protected
    var
      fobject: JSUStateEditable; external name 'object';
      fpreState: JUHashtable; external name 'preState';
      fpostState: JUHashtable; external name 'postState';
      fundoRedoName: JLString; external name 'undoRedoName';
  public
    constructor create(para1: JSUStateEditable); overload;
    constructor create(para1: JSUStateEditable; para2: JLString); overload;
  strict protected
    procedure init(para1: JSUStateEditable; para2: JLString); overload; virtual;
  public
    procedure &end(); overload; virtual;
    procedure undo(); overload; virtual;
    procedure redo(); overload; virtual;
    function getPresentationName(): JLString; overload; virtual;
  strict protected
    procedure removeRedundantState(); overload; virtual;
  end;

  JTForwardingJavaFileObject = class external 'javax.tools' name 'ForwardingJavaFileObject' (JTForwardingFileObject, JTJavaFileObject)
  strict protected
    constructor create(para1: JTJavaFileObject); overload;
  public
    function getKind(): JTJavaFileObject.InnerKind; overload; virtual;
    function isNameCompatible(para1: JLString; para2: JTJavaFileObject.InnerKind): jboolean; overload; virtual;
    function getNestingKind(): JLMENestingKind; overload; virtual;
    function getAccessLevel(): JLMEModifier; overload; virtual;
  end;

  JTJavaFileManager = interface external 'javax.tools' name 'JavaFileManager' (JICloseable, JIFlushable, JTOptionChecker)
    type
      InnerLocation = interface;
      Arr1InnerLocation = array of InnerLocation;
      Arr2InnerLocation = array of Arr1InnerLocation;
      Arr3InnerLocation = array of Arr2InnerLocation;
      InnerLocation = interface external 'javax.tools' name 'Location' 
        function getName(): JLString; overload;
        function isOutputLocation(): jboolean; overload;
      end;

    function getClassLoader(para1: JTJavaFileManager.InnerLocation): JLClassLoader; overload;
    function list(para1: JTJavaFileManager.InnerLocation; para2: JLString; para3: JUSet; para4: jboolean): JLIterable; overload;  // throws java.io.IOException
    function inferBinaryName(para1: JTJavaFileManager.InnerLocation; para2: JTJavaFileObject): JLString; overload;
    function isSameFile(para1: JTFileObject; para2: JTFileObject): jboolean; overload;
    function handleOption(para1: JLString; para2: JUIterator): jboolean; overload;
    function hasLocation(para1: JTJavaFileManager.InnerLocation): jboolean; overload;
    function getJavaFileForInput(para1: JTJavaFileManager.InnerLocation; para2: JLString; para3: JTJavaFileObject.InnerKind): JTJavaFileObject; overload;  // throws java.io.IOException
    function getJavaFileForOutput(para1: JTJavaFileManager.InnerLocation; para2: JLString; para3: JTJavaFileObject.InnerKind; para4: JTFileObject): JTJavaFileObject; overload;  // throws java.io.IOException
    function getFileForInput(para1: JTJavaFileManager.InnerLocation; para2: JLString; para3: JLString): JTFileObject; overload;  // throws java.io.IOException
    function getFileForOutput(para1: JTJavaFileManager.InnerLocation; para2: JLString; para3: JLString; para4: JTFileObject): JTFileObject; overload;  // throws java.io.IOException
    procedure flush(); overload;  // throws java.io.IOException
    procedure close(); overload;  // throws java.io.IOException
  end;

  JTSimpleJavaFileObject = class external 'javax.tools' name 'SimpleJavaFileObject' (JLObject, JTJavaFileObject)
  strict protected
    final var
      furi: JNURI; external name 'uri';
      fkind: JTJavaFileObject.InnerKind; external name 'kind';
  strict protected
    constructor create(para1: JNURI; para2: JTJavaFileObject.InnerKind); overload;
  public
    function toUri(): JNURI; overload; virtual;
    function getName(): JLString; overload; virtual;
    function openInputStream(): JIInputStream; overload; virtual;  // throws java.io.IOException
    function openOutputStream(): JIOutputStream; overload; virtual;  // throws java.io.IOException
    function openReader(para1: jboolean): JIReader; overload; virtual;  // throws java.io.IOException
    function getCharContent(para1: jboolean): JLCharSequence; overload; virtual;  // throws java.io.IOException
    function openWriter(): JIWriter; overload; virtual;  // throws java.io.IOException
    function getLastModified(): jlong; overload; virtual;
    function delete(): jboolean; overload; virtual;
    function getKind(): JTJavaFileObject.InnerKind; overload; virtual;
    function isNameCompatible(para1: JLString; para2: JTJavaFileObject.InnerKind): jboolean; overload; virtual;
    function getNestingKind(): JLMENestingKind; overload; virtual;
    function getAccessLevel(): JLMEModifier; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JXBHNotIdentifiableEventImpl = class external 'javax.xml.bind.helpers' name 'NotIdentifiableEventImpl' (JXBHValidationEventImpl, JXBNotIdentifiableEvent)
  public
    constructor create(para1: jint; para2: JLString; para3: JXBValidationEventLocator); overload;
    constructor create(para1: jint; para2: JLString; para3: JXBValidationEventLocator; para4: JLThrowable); overload;
  end;

  JXBHParseConversionEventImpl = class external 'javax.xml.bind.helpers' name 'ParseConversionEventImpl' (JXBHValidationEventImpl, JXBParseConversionEvent)
  public
    constructor create(para1: jint; para2: JLString; para3: JXBValidationEventLocator); overload;
    constructor create(para1: jint; para2: JLString; para3: JXBValidationEventLocator; para4: JLThrowable); overload;
  end;

  JXBHPrintConversionEventImpl = class external 'javax.xml.bind.helpers' name 'PrintConversionEventImpl' (JXBHValidationEventImpl, JXBPrintConversionEvent)
  public
    constructor create(para1: jint; para2: JLString; para3: JXBValidationEventLocator); overload;
    constructor create(para1: jint; para2: JLString; para3: JXBValidationEventLocator; para4: JLThrowable); overload;
  end;

  OJXDIDDOMSubTreeData = class external 'org.jcp.xml.dsig.internal.dom' name 'DOMSubTreeData' (JLObject, JXCNodeSetData)
  public
    type
      InnerDelayedNodeIterator = class;
      Arr1InnerDelayedNodeIterator = array of InnerDelayedNodeIterator;
      Arr2InnerDelayedNodeIterator = array of Arr1InnerDelayedNodeIterator;
      Arr3InnerDelayedNodeIterator = array of Arr2InnerDelayedNodeIterator;
      InnerDelayedNodeIterator = class external 'org.jcp.xml.dsig.internal.dom' name 'DelayedNodeIterator' 
      end;

  public
    constructor create(para1: OWDNode; para2: jboolean); overload;
    function iterator(): JUIterator; overload; virtual;
    function getRoot(): OWDNode; overload; virtual;
    function excludeComments(): jboolean; overload; virtual;
  end;

  OJXDIDApacheNodeSetData = class external 'org.jcp.xml.dsig.internal.dom' name 'ApacheNodeSetData' (JLObject, OJXDIDApacheData, JXCNodeSetData)
  public
    constructor create(para1: CSOAXISSXMLSignatureInput); overload;
    function iterator(): JUIterator; overload; virtual;
    function getXMLSignatureInput(): CSOAXISSXMLSignatureInput; overload; virtual;
  end;

  OJXDIDApacheOctetStreamData = class external 'org.jcp.xml.dsig.internal.dom' name 'ApacheOctetStreamData' (JXCOctetStreamData, OJXDIDApacheData)
  public
    constructor create(para1: CSOAXISSXMLSignatureInput); overload;  // throws com.sun.org.apache.xml.internal.security.c14n.CanonicalizationException, java.io.IOException
    function getXMLSignatureInput(): CSOAXISSXMLSignatureInput; overload; virtual;
  end;

  JXCDDDOMSignContext = class external 'javax.xml.crypto.dsig.dom' name 'DOMSignContext' (JXCDDOMCryptoContext, JXCDXMLSignContext)
  public
    constructor create(para1: JSKey; para2: OWDNode); overload;
    constructor create(para1: JSKey; para2: OWDNode; para3: OWDNode); overload;
    constructor create(para1: JXCKeySelector; para2: OWDNode); overload;
    constructor create(para1: JXCKeySelector; para2: OWDNode; para3: OWDNode); overload;
    procedure setParent(para1: OWDNode); overload; virtual;
    procedure setNextSibling(para1: OWDNode); overload; virtual;
    function getParent(): OWDNode; overload; virtual;
    function getNextSibling(): OWDNode; overload; virtual;
  end;

  JXCDDDOMValidateContext = class external 'javax.xml.crypto.dsig.dom' name 'DOMValidateContext' (JXCDDOMCryptoContext, JXCDXMLValidateContext)
  public
    constructor create(para1: JXCKeySelector; para2: OWDNode); overload;
    constructor create(para1: JSKey; para2: OWDNode); overload;
    procedure setNode(para1: OWDNode); overload; virtual;
    function getNode(): OWDNode; overload; virtual;
  end;

  JXCDCanonicalizationMethod = interface external 'javax.xml.crypto.dsig' name 'CanonicalizationMethod' (JXCDTransform)
    const
      INCLUSIVE = 'http://www.w3.org/TR/2001/REC-xml-c14n-20010315';
      INCLUSIVE_WITH_COMMENTS = 'http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments';
      EXCLUSIVE = 'http://www.w3.org/2001/10/xml-exc-c14n#';
      EXCLUSIVE_WITH_COMMENTS = 'http://www.w3.org/2001/10/xml-exc-c14n#WithComments';
    function getParameterSpec(): JSSAlgorithmParameterSpec; overload;
  end;

  JXCDTransformService = class abstract external 'javax.xml.crypto.dsig' name 'TransformService' (JLObject, JXCDTransform)
  public
    type
      InnerMechanismMapEntry = class;
      Arr1InnerMechanismMapEntry = array of InnerMechanismMapEntry;
      Arr2InnerMechanismMapEntry = array of Arr1InnerMechanismMapEntry;
      Arr3InnerMechanismMapEntry = array of Arr2InnerMechanismMapEntry;
      InnerMechanismMapEntry = class external 'javax.xml.crypto.dsig' name 'MechanismMapEntry' 
      end;

  strict protected
    constructor create(); overload;
  public
    class function getInstance(para1: JLString; para2: JLString): JXCDTransformService; static; overload;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString; para3: JSProvider): JXCDTransformService; static; overload;  // throws java.security.NoSuchAlgorithmException
    class function getInstance(para1: JLString; para2: JLString; para3: JLString): JXCDTransformService; static; overload;  // throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
    function getMechanismType(): JLString; overload; virtual; final;
    function getAlgorithm(): JLString; overload; virtual; final;
    function getProvider(): JSProvider; overload; virtual; final;
    procedure init(para1: JXCDSTransformParameterSpec); overload; virtual; abstract;  // throws java.security.InvalidAlgorithmParameterException
    procedure marshalParams(para1: JXCXMLStructure; para2: JXCXMLCryptoContext); overload; virtual; abstract;  // throws javax.xml.crypto.MarshalException
    procedure init(para1: JXCXMLStructure; para2: JXCXMLCryptoContext); overload; virtual; abstract;  // throws java.security.InvalidAlgorithmParameterException
  end;

  OJXDIDDOMCryptoBinary = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'DOMCryptoBinary' (OJXDIDDOMStructure)
  public
    constructor create(para1: JMBigInteger); overload;
    constructor create(para1: OWDNode); overload;  // throws javax.xml.crypto.MarshalException
    function getBigNum(): JMBigInteger; overload; virtual;
    procedure marshal(para1: OWDNode; para2: JLString; para3: JXCDDOMCryptoContext); overload; virtual;  // throws javax.xml.crypto.MarshalException
  end;

  OJXDIDDOMDigestMethod = class abstract external 'org.jcp.xml.dsig.internal.dom' name 'DOMDigestMethod' (OJXDIDDOMStructure, JXCDDigestMethod)
  public
    type
      InnerSHA1 = class;
      Arr1InnerSHA1 = array of InnerSHA1;
      Arr2InnerSHA1 = array of Arr1InnerSHA1;
      Arr3InnerSHA1 = array of Arr2InnerSHA1;
      InnerSHA256 = class;
      Arr1InnerSHA256 = array of InnerSHA256;
      Arr2InnerSHA256 = array of Arr1InnerSHA256;
      Arr3InnerSHA256 = array of Arr2InnerSHA256;
      InnerSHA384 = class;
      Arr1InnerSHA384 = array of InnerSHA384;
      Arr2InnerSHA384 = array of Arr1InnerSHA384;
      Arr3InnerSHA384 = array of Arr2InnerSHA384;
      InnerSHA512 = class;
      Arr1InnerSHA512 = array of InnerSHA512;
      Arr2InnerSHA512 = array of Arr1InnerSHA512;
      Arr3InnerSHA512 = array of Arr2InnerSHA512;
      InnerSHA1 = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'SHA1' 
      end;

      InnerSHA256 = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'SHA256' 
      end;

      InnerSHA384 = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'SHA384' 
      end;

      InnerSHA512 = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'SHA512' 
      end;

  public
    function getParameterSpec(): JSSAlgorithmParameterSpec; overload; virtual; final;
    procedure marshal(para1: OWDNode; para2: JLString; para3: JXCDDOMCryptoContext); overload; virtual;  // throws javax.xml.crypto.MarshalException
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  OJXDIDDOMKeyInfo = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'DOMKeyInfo' (OJXDIDDOMStructure, JXCDKKeyInfo)
  public
    constructor create(para1: JUList; para2: JLString); overload;
    constructor create(para1: OWDElement; para2: JXCXMLCryptoContext); overload;  // throws javax.xml.crypto.MarshalException
    function getId(): JLString; overload; virtual;
    function getContent(): JUList; overload; virtual;
    procedure marshal(para1: JXCXMLStructure; para2: JXCXMLCryptoContext); overload; virtual;  // throws javax.xml.crypto.MarshalException
    procedure marshal(para1: OWDNode; para2: JLString; para3: JXCDDOMCryptoContext); overload; virtual;  // throws javax.xml.crypto.MarshalException
    procedure marshal(para1: OWDNode; para2: OWDNode; para3: JLString; para4: JXCDDOMCryptoContext); overload; virtual;  // throws javax.xml.crypto.MarshalException
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  OJXDIDDOMKeyName = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'DOMKeyName' (OJXDIDDOMStructure, JXCDKKeyName)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: OWDElement); overload;
    function getName(): JLString; overload; virtual;
    procedure marshal(para1: OWDNode; para2: JLString; para3: JXCDDOMCryptoContext); overload; virtual;  // throws javax.xml.crypto.MarshalException
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  OJXDIDDOMKeyValue = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'DOMKeyValue' (OJXDIDDOMStructure, JXCDKKeyValue)
  public
    constructor create(para1: JSPublicKey); overload;  // throws java.security.KeyException
    constructor create(para1: OWDElement); overload;  // throws javax.xml.crypto.MarshalException
    function getPublicKey(): JSPublicKey; overload; virtual;  // throws java.security.KeyException
    procedure marshal(para1: OWDNode; para2: JLString; para3: JXCDDOMCryptoContext); overload; virtual;  // throws javax.xml.crypto.MarshalException
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  OJXDIDDOMManifest = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'DOMManifest' (OJXDIDDOMStructure, JXCDManifest)
  public
    constructor create(para1: JUList; para2: JLString); overload;
    constructor create(para1: OWDElement; para2: JXCXMLCryptoContext); overload;  // throws javax.xml.crypto.MarshalException
    function getId(): JLString; overload; virtual;
    function getReferences(): JUList; overload; virtual;
    procedure marshal(para1: OWDNode; para2: JLString; para3: JXCDDOMCryptoContext); overload; virtual;  // throws javax.xml.crypto.MarshalException
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  OJXDIDDOMPGPData = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'DOMPGPData' (OJXDIDDOMStructure, JXCDKPGPData)
  public
    constructor create(para1: Arr1jbyte; para2: JUList); overload;
    constructor create(const para1: array of jbyte; para2: JUList); overload;
    constructor create(para1: Arr1jbyte; para2: Arr1jbyte; para3: JUList); overload;
    constructor create(const para1: array of jbyte; const para2: array of jbyte; para3: JUList); overload;
    constructor create(para1: OWDElement); overload;  // throws javax.xml.crypto.MarshalException
    function getKeyId(): Arr1jbyte; overload; virtual;
    function getKeyPacket(): Arr1jbyte; overload; virtual;
    function getExternalElements(): JUList; overload; virtual;
    procedure marshal(para1: OWDNode; para2: JLString; para3: JXCDDOMCryptoContext); overload; virtual;  // throws javax.xml.crypto.MarshalException
  end;

  OJXDIDDOMReference = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'DOMReference' (OJXDIDDOMStructure, JXCDReference, JXCDDOMURIReference)
  public
    constructor create(para1: JLString; para2: JLString; para3: JXCDDigestMethod; para4: JUList; para5: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: JXCDDigestMethod; para4: JUList; para5: JXCData; para6: JUList; para7: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: JXCDDigestMethod; para4: JUList; para5: JXCData; para6: JUList; para7: JLString; para8: Arr1jbyte); overload;
    constructor create(para1: JLString; para2: JLString; para3: JXCDDigestMethod; para4: JUList; para5: JXCData; para6: JUList; para7: JLString; const para8: array of jbyte); overload;
    constructor create(para1: OWDElement; para2: JXCXMLCryptoContext); overload;  // throws javax.xml.crypto.MarshalException
    function getDigestMethod(): JXCDDigestMethod; overload; virtual;
    function getId(): JLString; overload; virtual;
    function getURI(): JLString; overload; virtual;
    function getType(): JLString; overload; virtual;
    function getTransforms(): JUList; overload; virtual;
    function getDigestValue(): Arr1jbyte; overload; virtual;
    function getCalculatedDigestValue(): Arr1jbyte; overload; virtual;
    procedure marshal(para1: OWDNode; para2: JLString; para3: JXCDDOMCryptoContext); overload; virtual;  // throws javax.xml.crypto.MarshalException
    procedure digest(para1: JXCDXMLSignContext); overload; virtual;  // throws javax.xml.crypto.dsig.XMLSignatureException
    function validate(para1: JXCDXMLValidateContext): jboolean; overload; virtual;  // throws javax.xml.crypto.dsig.XMLSignatureException
    function getDereferencedData(): JXCData; overload; virtual;
    function getDigestInputStream(): JIInputStream; overload; virtual;
    function getHere(): OWDNode; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  OJXDIDDOMRetrievalMethod = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'DOMRetrievalMethod' (OJXDIDDOMStructure, JXCDKRetrievalMethod, JXCDDOMURIReference)
  public
    constructor create(para1: JLString; para2: JLString; para3: JUList); overload;
    constructor create(para1: OWDElement; para2: JXCXMLCryptoContext); overload;  // throws javax.xml.crypto.MarshalException
    function getURI(): JLString; overload; virtual;
    function getType(): JLString; overload; virtual;
    function getTransforms(): JUList; overload; virtual;
    procedure marshal(para1: OWDNode; para2: JLString; para3: JXCDDOMCryptoContext); overload; virtual;  // throws javax.xml.crypto.MarshalException
    function getHere(): OWDNode; overload; virtual;
    function dereference(para1: JXCXMLCryptoContext): JXCData; overload; virtual;  // throws javax.xml.crypto.URIReferenceException
    function dereferenceAsXMLStructure(para1: JXCXMLCryptoContext): JXCXMLStructure; overload; virtual;  // throws javax.xml.crypto.URIReferenceException
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  OJXDIDDOMSignatureMethod = class abstract external 'org.jcp.xml.dsig.internal.dom' name 'DOMSignatureMethod' (OJXDIDDOMStructure, JXCDSignatureMethod)
  public
    type
      InnerSHA1withDSA = class;
      Arr1InnerSHA1withDSA = array of InnerSHA1withDSA;
      Arr2InnerSHA1withDSA = array of Arr1InnerSHA1withDSA;
      Arr3InnerSHA1withDSA = array of Arr2InnerSHA1withDSA;
      InnerSHA1withRSA = class;
      Arr1InnerSHA1withRSA = array of InnerSHA1withRSA;
      Arr2InnerSHA1withRSA = array of Arr1InnerSHA1withRSA;
      Arr3InnerSHA1withRSA = array of Arr2InnerSHA1withRSA;
      InnerSHA256withRSA = class;
      Arr1InnerSHA256withRSA = array of InnerSHA256withRSA;
      Arr2InnerSHA256withRSA = array of Arr1InnerSHA256withRSA;
      Arr3InnerSHA256withRSA = array of Arr2InnerSHA256withRSA;
      InnerSHA384withRSA = class;
      Arr1InnerSHA384withRSA = array of InnerSHA384withRSA;
      Arr2InnerSHA384withRSA = array of Arr1InnerSHA384withRSA;
      Arr3InnerSHA384withRSA = array of Arr2InnerSHA384withRSA;
      InnerSHA512withRSA = class;
      Arr1InnerSHA512withRSA = array of InnerSHA512withRSA;
      Arr2InnerSHA512withRSA = array of Arr1InnerSHA512withRSA;
      Arr3InnerSHA512withRSA = array of Arr2InnerSHA512withRSA;
      InnerSHA1withDSA = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'SHA1withDSA' 
      end;

      InnerSHA1withRSA = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'SHA1withRSA' 
      end;

      InnerSHA256withRSA = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'SHA256withRSA' 
      end;

      InnerSHA384withRSA = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'SHA384withRSA' 
      end;

      InnerSHA512withRSA = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'SHA512withRSA' 
      end;

  public
    function getParameterSpec(): JSSAlgorithmParameterSpec; overload; virtual; final;
    procedure marshal(para1: OWDNode; para2: JLString; para3: JXCDDOMCryptoContext); overload; virtual;  // throws javax.xml.crypto.MarshalException
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  OJXDIDDOMSignatureProperties = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'DOMSignatureProperties' (OJXDIDDOMStructure, JXCDSignatureProperties)
  public
    constructor create(para1: JUList; para2: JLString); overload;
    constructor create(para1: OWDElement); overload;  // throws javax.xml.crypto.MarshalException
    function getProperties(): JUList; overload; virtual;
    function getId(): JLString; overload; virtual;
    procedure marshal(para1: OWDNode; para2: JLString; para3: JXCDDOMCryptoContext); overload; virtual;  // throws javax.xml.crypto.MarshalException
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  OJXDIDDOMSignatureProperty = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'DOMSignatureProperty' (OJXDIDDOMStructure, JXCDSignatureProperty)
  public
    constructor create(para1: JUList; para2: JLString; para3: JLString); overload;
    constructor create(para1: OWDElement); overload;  // throws javax.xml.crypto.MarshalException
    function getContent(): JUList; overload; virtual;
    function getId(): JLString; overload; virtual;
    function getTarget(): JLString; overload; virtual;
    procedure marshal(para1: OWDNode; para2: JLString; para3: JXCDDOMCryptoContext); overload; virtual;  // throws javax.xml.crypto.MarshalException
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  OJXDIDDOMSignedInfo = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'DOMSignedInfo' (OJXDIDDOMStructure, JXCDSignedInfo)
  public
    constructor create(para1: JXCDCanonicalizationMethod; para2: JXCDSignatureMethod; para3: JUList); overload;
    constructor create(para1: JXCDCanonicalizationMethod; para2: JXCDSignatureMethod; para3: JUList; para4: JLString); overload;
    constructor create(para1: OWDElement; para2: JXCXMLCryptoContext); overload;  // throws javax.xml.crypto.MarshalException
    function getCanonicalizationMethod(): JXCDCanonicalizationMethod; overload; virtual;
    function getSignatureMethod(): JXCDSignatureMethod; overload; virtual;
    function getId(): JLString; overload; virtual;
    function getReferences(): JUList; overload; virtual;
    function getCanonicalizedData(): JIInputStream; overload; virtual;
    procedure canonicalize(para1: JXCXMLCryptoContext; para2: JIByteArrayOutputStream); overload; virtual;  // throws javax.xml.crypto.dsig.XMLSignatureException
    procedure marshal(para1: OWDNode; para2: JLString; para3: JXCDDOMCryptoContext); overload; virtual;  // throws javax.xml.crypto.MarshalException
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  OJXDIDDOMTransform = class external 'org.jcp.xml.dsig.internal.dom' name 'DOMTransform' (OJXDIDDOMStructure, JXCDTransform)
  strict protected
    var
      fspi: JXCDTransformService; external name 'spi';
  public
    constructor create(para1: JXCDTransformService); overload;
    constructor create(para1: OWDElement; para2: JXCXMLCryptoContext); overload;  // throws javax.xml.crypto.MarshalException
    function getParameterSpec(): JSSAlgorithmParameterSpec; overload; virtual; final;
    function getAlgorithm(): JLString; overload; virtual; final;
    procedure marshal(para1: OWDNode; para2: JLString; para3: JXCDDOMCryptoContext); overload; virtual;  // throws javax.xml.crypto.MarshalException
    function transform(para1: JXCData; para2: JXCXMLCryptoContext): JXCData; overload; virtual;  // throws javax.xml.crypto.dsig.TransformException
    function transform(para1: JXCData; para2: JXCXMLCryptoContext; para3: JIOutputStream): JXCData; overload; virtual;  // throws javax.xml.crypto.dsig.TransformException
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  OJXDIDDOMX509Data = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'DOMX509Data' (OJXDIDDOMStructure, JXCDKX509Data)
  public
    constructor create(para1: JUList); overload;
    constructor create(para1: OWDElement); overload;  // throws javax.xml.crypto.MarshalException
    function getContent(): JUList; overload; virtual;
    procedure marshal(para1: OWDNode; para2: JLString; para3: JXCDDOMCryptoContext); overload; virtual;  // throws javax.xml.crypto.MarshalException
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  OJXDIDDOMX509IssuerSerial = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'DOMX509IssuerSerial' (OJXDIDDOMStructure, JXCDKX509IssuerSerial)
  public
    constructor create(para1: JLString; para2: JMBigInteger); overload;
    constructor create(para1: OWDElement); overload;
    function getIssuerName(): JLString; overload; virtual;
    function getSerialNumber(): JMBigInteger; overload; virtual;
    procedure marshal(para1: OWDNode; para2: JLString; para3: JXCDDOMCryptoContext); overload; virtual;  // throws javax.xml.crypto.MarshalException
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  OJXDIDDOMXMLObject = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'DOMXMLObject' (OJXDIDDOMStructure, JXCDXMLObject)
  public
    constructor create(para1: JUList; para2: JLString; para3: JLString; para4: JLString); overload;
    constructor create(para1: OWDElement; para2: JXCXMLCryptoContext); overload;  // throws javax.xml.crypto.MarshalException
    function getContent(): JUList; overload; virtual;
    function getId(): JLString; overload; virtual;
    function getMimeType(): JLString; overload; virtual;
    function getEncoding(): JLString; overload; virtual;
    procedure marshal(para1: OWDNode; para2: JLString; para3: JXCDDOMCryptoContext); overload; virtual;  // throws javax.xml.crypto.MarshalException
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  OJXDIDDOMXMLSignature = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'DOMXMLSignature' (OJXDIDDOMStructure, JXCDXMLSignature)
  public
    type
      InnerDOMSignatureValue = class;
      Arr1InnerDOMSignatureValue = array of InnerDOMSignatureValue;
      Arr2InnerDOMSignatureValue = array of Arr1InnerDOMSignatureValue;
      Arr3InnerDOMSignatureValue = array of Arr2InnerDOMSignatureValue;
      InnerDOMSignatureValue = class external 'org.jcp.xml.dsig.internal.dom' name 'DOMSignatureValue' 
      end;

  public
    constructor create(para1: JXCDSignedInfo; para2: JXCDKKeyInfo; para3: JUList; para4: JLString; para5: JLString); overload;
    constructor create(para1: OWDElement; para2: JXCXMLCryptoContext); overload;  // throws javax.xml.crypto.MarshalException
    function getId(): JLString; overload; virtual;
    function getKeyInfo(): JXCDKKeyInfo; overload; virtual;
    function getSignedInfo(): JXCDSignedInfo; overload; virtual;
    function getObjects(): JUList; overload; virtual;
    function getSignatureValue(): JXCDXMLSignature.InnerSignatureValue; overload; virtual;
    function getKeySelectorResult(): JXCKeySelectorResult; overload; virtual;
    procedure marshal(para1: OWDNode; para2: JLString; para3: JXCDDOMCryptoContext); overload; virtual;  // throws javax.xml.crypto.MarshalException
    procedure marshal(para1: OWDNode; para2: OWDNode; para3: JLString; para4: JXCDDOMCryptoContext); overload; virtual;  // throws javax.xml.crypto.MarshalException
    function validate(para1: JXCDXMLValidateContext): jboolean; overload; virtual;  // throws javax.xml.crypto.dsig.XMLSignatureException
    procedure sign(para1: JXCDXMLSignContext); overload; virtual;  // throws javax.xml.crypto.MarshalException, javax.xml.crypto.dsig.XMLSignatureException
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JXSUStreamReaderDelegate = class external 'javax.xml.stream.util' name 'StreamReaderDelegate' (JLObject, JXSXMLStreamReader)
  public
    constructor create(); overload;
    constructor create(para1: JXSXMLStreamReader); overload;
    procedure setParent(para1: JXSXMLStreamReader); overload; virtual;
    function getParent(): JXSXMLStreamReader; overload; virtual;
    function next(): jint; overload; virtual;  // throws javax.xml.stream.XMLStreamException
    function nextTag(): jint; overload; virtual;  // throws javax.xml.stream.XMLStreamException
    function getElementText(): JLString; overload; virtual;  // throws javax.xml.stream.XMLStreamException
    procedure require(para1: jint; para2: JLString; para3: JLString); overload; virtual;  // throws javax.xml.stream.XMLStreamException
    function hasNext(): jboolean; overload; virtual;  // throws javax.xml.stream.XMLStreamException
    procedure close(); overload; virtual;  // throws javax.xml.stream.XMLStreamException
    function getNamespaceURI(para1: JLString): JLString; overload; virtual;
    function getNamespaceContext(): JXNNamespaceContext; overload; virtual;
    function isStartElement(): jboolean; overload; virtual;
    function isEndElement(): jboolean; overload; virtual;
    function isCharacters(): jboolean; overload; virtual;
    function isWhiteSpace(): jboolean; overload; virtual;
    function getAttributeValue(para1: JLString; para2: JLString): JLString; overload; virtual;
    function getAttributeCount(): jint; overload; virtual;
    function getAttributeName(para1: jint): JXNQName; overload; virtual;
    function getAttributePrefix(para1: jint): JLString; overload; virtual;
    function getAttributeNamespace(para1: jint): JLString; overload; virtual;
    function getAttributeLocalName(para1: jint): JLString; overload; virtual;
    function getAttributeType(para1: jint): JLString; overload; virtual;
    function getAttributeValue(para1: jint): JLString; overload; virtual;
    function isAttributeSpecified(para1: jint): jboolean; overload; virtual;
    function getNamespaceCount(): jint; overload; virtual;
    function getNamespacePrefix(para1: jint): JLString; overload; virtual;
    function getNamespaceURI(para1: jint): JLString; overload; virtual;
    function getEventType(): jint; overload; virtual;
    function getText(): JLString; overload; virtual;
    function getTextCharacters(para1: jint; para2: Arr1jchar; para3: jint; para4: jint): jint; overload; virtual;  // throws javax.xml.stream.XMLStreamException
    function getTextCharacters(para1: jint; var para2: array of jchar; para3: jint; para4: jint): jint; overload; virtual;  // throws javax.xml.stream.XMLStreamException
    function getTextCharacters(): Arr1jchar; overload; virtual;
    function getTextStart(): jint; overload; virtual;
    function getTextLength(): jint; overload; virtual;
    function getEncoding(): JLString; overload; virtual;
    function hasText(): jboolean; overload; virtual;
    function getLocation(): JXSLocation; overload; virtual;
    function getName(): JXNQName; overload; virtual;
    function getLocalName(): JLString; overload; virtual;
    function hasName(): jboolean; overload; virtual;
    function getNamespaceURI(): JLString; overload; virtual;
    function getPrefix(): JLString; overload; virtual;
    function getVersion(): JLString; overload; virtual;
    function isStandalone(): jboolean; overload; virtual;
    function standaloneSet(): jboolean; overload; virtual;
    function getCharacterEncodingScheme(): JLString; overload; virtual;
    function getPITarget(): JLString; overload; virtual;
    function getPIData(): JLString; overload; virtual;
    function getProperty(para1: JLString): JLObject; overload; virtual;
  end;

  JXSEAttribute = interface external 'javax.xml.stream.events' name 'Attribute' (JXSEXMLEvent)
    function getName(): JXNQName; overload;
    function getValue(): JLString; overload;
    function getDTDType(): JLString; overload;
    function isSpecified(): jboolean; overload;
  end;

  JXSECharacters = interface external 'javax.xml.stream.events' name 'Characters' (JXSEXMLEvent)
    function getData(): JLString; overload;
    function isWhiteSpace(): jboolean; overload;
    function isCData(): jboolean; overload;
    function isIgnorableWhiteSpace(): jboolean; overload;
  end;

  JXSEComment = interface external 'javax.xml.stream.events' name 'Comment' (JXSEXMLEvent)
    function getText(): JLString; overload;
  end;

  JXSEDTD = interface external 'javax.xml.stream.events' name 'DTD' (JXSEXMLEvent)
    function getDocumentTypeDeclaration(): JLString; overload;
    function getProcessedDTD(): JLObject; overload;
    function getNotations(): JUList; overload;
    function getEntities(): JUList; overload;
  end;

  JXSEEndDocument = interface external 'javax.xml.stream.events' name 'EndDocument' (JXSEXMLEvent)
  end;

  JXSEEndElement = interface external 'javax.xml.stream.events' name 'EndElement' (JXSEXMLEvent)
    function getName(): JXNQName; overload;
    function getNamespaces(): JUIterator; overload;
  end;

  JXSEEntityDeclaration = interface external 'javax.xml.stream.events' name 'EntityDeclaration' (JXSEXMLEvent)
    function getPublicId(): JLString; overload;
    function getSystemId(): JLString; overload;
    function getName(): JLString; overload;
    function getNotationName(): JLString; overload;
    function getReplacementText(): JLString; overload;
    function getBaseURI(): JLString; overload;
  end;

  JXSEEntityReference = interface external 'javax.xml.stream.events' name 'EntityReference' (JXSEXMLEvent)
    function getDeclaration(): JXSEEntityDeclaration; overload;
    function getName(): JLString; overload;
  end;

  JXSENotationDeclaration = interface external 'javax.xml.stream.events' name 'NotationDeclaration' (JXSEXMLEvent)
    function getName(): JLString; overload;
    function getPublicId(): JLString; overload;
    function getSystemId(): JLString; overload;
  end;

  JXSEProcessingInstruction = interface external 'javax.xml.stream.events' name 'ProcessingInstruction' (JXSEXMLEvent)
    function getTarget(): JLString; overload;
    function getData(): JLString; overload;
  end;

  JXSEStartDocument = interface external 'javax.xml.stream.events' name 'StartDocument' (JXSEXMLEvent)
    function getSystemId(): JLString; overload;
    function getCharacterEncodingScheme(): JLString; overload;
    function encodingSet(): jboolean; overload;
    function isStandalone(): jboolean; overload;
    function standaloneSet(): jboolean; overload;
    function getVersion(): JLString; overload;
  end;

  JXSEStartElement = interface external 'javax.xml.stream.events' name 'StartElement' (JXSEXMLEvent)
    function getName(): JXNQName; overload;
    function getAttributes(): JUIterator; overload;
    function getNamespaces(): JUIterator; overload;
    function getAttributeByName(para1: JXNQName): JXSEAttribute; overload;
    function getNamespaceContext(): JXNNamespaceContext; overload;
    function getNamespaceURI(para1: JLString): JLString; overload;
  end;

  JXSSAAJResult = class external 'javax.xml.soap' name 'SAAJResult' (JXTDDOMResult)
  public
    constructor create(); overload;  // throws javax.xml.soap.SOAPException
    constructor create(para1: JLString); overload;  // throws javax.xml.soap.SOAPException
    constructor create(para1: JXSSOAPMessage); overload;
    constructor create(para1: JXSSOAPElement); overload;
    function getResult(): JXSNode; overload; virtual;
  end;

  JXBUJAXBResult = class external 'javax.xml.bind.util' name 'JAXBResult' (JXTSSAXResult)
  public
    constructor create(para1: JXBJAXBContext); overload;  // throws javax.xml.bind.JAXBException
    constructor create(para1: JXBUnmarshaller); overload;  // throws javax.xml.bind.JAXBException
    function getResult(): JLObject; overload; virtual;  // throws javax.xml.bind.JAXBException
  end;

  JXBUJAXBSource = class external 'javax.xml.bind.util' name 'JAXBSource' (JXTSSAXSource)
  public
    constructor create(para1: JXBJAXBContext; para2: JLObject); overload;  // throws javax.xml.bind.JAXBException
    constructor create(para1: JXBMarshaller; para2: JLObject); overload;  // throws javax.xml.bind.JAXBException
  end;

  OOCDynArray = interface external 'org.omg.CORBA' name 'DynArray' (OOCObject, OOCDynAny)
    function get_elements(): Arr1OOCAny; overload;
    procedure set_elements(para1: Arr1OOCAny); overload;  // throws org.omg.CORBA.DynAnyPackage.InvalidSeq
    procedure set_elements(var para1: array of OOCAny); overload;  // throws org.omg.CORBA.DynAnyPackage.InvalidSeq
  end;

  OOCDynEnum = interface external 'org.omg.CORBA' name 'DynEnum' (OOCObject, OOCDynAny)
    function value_as_string(): JLString; overload;
    procedure value_as_string(para1: JLString); overload;
    function value_as_ulong(): jint; overload;
    procedure value_as_ulong(para1: jint); overload;
  end;

  OOCDynFixed = interface external 'org.omg.CORBA' name 'DynFixed' (OOCObject, OOCDynAny)
    function get_value(): Arr1jbyte; overload;
    procedure set_value(para1: Arr1jbyte); overload;  // throws org.omg.CORBA.DynAnyPackage.InvalidValue
    procedure set_value(var para1: array of jbyte); overload;  // throws org.omg.CORBA.DynAnyPackage.InvalidValue
  end;

  OOCDynSequence = interface external 'org.omg.CORBA' name 'DynSequence' (OOCObject, OOCDynAny)
    function length(): jint; overload;
    procedure length(para1: jint); overload;
    function get_elements(): Arr1OOCAny; overload;
    procedure set_elements(para1: Arr1OOCAny); overload;  // throws org.omg.CORBA.DynAnyPackage.InvalidSeq
    procedure set_elements(var para1: array of OOCAny); overload;  // throws org.omg.CORBA.DynAnyPackage.InvalidSeq
  end;

  OOCDynStruct = interface external 'org.omg.CORBA' name 'DynStruct' (OOCObject, OOCDynAny)
    function current_member_name(): JLString; overload;
    function current_member_kind(): OOCTCKind; overload;
    function get_members(): Arr1OOCNameValuePair; overload;
    procedure set_members(para1: Arr1OOCNameValuePair); overload;  // throws org.omg.CORBA.DynAnyPackage.InvalidSeq
    procedure set_members(var para1: array of OOCNameValuePair); overload;  // throws org.omg.CORBA.DynAnyPackage.InvalidSeq
  end;

  OOCDynUnion = interface external 'org.omg.CORBA' name 'DynUnion' (OOCObject, OOCDynAny)
    function set_as_default(): jboolean; overload;
    procedure set_as_default(para1: jboolean); overload;
    function discriminator(): OOCDynAny; overload;
    function discriminator_kind(): OOCTCKind; overload;
    function member(): OOCDynAny; overload;
    function member_name(): JLString; overload;
    procedure member_name(para1: JLString); overload;
    function member_kind(): OOCTCKind; overload;
  end;

  OOCDynValue = interface external 'org.omg.CORBA' name 'DynValue' (OOCObject, OOCDynAny)
    function current_member_name(): JLString; overload;
    function current_member_kind(): OOCTCKind; overload;
    function get_members(): Arr1OOCNameValuePair; overload;
    procedure set_members(para1: Arr1OOCNameValuePair); overload;  // throws org.omg.CORBA.DynAnyPackage.InvalidSeq
    procedure set_members(var para1: array of OOCNameValuePair); overload;  // throws org.omg.CORBA.DynAnyPackage.InvalidSeq
  end;

  OOCDynamicImplementation = class external 'org.omg.CORBA' name 'DynamicImplementation' (OOCPObjectImpl)
  public
    constructor create(); overload;
    procedure invoke(para1: OOCServerRequest); overload; virtual;
    function _ids(): Arr1JLString; overload; virtual;
  end;

  OOC_2_3PObjectImpl = class abstract external 'org.omg.CORBA_2_3.portable' name 'ObjectImpl' (OOCPObjectImpl)
  public
    constructor create(); overload;
    function _get_codebase(): JLString; overload; virtual;
  end;

  OOCNamingContextExtPOA = class abstract external 'org.omg.CosNaming' name 'NamingContextExtPOA' (OOPServant, OOCNamingContextExtOperations, OOCPInvokeHandler)
  public
    constructor create(); overload;
    function _invoke(para1: JLString; para2: OOCPInputStream; para3: OOCPResponseHandler): OOCPOutputStream; overload; virtual;
    function _all_interfaces(para1: OOPPOA; para2: Arr1jbyte): Arr1JLString; overload; virtual;
    function _all_interfaces(para1: OOPPOA; var para2: array of jbyte): Arr1JLString; overload; virtual;
    function _this(): OOCNamingContextExt; overload; virtual;
    function _this(para1: OOCORB): OOCNamingContextExt; overload; virtual;
  end;

  OODDynValueBoxOperations = interface external 'org.omg.DynamicAny' name 'DynValueBoxOperations' (OODDynValueCommonOperations)
    function get_boxed_value(): OOCAny; overload;  // throws org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure set_boxed_value(para1: OOCAny); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch
    function get_boxed_value_as_dyn_any(): OODDynAny; overload;  // throws org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure set_boxed_value_as_dyn_any(para1: OODDynAny); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch
  end;

  OODDynValueOperations = interface external 'org.omg.DynamicAny' name 'DynValueOperations' (OODDynValueCommonOperations)
    function current_member_name(): JLString; overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function current_member_kind(): OOCTCKind; overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_members(): Arr1OODNameValuePair; overload;  // throws org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure set_members(para1: Arr1OODNameValuePair); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure set_members(var para1: array of OODNameValuePair); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_members_as_dyn_any(): Arr1OODNameDynAnyPair; overload;  // throws org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure set_members_as_dyn_any(para1: Arr1OODNameDynAnyPair); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure set_members_as_dyn_any(var para1: array of OODNameDynAnyPair); overload;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
  end;

  OOPIORInterceptor_3_0Operations = interface external 'org.omg.PortableInterceptor' name 'IORInterceptor_3_0Operations' (OOPIORInterceptorOperations)
    procedure components_established(para1: OOPIORInfo); overload;
    procedure adapter_manager_state_changed(para1: jint; para2: jshort); overload;
    procedure adapter_state_changed(para1: Arr1OOPObjectReferenceTemplate; para2: jshort); overload;
    procedure adapter_state_changed(var para1: array of OOPObjectReferenceTemplate; para2: jshort); overload;
  end;

  OOPServantActivatorPOA = class abstract external 'org.omg.PortableServer' name 'ServantActivatorPOA' (OOPServant, OOPServantActivatorOperations, OOCPInvokeHandler)
  public
    constructor create(); overload;
    function _invoke(para1: JLString; para2: OOCPInputStream; para3: OOCPResponseHandler): OOCPOutputStream; overload; virtual;
    function _all_interfaces(para1: OOPPOA; para2: Arr1jbyte): Arr1JLString; overload; virtual;
    function _all_interfaces(para1: OOPPOA; var para2: array of jbyte): Arr1JLString; overload; virtual;
    function _this(): OOPServantActivator; overload; virtual;
    function _this(para1: OOCORB): OOPServantActivator; overload; virtual;
  end;

  OOPServantLocatorPOA = class abstract external 'org.omg.PortableServer' name 'ServantLocatorPOA' (OOPServant, OOPServantLocatorOperations, OOCPInvokeHandler)
  public
    constructor create(); overload;
    function _invoke(para1: JLString; para2: OOCPInputStream; para3: OOCPResponseHandler): OOCPOutputStream; overload; virtual;
    function _all_interfaces(para1: OOPPOA; para2: Arr1jbyte): Arr1JLString; overload; virtual;
    function _all_interfaces(para1: OOPPOA; var para2: array of jbyte): Arr1JLString; overload; virtual;
    function _this(): OOPServantLocator; overload; virtual;
    function _this(para1: OOCORB): OOPServantLocator; overload; virtual;
  end;

  OWDComment = interface external 'org.w3c.dom' name 'Comment' (OWDCharacterData)
  end;

  OWDText = interface external 'org.w3c.dom' name 'Text' (OWDCharacterData)
    function splitText(para1: jint): OWDText; overload;  // throws org.w3c.dom.DOMException
    function isElementContentWhitespace(): jboolean; overload;
    function getWholeText(): JLString; overload;
    function replaceWholeText(para1: JLString): OWDText; overload;  // throws org.w3c.dom.DOMException
  end;

  JXSSOAPPart = class abstract external 'javax.xml.soap' name 'SOAPPart' (JLObject, OWDDocument, JXSNode)
  public
    constructor create(); overload;
    function getEnvelope(): JXSSOAPEnvelope; overload; virtual; abstract;  // throws javax.xml.soap.SOAPException
    function getContentId(): JLString; overload; virtual;
    function getContentLocation(): JLString; overload; virtual;
    procedure setContentId(para1: JLString); overload; virtual;
    procedure setContentLocation(para1: JLString); overload; virtual;
    procedure removeMimeHeader(para1: JLString); overload; virtual; abstract;
    procedure removeAllMimeHeaders(); overload; virtual; abstract;
    function getMimeHeader(para1: JLString): Arr1JLString; overload; virtual; abstract;
    procedure setMimeHeader(para1: JLString; para2: JLString); overload; virtual; abstract;
    procedure addMimeHeader(para1: JLString; para2: JLString); overload; virtual; abstract;
    function getAllMimeHeaders(): JUIterator; overload; virtual; abstract;
    function getMatchingMimeHeaders(para1: Arr1JLString): JUIterator; overload; virtual; abstract;
    function getMatchingMimeHeaders(var para1: array of JLString): JUIterator; overload; virtual; abstract;
    function getNonMatchingMimeHeaders(para1: Arr1JLString): JUIterator; overload; virtual; abstract;
    function getNonMatchingMimeHeaders(var para1: array of JLString): JUIterator; overload; virtual; abstract;
    procedure setContent(para1: JXTSource); overload; virtual; abstract;  // throws javax.xml.soap.SOAPException
    function getContent(): JXTSource; overload; virtual; abstract;  // throws javax.xml.soap.SOAPException
  end;

  OWDHHTMLDocument = interface external 'org.w3c.dom.html' name 'HTMLDocument' (OWDDocument)
    function getTitle(): JLString; overload;
    procedure setTitle(para1: JLString); overload;
    function getReferrer(): JLString; overload;
    function getDomain(): JLString; overload;
    function getURL(): JLString; overload;
    function getBody(): OWDHHTMLElement; overload;
    procedure setBody(para1: OWDHHTMLElement); overload;
    function getImages(): OWDHHTMLCollection; overload;
    function getApplets(): OWDHHTMLCollection; overload;
    function getLinks(): OWDHHTMLCollection; overload;
    function getForms(): OWDHHTMLCollection; overload;
    function getAnchors(): OWDHHTMLCollection; overload;
    function getCookie(): JLString; overload;
    procedure setCookie(para1: JLString); overload;
    procedure open(); overload;
    procedure close(); overload;
    procedure write(para1: JLString); overload;
    procedure writeln(para1: JLString); overload;
    function getElementsByName(para1: JLString): OWDNodeList; overload;
  end;

  JIMIIOMetadataNode = class external 'javax.imageio.metadata' name 'IIOMetadataNode' (JLObject, OWDElement, OWDNodeList)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    function getNodeName(): JLString; overload; virtual;
    function getNodeValue(): JLString; overload; virtual;  // throws org.w3c.dom.DOMException
    procedure setNodeValue(para1: JLString); overload; virtual;  // throws org.w3c.dom.DOMException
    function getNodeType(): jshort; overload; virtual;
    function getParentNode(): OWDNode; overload; virtual;
    function getChildNodes(): OWDNodeList; overload; virtual;
    function getFirstChild(): OWDNode; overload; virtual;
    function getLastChild(): OWDNode; overload; virtual;
    function getPreviousSibling(): OWDNode; overload; virtual;
    function getNextSibling(): OWDNode; overload; virtual;
    function getAttributes(): OWDNamedNodeMap; overload; virtual;
    function getOwnerDocument(): OWDDocument; overload; virtual;
    function insertBefore(para1: OWDNode; para2: OWDNode): OWDNode; overload; virtual;
    function replaceChild(para1: OWDNode; para2: OWDNode): OWDNode; overload; virtual;
    function removeChild(para1: OWDNode): OWDNode; overload; virtual;
    function appendChild(para1: OWDNode): OWDNode; overload; virtual;
    function hasChildNodes(): jboolean; overload; virtual;
    function cloneNode(para1: jboolean): OWDNode; overload; virtual;
    procedure normalize(); overload; virtual;
    function isSupported(para1: JLString; para2: JLString): jboolean; overload; virtual;
    function getNamespaceURI(): JLString; overload; virtual;  // throws org.w3c.dom.DOMException
    function getPrefix(): JLString; overload; virtual;
    procedure setPrefix(para1: JLString); overload; virtual;
    function getLocalName(): JLString; overload; virtual;
    function getTagName(): JLString; overload; virtual;
    function getAttribute(para1: JLString): JLString; overload; virtual;
    function getAttributeNS(para1: JLString; para2: JLString): JLString; overload; virtual;
    procedure setAttribute(para1: JLString; para2: JLString); overload; virtual;
    procedure setAttributeNS(para1: JLString; para2: JLString; para3: JLString); overload; virtual;
    procedure removeAttribute(para1: JLString); overload; virtual;
    procedure removeAttributeNS(para1: JLString; para2: JLString); overload; virtual;
    function getAttributeNode(para1: JLString): OWDAttr; overload; virtual;
    function getAttributeNodeNS(para1: JLString; para2: JLString): OWDAttr; overload; virtual;
    function setAttributeNode(para1: OWDAttr): OWDAttr; overload; virtual;  // throws org.w3c.dom.DOMException
    function setAttributeNodeNS(para1: OWDAttr): OWDAttr; overload; virtual;
    function removeAttributeNode(para1: OWDAttr): OWDAttr; overload; virtual;
    function getElementsByTagName(para1: JLString): OWDNodeList; overload; virtual;
    function getElementsByTagNameNS(para1: JLString; para2: JLString): OWDNodeList; overload; virtual;
    function hasAttributes(): jboolean; overload; virtual;
    function hasAttribute(para1: JLString): jboolean; overload; virtual;
    function hasAttributeNS(para1: JLString; para2: JLString): jboolean; overload; virtual;
    function getLength(): jint; overload; virtual;
    function item(para1: jint): OWDNode; overload; virtual;
    function getUserObject(): JLObject; overload; virtual;
    procedure setUserObject(para1: JLObject); overload; virtual;
    procedure setIdAttribute(para1: JLString; para2: jboolean); overload; virtual;  // throws org.w3c.dom.DOMException
    procedure setIdAttributeNS(para1: JLString; para2: JLString; para3: jboolean); overload; virtual;  // throws org.w3c.dom.DOMException
    procedure setIdAttributeNode(para1: OWDAttr; para2: jboolean); overload; virtual;  // throws org.w3c.dom.DOMException
    function getSchemaTypeInfo(): OWDTypeInfo; overload; virtual;
    function setUserData(para1: JLString; para2: JLObject; para3: OWDUserDataHandler): JLObject; overload; virtual;
    function getUserData(para1: JLString): JLObject; overload; virtual;
    function getFeature(para1: JLString; para2: JLString): JLObject; overload; virtual;
    function isSameNode(para1: OWDNode): jboolean; overload; virtual;
    function isEqualNode(para1: OWDNode): jboolean; overload; virtual;
    function lookupNamespaceURI(para1: JLString): JLString; overload; virtual;
    function isDefaultNamespace(para1: JLString): jboolean; overload; virtual;
    function lookupPrefix(para1: JLString): JLString; overload; virtual;
    function getTextContent(): JLString; overload; virtual;  // throws org.w3c.dom.DOMException
    procedure setTextContent(para1: JLString); overload; virtual;  // throws org.w3c.dom.DOMException
    function compareDocumentPosition(para1: OWDNode): jshort; overload; virtual;  // throws org.w3c.dom.DOMException
    function getBaseURI(): JLString; overload; virtual;
  end;

  JXSSOAPElement = interface external 'javax.xml.soap' name 'SOAPElement' (JXSNode, OWDElement)
    function addChildElement(para1: JXSName): JXSSOAPElement; overload;  // throws javax.xml.soap.SOAPException
    function addChildElement(para1: JXNQName): JXSSOAPElement; overload;  // throws javax.xml.soap.SOAPException
    function addChildElement(para1: JLString): JXSSOAPElement; overload;  // throws javax.xml.soap.SOAPException
    function addChildElement(para1: JLString; para2: JLString): JXSSOAPElement; overload;  // throws javax.xml.soap.SOAPException
    function addChildElement(para1: JLString; para2: JLString; para3: JLString): JXSSOAPElement; overload;  // throws javax.xml.soap.SOAPException
    function addChildElement(para1: JXSSOAPElement): JXSSOAPElement; overload;  // throws javax.xml.soap.SOAPException
    procedure removeContents(); overload;
    function addTextNode(para1: JLString): JXSSOAPElement; overload;  // throws javax.xml.soap.SOAPException
    function addAttribute(para1: JXSName; para2: JLString): JXSSOAPElement; overload;  // throws javax.xml.soap.SOAPException
    function addAttribute(para1: JXNQName; para2: JLString): JXSSOAPElement; overload;  // throws javax.xml.soap.SOAPException
    function addNamespaceDeclaration(para1: JLString; para2: JLString): JXSSOAPElement; overload;  // throws javax.xml.soap.SOAPException
    function getAttributeValue(para1: JXSName): JLString; overload;
    function getAttributeValue(para1: JXNQName): JLString; overload;
    function getAllAttributes(): JUIterator; overload;
    function getAllAttributesAsQNames(): JUIterator; overload;
    function getNamespaceURI(para1: JLString): JLString; overload;
    function getNamespacePrefixes(): JUIterator; overload;
    function getVisibleNamespacePrefixes(): JUIterator; overload;
    function createQName(para1: JLString; para2: JLString): JXNQName; overload;  // throws javax.xml.soap.SOAPException
    function getElementName(): JXSName; overload;
    function getElementQName(): JXNQName; overload;
    function setElementQName(para1: JXNQName): JXSSOAPElement; overload;  // throws javax.xml.soap.SOAPException
    function removeAttribute(para1: JXSName): jboolean; overload;
    function removeAttribute(para1: JXNQName): jboolean; overload;
    function removeNamespaceDeclaration(para1: JLString): jboolean; overload;
    function getChildElements(): JUIterator; overload;
    function getChildElements(para1: JXSName): JUIterator; overload;
    function getChildElements(para1: JXNQName): JUIterator; overload;
    procedure setEncodingStyle(para1: JLString); overload;  // throws javax.xml.soap.SOAPException
    function getEncodingStyle(): JLString; overload;
  end;

  OWDHHTMLElement = interface external 'org.w3c.dom.html' name 'HTMLElement' (OWDElement)
    function getId(): JLString; overload;
    procedure setId(para1: JLString); overload;
    function getTitle(): JLString; overload;
    procedure setTitle(para1: JLString); overload;
    function getLang(): JLString; overload;
    procedure setLang(para1: JLString); overload;
    function getDir(): JLString; overload;
    procedure setDir(para1: JLString); overload;
    function getClassName(): JLString; overload;
    procedure setClassName(para1: JLString); overload;
  end;

  OWDEMouseEvent = interface external 'org.w3c.dom.events' name 'MouseEvent' (OWDEUIEvent)
    function getScreenX(): jint; overload;
    function getScreenY(): jint; overload;
    function getClientX(): jint; overload;
    function getClientY(): jint; overload;
    function getCtrlKey(): jboolean; overload;
    function getShiftKey(): jboolean; overload;
    function getAltKey(): jboolean; overload;
    function getMetaKey(): jboolean; overload;
    function getButton(): jshort; overload;
    function getRelatedTarget(): OWDEEventTarget; overload;
    procedure initMouseEvent(para1: JLString; para2: jboolean; para3: jboolean; para4: OWDVAbstractView; para5: jint; para6: jint; para7: jint; para8: jint; para9: jint; para10: jboolean; para11: jboolean; para12: jboolean; para13: jboolean; para14: jshort; para15: OWDEEventTarget); overload;
  end;

  OXSEAttributes2Impl = class external 'org.xml.sax.ext' name 'Attributes2Impl' (OXSHAttributesImpl, OXSEAttributes2)
  public
    constructor create(); overload;
    constructor create(para1: OXSAttributes); overload;
    function isDeclared(para1: jint): jboolean; overload; virtual;
    function isDeclared(para1: JLString; para2: JLString): jboolean; overload; virtual;
    function isDeclared(para1: JLString): jboolean; overload; virtual;
    function isSpecified(para1: jint): jboolean; overload; virtual;
    function isSpecified(para1: JLString; para2: JLString): jboolean; overload; virtual;
    function isSpecified(para1: JLString): jboolean; overload; virtual;
    procedure setAttributes(para1: OXSAttributes); overload; virtual;
    procedure addAttribute(para1: JLString; para2: JLString; para3: JLString; para4: JLString; para5: JLString); overload; virtual;
    procedure removeAttribute(para1: jint); overload; virtual;
    procedure setDeclared(para1: jint; para2: jboolean); overload; virtual;
    procedure setSpecified(para1: jint; para2: jboolean); overload; virtual;
  end;

  JSPSSynthParser = class external 'javax.swing.plaf.synth' name 'SynthParser' (OXSHandlerBase)
  public
    type
      InnerLazyImageIcon = class;
      Arr1InnerLazyImageIcon = array of InnerLazyImageIcon;
      Arr2InnerLazyImageIcon = array of Arr1InnerLazyImageIcon;
      Arr3InnerLazyImageIcon = array of Arr2InnerLazyImageIcon;
      InnerLazyImageIcon = class external 'javax.swing.plaf.synth' name 'LazyImageIcon' 
      end;

  public
    procedure parse(para1: JIInputStream; para2: JSPSDefaultSynthStyleFactory; para3: JNURL; para4: JLClass; para5: JUMap); overload; virtual;  // throws java.text.ParseException, java.lang.IllegalArgumentException
    function resolveEntity(para1: JLString; para2: JLString): OXSInputSource; overload; virtual;  // throws org.xml.sax.SAXException
    procedure notationDecl(para1: JLString; para2: JLString; para3: JLString); overload; virtual;
    procedure unparsedEntityDecl(para1: JLString; para2: JLString; para3: JLString; para4: JLString); overload; virtual;
    procedure setDocumentLocator(para1: OXSLocator); overload; virtual;
    procedure startDocument(); overload; virtual;  // throws org.xml.sax.SAXException
    procedure endDocument(); overload; virtual;  // throws org.xml.sax.SAXException
    procedure startElement(para1: JLString; para2: OXSAttributeList); overload; virtual;  // throws org.xml.sax.SAXException
    procedure endElement(para1: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure characters(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure characters(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure ignorableWhitespace(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure ignorableWhitespace(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure processingInstruction(para1: JLString; para2: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure warning(para1: OXSSAXParseException); overload; virtual;  // throws org.xml.sax.SAXException
    procedure error(para1: OXSSAXParseException); overload; virtual;  // throws org.xml.sax.SAXException
    procedure fatalError(para1: OXSSAXParseException); overload; virtual;  // throws org.xml.sax.SAXException
  end;

  OXSEDefaultHandler2 = class external 'org.xml.sax.ext' name 'DefaultHandler2' (OXSHDefaultHandler, OXSELexicalHandler, OXSEDeclHandler, OXSEEntityResolver2)
  public
    constructor create(); overload;
    procedure startCDATA(); overload; virtual;  // throws org.xml.sax.SAXException
    procedure endCDATA(); overload; virtual;  // throws org.xml.sax.SAXException
    procedure startDTD(para1: JLString; para2: JLString; para3: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure endDTD(); overload; virtual;  // throws org.xml.sax.SAXException
    procedure startEntity(para1: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure endEntity(para1: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure comment(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure comment(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure attributeDecl(para1: JLString; para2: JLString; para3: JLString; para4: JLString; para5: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure elementDecl(para1: JLString; para2: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure externalEntityDecl(para1: JLString; para2: JLString; para3: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure internalEntityDecl(para1: JLString; para2: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    function getExternalSubset(para1: JLString; para2: JLString): OXSInputSource; overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    function resolveEntity(para1: JLString; para2: JLString; para3: JLString; para4: JLString): OXSInputSource; overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    function resolveEntity(para1: JLString; para2: JLString): OXSInputSource; overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
  end;

  OXSELocator2Impl = class external 'org.xml.sax.ext' name 'Locator2Impl' (OXSHLocatorImpl, OXSELocator2)
  public
    constructor create(); overload;
    constructor create(para1: OXSLocator); overload;
    function getXMLVersion(): JLString; overload; virtual;
    function getEncoding(): JLString; overload; virtual;
    procedure setXMLVersion(para1: JLString); overload; virtual;
    procedure setEncoding(para1: JLString); overload; virtual;
  end;

  OXSHXMLFilterImpl = class external 'org.xml.sax.helpers' name 'XMLFilterImpl' (JLObject, OXSXMLFilter, OXSEntityResolver, OXSDTDHandler, OXSContentHandler, OXSErrorHandler)
  public
    constructor create(); overload;
    constructor create(para1: OXSXMLReader); overload;
    procedure setParent(para1: OXSXMLReader); overload; virtual;
    function getParent(): OXSXMLReader; overload; virtual;
    procedure setFeature(para1: JLString; para2: jboolean); overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    function getFeature(para1: JLString): jboolean; overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    procedure setProperty(para1: JLString; para2: JLObject); overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    function getProperty(para1: JLString): JLObject; overload; virtual;  // throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
    procedure setEntityResolver(para1: OXSEntityResolver); overload; virtual;
    function getEntityResolver(): OXSEntityResolver; overload; virtual;
    procedure setDTDHandler(para1: OXSDTDHandler); overload; virtual;
    function getDTDHandler(): OXSDTDHandler; overload; virtual;
    procedure setContentHandler(para1: OXSContentHandler); overload; virtual;
    function getContentHandler(): OXSContentHandler; overload; virtual;
    procedure setErrorHandler(para1: OXSErrorHandler); overload; virtual;
    function getErrorHandler(): OXSErrorHandler; overload; virtual;
    procedure parse(para1: OXSInputSource); overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    procedure parse(para1: JLString); overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    function resolveEntity(para1: JLString; para2: JLString): OXSInputSource; overload; virtual;  // throws org.xml.sax.SAXException, java.io.IOException
    procedure notationDecl(para1: JLString; para2: JLString; para3: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure unparsedEntityDecl(para1: JLString; para2: JLString; para3: JLString; para4: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure setDocumentLocator(para1: OXSLocator); overload; virtual;
    procedure startDocument(); overload; virtual;  // throws org.xml.sax.SAXException
    procedure endDocument(); overload; virtual;  // throws org.xml.sax.SAXException
    procedure startPrefixMapping(para1: JLString; para2: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure endPrefixMapping(para1: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure startElement(para1: JLString; para2: JLString; para3: JLString; para4: OXSAttributes); overload; virtual;  // throws org.xml.sax.SAXException
    procedure endElement(para1: JLString; para2: JLString; para3: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure characters(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure characters(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure ignorableWhitespace(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure ignorableWhitespace(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws org.xml.sax.SAXException
    procedure processingInstruction(para1: JLString; para2: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure skippedEntity(para1: JLString); overload; virtual;  // throws org.xml.sax.SAXException
    procedure warning(para1: OXSSAXParseException); overload; virtual;  // throws org.xml.sax.SAXException
    procedure error(para1: OXSSAXParseException); overload; virtual;  // throws org.xml.sax.SAXException
    procedure fatalError(para1: OXSSAXParseException); overload; virtual;  // throws org.xml.sax.SAXException
  end;

  JUZZipError = class external 'java.util.zip' name 'ZipError' (JLInternalError)
  public
    constructor create(para1: JLString); overload;
  end;

  JSInvalidKeyException = class external 'java.security' name 'InvalidKeyException' (JSKeyException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JSKeyManagementException = class external 'java.security' name 'KeyManagementException' (JSKeyException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JSUnrecoverableKeyException = class external 'java.security' name 'UnrecoverableKeyException' (JSUnrecoverableEntryException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JSCCertificateEncodingException = class external 'java.security.cert' name 'CertificateEncodingException' (JSCCertificateException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JSCCertificateExpiredException = class external 'java.security.cert' name 'CertificateExpiredException' (JSCCertificateException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JSCCertificateNotYetValidException = class external 'java.security.cert' name 'CertificateNotYetValidException' (JSCCertificateException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JSCCertificateParsingException = class external 'java.security.cert' name 'CertificateParsingException' (JSCCertificateException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JSALAccountException = class external 'javax.security.auth.login' name 'AccountException' (JSALLoginException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JSALCredentialException = class external 'javax.security.auth.login' name 'CredentialException' (JSALLoginException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JSALFailedLoginException = class external 'javax.security.auth.login' name 'FailedLoginException' (JSALLoginException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JMMBeanRegistrationException = class external 'javax.management' name 'MBeanRegistrationException' (JMMBeanException)
  public
    constructor create(para1: JLException); overload;
    constructor create(para1: JLException; para2: JLString); overload;
  end;

  JMAttributeNotFoundException = class external 'javax.management' name 'AttributeNotFoundException' (JMOperationsException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JMInstanceAlreadyExistsException = class external 'javax.management' name 'InstanceAlreadyExistsException' (JMOperationsException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JMInstanceNotFoundException = class external 'javax.management' name 'InstanceNotFoundException' (JMOperationsException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JMIntrospectionException = class external 'javax.management' name 'IntrospectionException' (JMOperationsException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JMInvalidAttributeValueException = class external 'javax.management' name 'InvalidAttributeValueException' (JMOperationsException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JMListenerNotFoundException = class external 'javax.management' name 'ListenerNotFoundException' (JMOperationsException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JMMalformedObjectNameException = class external 'javax.management' name 'MalformedObjectNameException' (JMOperationsException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JMNotCompliantMBeanException = class external 'javax.management' name 'NotCompliantMBeanException' (JMOperationsException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JMServiceNotFoundException = class external 'javax.management' name 'ServiceNotFoundException' (JMOperationsException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JMRInvalidRelationIdException = class external 'javax.management.relation' name 'InvalidRelationIdException' (JMRRelationException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JMRInvalidRelationServiceException = class external 'javax.management.relation' name 'InvalidRelationServiceException' (JMRRelationException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JMRInvalidRelationTypeException = class external 'javax.management.relation' name 'InvalidRelationTypeException' (JMRRelationException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JMRInvalidRoleInfoException = class external 'javax.management.relation' name 'InvalidRoleInfoException' (JMRRelationException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JMRInvalidRoleValueException = class external 'javax.management.relation' name 'InvalidRoleValueException' (JMRRelationException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JMRRelationNotFoundException = class external 'javax.management.relation' name 'RelationNotFoundException' (JMRRelationException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JMRRelationServiceNotRegisteredException = class external 'javax.management.relation' name 'RelationServiceNotRegisteredException' (JMRRelationException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JMRRelationTypeNotFoundException = class external 'javax.management.relation' name 'RelationTypeNotFoundException' (JMRRelationException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JMRRoleInfoNotFoundException = class external 'javax.management.relation' name 'RoleInfoNotFoundException' (JMRRelationException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JMRRoleNotFoundException = class external 'javax.management.relation' name 'RoleNotFoundException' (JMRRelationException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JNSizeLimitExceededException = class external 'javax.naming' name 'SizeLimitExceededException' (JNLimitExceededException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JNTimeLimitExceededException = class external 'javax.naming' name 'TimeLimitExceededException' (JNLimitExceededException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JNLinkLoopException = class external 'javax.naming' name 'LinkLoopException' (JNLinkException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JNMalformedLinkException = class external 'javax.naming' name 'MalformedLinkException' (JNLinkException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JNAuthenticationException = class external 'javax.naming' name 'AuthenticationException' (JNNamingSecurityException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JNAuthenticationNotSupportedException = class external 'javax.naming' name 'AuthenticationNotSupportedException' (JNNamingSecurityException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JNNoPermissionException = class external 'javax.naming' name 'NoPermissionException' (JNNamingSecurityException)
  public
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  end;

  JNLLdapReferralException = class abstract external 'javax.naming.ldap' name 'LdapReferralException' (JNReferralException)
  strict protected
    constructor create(para1: JLString); overload;
    constructor create(); overload;
  public
    function getReferralContext(): JNContext; overload; virtual; abstract;  // throws javax.naming.NamingException
    function getReferralContext(para1: JUHashtable): JNContext; overload; virtual; abstract;  // throws javax.naming.NamingException
    function getReferralContext(para1: JUHashtable; para2: Arr1JNLControl): JNContext; overload; virtual; abstract;  // throws javax.naming.NamingException
    function getReferralContext(para1: JUHashtable; var para2: array of JNLControl): JNContext; overload; virtual; abstract;  // throws javax.naming.NamingException
  end;

  JXXXPathFunctionException = class external 'javax.xml.xpath' name 'XPathFunctionException' (JXXXPathExpressionException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLThrowable); overload;
  end;

  JACheckboxMenuItem = class external 'java.awt' name 'CheckboxMenuItem' (JAMenuItem, JAItemSelectable, JAAccessible)
  public
    type
      InnerAccessibleAWTCheckboxMenuItem = class;
      Arr1InnerAccessibleAWTCheckboxMenuItem = array of InnerAccessibleAWTCheckboxMenuItem;
      Arr2InnerAccessibleAWTCheckboxMenuItem = array of Arr1InnerAccessibleAWTCheckboxMenuItem;
      Arr3InnerAccessibleAWTCheckboxMenuItem = array of Arr2InnerAccessibleAWTCheckboxMenuItem;
      InnerAccessibleAWTCheckboxMenuItem = class external 'java.awt' name 'AccessibleAWTCheckboxMenuItem' 
      end;

  public
    constructor create(); overload;  // throws java.awt.HeadlessException
    constructor create(para1: JLString); overload;  // throws java.awt.HeadlessException
    constructor create(para1: JLString; para2: jboolean); overload;  // throws java.awt.HeadlessException
    procedure addNotify(); overload; virtual;
    function getState(): jboolean; overload; virtual;
    procedure setState(para1: jboolean); overload; virtual;
    function getSelectedObjects(): Arr1JLObject; overload; virtual;
    procedure addItemListener(para1: JAEItemListener); overload; virtual;
    procedure removeItemListener(para1: JAEItemListener); overload; virtual;
    function getItemListeners(): Arr1JAEItemListener; overload; virtual;
    function getListeners(para1: JLClass): Arr1JUEventListener; overload; virtual;
  strict protected
    procedure processEvent(para1: JAAWTEvent); overload; virtual;
    procedure processItemEvent(para1: JAEItemEvent); overload; virtual;
  public
    function paramString(): JLString; overload; virtual;
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JAMenu = class external 'java.awt' name 'Menu' (JAMenuItem, JAMenuContainer, JAAccessible)
  public
    type
      InnerAccessibleAWTMenu = class;
      Arr1InnerAccessibleAWTMenu = array of InnerAccessibleAWTMenu;
      Arr2InnerAccessibleAWTMenu = array of Arr1InnerAccessibleAWTMenu;
      Arr3InnerAccessibleAWTMenu = array of Arr2InnerAccessibleAWTMenu;
      InnerAccessibleAWTMenu = class external 'java.awt' name 'AccessibleAWTMenu' 
      end;

  public
    constructor create(); overload;  // throws java.awt.HeadlessException
    constructor create(para1: JLString); overload;  // throws java.awt.HeadlessException
    constructor create(para1: JLString; para2: jboolean); overload;  // throws java.awt.HeadlessException
    procedure addNotify(); overload; virtual;
    procedure removeNotify(); overload; virtual;
    function isTearOff(): jboolean; overload; virtual;
    function getItemCount(): jint; overload; virtual;
    function countItems(): jint; overload; virtual;
    function getItem(para1: jint): JAMenuItem; overload; virtual;
    function add(para1: JAMenuItem): JAMenuItem; overload; virtual;
    procedure add(para1: JLString); overload; virtual;
    procedure insert(para1: JAMenuItem; para2: jint); overload; virtual;
    procedure insert(para1: JLString; para2: jint); overload; virtual;
    procedure addSeparator(); overload; virtual;
    procedure insertSeparator(para1: jint); overload; virtual;
    procedure remove(para1: jint); overload; virtual;
    procedure remove(para1: JAMenuComponent); overload; virtual;
    procedure removeAll(); overload; virtual;
    function paramString(): JLString; overload; virtual;
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JAActivationDataFlavor = class external 'javax.activation' name 'ActivationDataFlavor' (JADDataFlavor)
  public
    constructor create(para1: JLClass; para2: JLString; para3: JLString); overload;
    constructor create(para1: JLClass; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    function getMimeType(): JLString; overload; virtual;
    function getRepresentationClass(): JLClass; overload; virtual;
    function getHumanPresentableName(): JLString; overload; virtual;
    procedure setHumanPresentableName(para1: JLString); overload; virtual;
    function equals(para1: JADDataFlavor): jboolean; overload; virtual;
    function isMimeTypeEqual(para1: JLString): jboolean; overload; virtual;
  strict protected
    function normalizeMimeTypeParameter(para1: JLString; para2: JLString): JLString; overload; virtual;
    function normalizeMimeType(para1: JLString): JLString; overload; virtual;
  end;

  JRSServerRef = interface external 'java.rmi.server' name 'ServerRef' (JRSRemoteRef)
    const
      serialVersionUID = jlong(-4557750989390278438);
    function exportObject(para1: JRRemote; para2: JLObject): JRSRemoteStub; overload;  // throws java.rmi.RemoteException
    function getClientHost(): JLString; overload;  // throws java.rmi.server.ServerNotActiveException
  end;

  JSIDSAPrivateKey = interface external 'java.security.interfaces' name 'DSAPrivateKey' (JSIDSAKey, JSPrivateKey)
    const
      serialVersionUID = jlong(7776497482533790279);
    function getX(): JMBigInteger; overload;
  end;

  JSIECPrivateKey = interface external 'java.security.interfaces' name 'ECPrivateKey' (JSPrivateKey, JSIECKey)
    const
      serialVersionUID = jlong(-7896394956925609184);
    function getS(): JMBigInteger; overload;
  end;

  JSIRSAPrivateKey = interface external 'java.security.interfaces' name 'RSAPrivateKey' (JSPrivateKey, JSIRSAKey)
    const
      serialVersionUID = jlong(5187144804936595022);
    function getPrivateExponent(): JMBigInteger; overload;
  end;

  JCIDHPrivateKey = interface external 'javax.crypto.interfaces' name 'DHPrivateKey' (JCIDHKey, JSPrivateKey)
    const
      serialVersionUID = jlong(2211791113380396553);
    function getX(): JMBigInteger; overload;
  end;

  JSIDSAPublicKey = interface external 'java.security.interfaces' name 'DSAPublicKey' (JSIDSAKey, JSPublicKey)
    const
      serialVersionUID = jlong(1234526332779022332);
    function getY(): JMBigInteger; overload;
  end;

  JSIECPublicKey = interface external 'java.security.interfaces' name 'ECPublicKey' (JSPublicKey, JSIECKey)
    const
      serialVersionUID = jlong(-3314988629879632826);
    function getW(): JSSECPoint; overload;
  end;

  JSIRSAPublicKey = interface external 'java.security.interfaces' name 'RSAPublicKey' (JSPublicKey, JSIRSAKey)
    const
      serialVersionUID = jlong(-8727434096241101194);
    function getPublicExponent(): JMBigInteger; overload;
  end;

  JCIDHPublicKey = interface external 'javax.crypto.interfaces' name 'DHPublicKey' (JCIDHKey, JSPublicKey)
    const
      serialVersionUID = jlong(-6628103563352519193);
    function getY(): JMBigInteger; overload;
  end;

  JCIPBEKey = interface external 'javax.crypto.interfaces' name 'PBEKey' (JCSecretKey)
    const
      serialVersionUID = jlong(-1430015993304333921);
    function getPassword(): Arr1jchar; overload;
    function getSalt(): Arr1jbyte; overload;
    function getIterationCount(): jint; overload;
  end;

  JCSSecretKeySpec = class external 'javax.crypto.spec' name 'SecretKeySpec' (JLObject, JSSKeySpec, JCSecretKey)
  public
    constructor create(para1: Arr1jbyte; para2: JLString); overload;
    constructor create(const para1: array of jbyte; para2: JLString); overload;
    constructor create(para1: Arr1jbyte; para2: jint; para3: jint; para4: JLString); overload;
    constructor create(const para1: array of jbyte; para2: jint; para3: jint; para4: JLString); overload;
    function getAlgorithm(): JLString; overload; virtual;
    function getFormat(): JLString; overload; virtual;
    function getEncoded(): Arr1jbyte; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JSAKKerberosKey = class external 'javax.security.auth.kerberos' name 'KerberosKey' (JLObject, JCSecretKey, JSADestroyable)
  public
    constructor create(para1: JSAKKerberosPrincipal; para2: Arr1jbyte; para3: jint; para4: jint); overload;
    constructor create(para1: JSAKKerberosPrincipal; const para2: array of jbyte; para3: jint; para4: jint); overload;
    constructor create(para1: JSAKKerberosPrincipal; para2: Arr1jchar; para3: JLString); overload;
    constructor create(para1: JSAKKerberosPrincipal; const para2: array of jchar; para3: JLString); overload;
    function getPrincipal(): JSAKKerberosPrincipal; overload; virtual; final;
    function getVersionNumber(): jint; overload; virtual; final;
    function getKeyType(): jint; overload; virtual; final;
    function getAlgorithm(): JLString; overload; virtual; final;
    function getFormat(): JLString; overload; virtual; final;
    function getEncoded(): Arr1jbyte; overload; virtual; final;
    procedure destroy(); overload; virtual;  // throws javax.security.auth.DestroyFailedException
    function isDestroyed(): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JSAKKeyImpl = class external 'javax.security.auth.kerberos' name 'KeyImpl' (JLObject, JCSecretKey, JSADestroyable, JISerializable)
  public
    constructor create(para1: Arr1jbyte; para2: jint); overload;
    constructor create(const para1: array of jbyte; para2: jint); overload;
    constructor create(para1: JSAKKerberosPrincipal; para2: Arr1jchar; para3: JLString); overload;
    constructor create(para1: JSAKKerberosPrincipal; const para2: array of jchar; para3: JLString); overload;
    function getKeyType(): jint; overload; virtual; final;
    function getAlgorithm(): JLString; overload; virtual; final;
    function getFormat(): JLString; overload; virtual; final;
    function getEncoded(): Arr1jbyte; overload; virtual; final;
    procedure destroy(); overload; virtual;  // throws javax.security.auth.DestroyFailedException
    function isDestroyed(): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JASentEvent = class external 'java.awt' name 'SentEvent' (JAAWTEvent, JAActiveEvent)
  public
    procedure dispatch(); overload; virtual;
  end;

  JASequencedEvent = class external 'java.awt' name 'SequencedEvent' (JAAWTEvent, JAActiveEvent)
  public
    constructor create(para1: JAAWTEvent); overload;
    procedure dispatch(); overload; virtual; final;
    function isFirstOrDisposed(): jboolean; overload; virtual; final;
  end;

  JAEActionEvent = class external 'java.awt.event' name 'ActionEvent' (JAAWTEvent)
  public
    const
      SHIFT_MASK = 1;
      CTRL_MASK = 2;
      META_MASK = 4;
      ALT_MASK = 8;
      ACTION_FIRST = 1001;
      ACTION_LAST = 1001;
      ACTION_PERFORMED = 1001;
  public
    constructor create(para1: JLObject; para2: jint; para3: JLString); overload;
    constructor create(para1: JLObject; para2: jint; para3: JLString; para4: jint); overload;
    constructor create(para1: JLObject; para2: jint; para3: JLString; para4: jlong; para5: jint); overload;
    function getActionCommand(): JLString; overload; virtual;
    function getWhen(): jlong; overload; virtual;
    function getModifiers(): jint; overload; virtual;
    function paramString(): JLString; overload; virtual;
  end;

  JAEAdjustmentEvent = class external 'java.awt.event' name 'AdjustmentEvent' (JAAWTEvent)
  public
    const
      ADJUSTMENT_FIRST = 601;
      ADJUSTMENT_LAST = 601;
      ADJUSTMENT_VALUE_CHANGED = 601;
      UNIT_INCREMENT = 1;
      UNIT_DECREMENT = 2;
      BLOCK_DECREMENT = 3;
      BLOCK_INCREMENT = 4;
      TRACK = 5;
  public
    constructor create(para1: JAAdjustable; para2: jint; para3: jint; para4: jint); overload;
    constructor create(para1: JAAdjustable; para2: jint; para3: jint; para4: jint; para5: jboolean); overload;
    function getAdjustable(): JAAdjustable; overload; virtual;
    function getValue(): jint; overload; virtual;
    function getAdjustmentType(): jint; overload; virtual;
    function getValueIsAdjusting(): jboolean; overload; virtual;
    function paramString(): JLString; overload; virtual;
  end;

  JAEComponentEvent = class external 'java.awt.event' name 'ComponentEvent' (JAAWTEvent)
  public
    const
      COMPONENT_FIRST = 100;
      COMPONENT_LAST = 103;
      COMPONENT_MOVED = 100;
      COMPONENT_RESIZED = 101;
      COMPONENT_SHOWN = 102;
      COMPONENT_HIDDEN = 103;
  public
    constructor create(para1: JAComponent; para2: jint); overload;
    function getComponent(): JAComponent; overload; virtual;
    function paramString(): JLString; overload; virtual;
  end;

  JAEHierarchyEvent = class external 'java.awt.event' name 'HierarchyEvent' (JAAWTEvent)
  public
    const
      HIERARCHY_FIRST = 1400;
      HIERARCHY_CHANGED = 1400;
      ANCESTOR_MOVED = 1401;
      ANCESTOR_RESIZED = 1402;
      HIERARCHY_LAST = 1402;
      PARENT_CHANGED = 1;
      DISPLAYABILITY_CHANGED = 2;
      SHOWING_CHANGED = 4;
  public
    constructor create(para1: JAComponent; para2: jint; para3: JAComponent; para4: JAContainer); overload;
    constructor create(para1: JAComponent; para2: jint; para3: JAComponent; para4: JAContainer; para5: jlong); overload;
    function getComponent(): JAComponent; overload; virtual;
    function getChanged(): JAComponent; overload; virtual;
    function getChangedParent(): JAContainer; overload; virtual;
    function getChangeFlags(): jlong; overload; virtual;
    function paramString(): JLString; overload; virtual;
  end;

  JAEInputMethodEvent = class external 'java.awt.event' name 'InputMethodEvent' (JAAWTEvent)
  public
    const
      INPUT_METHOD_FIRST = 1100;
      INPUT_METHOD_TEXT_CHANGED = 1100;
      CARET_POSITION_CHANGED = 1101;
      INPUT_METHOD_LAST = 1101;
  public
    constructor create(para1: JAComponent; para2: jint; para3: jlong; para4: JTAttributedCharacterIterator; para5: jint; para6: JAFTextHitInfo; para7: JAFTextHitInfo); overload;
    constructor create(para1: JAComponent; para2: jint; para3: JTAttributedCharacterIterator; para4: jint; para5: JAFTextHitInfo; para6: JAFTextHitInfo); overload;
    constructor create(para1: JAComponent; para2: jint; para3: JAFTextHitInfo; para4: JAFTextHitInfo); overload;
    function getText(): JTAttributedCharacterIterator; overload; virtual;
    function getCommittedCharacterCount(): jint; overload; virtual;
    function getCaret(): JAFTextHitInfo; overload; virtual;
    function getVisiblePosition(): JAFTextHitInfo; overload; virtual;
    procedure consume(); overload; virtual;
    function isConsumed(): jboolean; overload; virtual;
    function getWhen(): jlong; overload; virtual;
    function paramString(): JLString; overload; virtual;
  end;

  JAEInvocationEvent = class external 'java.awt.event' name 'InvocationEvent' (JAAWTEvent, JAActiveEvent)
  public
    const
      INVOCATION_FIRST = 1200;
      INVOCATION_DEFAULT = 1200;
      INVOCATION_LAST = 1200;
  strict protected
    var
      frunnable: JLRunnable; external name 'runnable';
      fnotifier: JLObject; external name 'notifier';
      fcatchExceptions: jboolean; external name 'catchExceptions';
  public
    constructor create(para1: JLObject; para2: JLRunnable); overload;
    constructor create(para1: JLObject; para2: JLRunnable; para3: JLObject; para4: jboolean); overload;
  strict protected
    constructor create(para1: JLObject; para2: jint; para3: JLRunnable; para4: JLObject; para5: jboolean); overload;
  public
    procedure dispatch(); overload; virtual;
    function getException(): JLException; overload; virtual;
    function getThrowable(): JLThrowable; overload; virtual;
    function getWhen(): jlong; overload; virtual;
    function paramString(): JLString; overload; virtual;
  end;

  JAEItemEvent = class external 'java.awt.event' name 'ItemEvent' (JAAWTEvent)
  public
    const
      ITEM_FIRST = 701;
      ITEM_LAST = 701;
      ITEM_STATE_CHANGED = 701;
      SELECTED = 1;
      DESELECTED = 2;
  public
    constructor create(para1: JAItemSelectable; para2: jint; para3: JLObject; para4: jint); overload;
    function getItemSelectable(): JAItemSelectable; overload; virtual;
    function getItem(): JLObject; overload; virtual;
    function getStateChange(): jint; overload; virtual;
    function paramString(): JLString; overload; virtual;
  end;

  JAETextEvent = class external 'java.awt.event' name 'TextEvent' (JAAWTEvent)
  public
    const
      TEXT_FIRST = 900;
      TEXT_LAST = 900;
      TEXT_VALUE_CHANGED = 900;
  public
    constructor create(para1: JLObject; para2: jint); overload;
    function paramString(): JLString; overload; virtual;
  end;

  JSEAncestorEvent = class external 'javax.swing.event' name 'AncestorEvent' (JAAWTEvent)
  public
    const
      ANCESTOR_ADDED = 1;
      ANCESTOR_REMOVED = 2;
      ANCESTOR_MOVED = 3;
  public
    constructor create(para1: JSJComponent; para2: jint; para3: JAContainer; para4: JAContainer); overload;
    function getAncestor(): JAContainer; overload; virtual;
    function getAncestorParent(): JAContainer; overload; virtual;
    function getComponent(): JSJComponent; overload; virtual;
  end;

  JSEInternalFrameEvent = class external 'javax.swing.event' name 'InternalFrameEvent' (JAAWTEvent)
  public
    const
      INTERNAL_FRAME_FIRST = 25549;
      INTERNAL_FRAME_LAST = 25555;
      INTERNAL_FRAME_OPENED = 25549;
      INTERNAL_FRAME_CLOSING = 25550;
      INTERNAL_FRAME_CLOSED = 25551;
      INTERNAL_FRAME_ICONIFIED = 25552;
      INTERNAL_FRAME_DEICONIFIED = 25553;
      INTERNAL_FRAME_ACTIVATED = 25554;
      INTERNAL_FRAME_DEACTIVATED = 25555;
  public
    constructor create(para1: JSJInternalFrame; para2: jint); overload;
    function paramString(): JLString; overload; virtual;
    function getInternalFrame(): JSJInternalFrame; overload; virtual;
  end;

  JADDragSourceDragEvent = class external 'java.awt.dnd' name 'DragSourceDragEvent' (JADDragSourceEvent)
  public
    constructor create(para1: JADDragSourceContext; para2: jint; para3: jint; para4: jint); overload;
    constructor create(para1: JADDragSourceContext; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
    function getTargetActions(): jint; overload; virtual;
    function getGestureModifiers(): jint; overload; virtual;
    function getGestureModifiersEx(): jint; overload; virtual;
    function getUserAction(): jint; overload; virtual;
    function getDropAction(): jint; overload; virtual;
  end;

  JADDragSourceDropEvent = class external 'java.awt.dnd' name 'DragSourceDropEvent' (JADDragSourceEvent)
  public
    constructor create(para1: JADDragSourceContext; para2: jint; para3: jboolean); overload;
    constructor create(para1: JADDragSourceContext; para2: jint; para3: jboolean; para4: jint; para5: jint); overload;
    constructor create(para1: JADDragSourceContext); overload;
    function getDropSuccess(): jboolean; overload; virtual;
    function getDropAction(): jint; overload; virtual;
  end;

  JADDropTargetDragEvent = class external 'java.awt.dnd' name 'DropTargetDragEvent' (JADDropTargetEvent)
  public
    constructor create(para1: JADDropTargetContext; para2: JAPoint; para3: jint; para4: jint); overload;
    function getLocation(): JAPoint; overload; virtual;
    function getCurrentDataFlavors(): Arr1JADDataFlavor; overload; virtual;
    function getCurrentDataFlavorsAsList(): JUList; overload; virtual;
    function isDataFlavorSupported(para1: JADDataFlavor): jboolean; overload; virtual;
    function getSourceActions(): jint; overload; virtual;
    function getDropAction(): jint; overload; virtual;
    function getTransferable(): JADTransferable; overload; virtual;
    procedure acceptDrag(para1: jint); overload; virtual;
    procedure rejectDrag(); overload; virtual;
  end;

  JADDropTargetDropEvent = class external 'java.awt.dnd' name 'DropTargetDropEvent' (JADDropTargetEvent)
  public
    constructor create(para1: JADDropTargetContext; para2: JAPoint; para3: jint; para4: jint); overload;
    constructor create(para1: JADDropTargetContext; para2: JAPoint; para3: jint; para4: jint; para5: jboolean); overload;
    function getLocation(): JAPoint; overload; virtual;
    function getCurrentDataFlavors(): Arr1JADDataFlavor; overload; virtual;
    function getCurrentDataFlavorsAsList(): JUList; overload; virtual;
    function isDataFlavorSupported(para1: JADDataFlavor): jboolean; overload; virtual;
    function getSourceActions(): jint; overload; virtual;
    function getDropAction(): jint; overload; virtual;
    function getTransferable(): JADTransferable; overload; virtual;
    procedure acceptDrop(para1: jint); overload; virtual;
    procedure rejectDrop(); overload; virtual;
    procedure dropComplete(para1: jboolean); overload; virtual;
    function isLocalTransfer(): jboolean; overload; virtual;
  end;

  JBIndexedPropertyChangeEvent = class external 'java.beans' name 'IndexedPropertyChangeEvent' (JBPropertyChangeEvent)
  public
    constructor create(para1: JLObject; para2: JLString; para3: JLObject; para4: JLObject; para5: jint); overload;
    function getIndex(): jint; overload; virtual;
  end;

  JBBBeanContextMembershipEvent = class external 'java.beans.beancontext' name 'BeanContextMembershipEvent' (JBBBeanContextEvent)
  strict protected
    var
      fchildren: JUCollection; external name 'children';
  public
    constructor create(para1: JBBBeanContext; para2: JUCollection); overload;
    constructor create(para1: JBBBeanContext; para2: Arr1JLObject); overload;
    constructor create(para1: JBBBeanContext; const para2: array of JLObject); overload;
    function size(): jint; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function toArray(): Arr1JLObject; overload; virtual;
    function iterator(): JUIterator; overload; virtual;
  end;

  JBBBeanContextServiceAvailableEvent = class external 'java.beans.beancontext' name 'BeanContextServiceAvailableEvent' (JBBBeanContextEvent)
  strict protected
    var
      fserviceClass: JLClass; external name 'serviceClass';
  public
    constructor create(para1: JBBBeanContextServices; para2: JLClass); overload;
    function getSourceAsBeanContextServices(): JBBBeanContextServices; overload; virtual;
    function getServiceClass(): JLClass; overload; virtual;
    function getCurrentServiceSelectors(): JUIterator; overload; virtual;
  end;

  JBBBeanContextServiceRevokedEvent = class external 'java.beans.beancontext' name 'BeanContextServiceRevokedEvent' (JBBBeanContextEvent)
  strict protected
    var
      fserviceClass: JLClass; external name 'serviceClass';
  public
    constructor create(para1: JBBBeanContextServices; para2: JLClass; para3: jboolean); overload;
    function getSourceAsBeanContextServices(): JBBBeanContextServices; overload; virtual;
    function getServiceClass(): JLClass; overload; virtual;
    function isServiceClass(para1: JLClass): jboolean; overload; virtual;
    function isCurrentServiceInvalidNow(): jboolean; overload; virtual;
  end;

  JMAttributeChangeNotification = class external 'javax.management' name 'AttributeChangeNotification' (JMNotification)
  public
    const
      ATTRIBUTE_CHANGE = 'jmx.attribute.change';
  public
    constructor create(para1: JLObject; para2: jlong; para3: jlong; para4: JLString; para5: JLString; para6: JLString; para7: JLObject; para8: JLObject); overload;
    function getAttributeName(): JLString; overload; virtual;
    function getAttributeType(): JLString; overload; virtual;
    function getOldValue(): JLObject; overload; virtual;
    function getNewValue(): JLObject; overload; virtual;
  end;

  JMMBeanServerNotification = class external 'javax.management' name 'MBeanServerNotification' (JMNotification)
  public
    const
      REGISTRATION_NOTIFICATION = 'JMX.mbean.registered';
      UNREGISTRATION_NOTIFICATION = 'JMX.mbean.unregistered';
  public
    constructor create(para1: JLString; para2: JLObject; para3: jlong; para4: JMObjectName); overload;
    function getMBeanName(): JMObjectName; overload; virtual;
  end;

  JMMMonitorNotification = class external 'javax.management.monitor' name 'MonitorNotification' (JMNotification)
  public
    const
      OBSERVED_OBJECT_ERROR = 'jmx.monitor.error.mbean';
      OBSERVED_ATTRIBUTE_ERROR = 'jmx.monitor.error.attribute';
      OBSERVED_ATTRIBUTE_TYPE_ERROR = 'jmx.monitor.error.type';
      THRESHOLD_ERROR = 'jmx.monitor.error.threshold';
      RUNTIME_ERROR = 'jmx.monitor.error.runtime';
      THRESHOLD_VALUE_EXCEEDED = 'jmx.monitor.counter.threshold';
      THRESHOLD_HIGH_VALUE_EXCEEDED = 'jmx.monitor.gauge.high';
      THRESHOLD_LOW_VALUE_EXCEEDED = 'jmx.monitor.gauge.low';
      STRING_TO_COMPARE_VALUE_MATCHED = 'jmx.monitor.string.matches';
      STRING_TO_COMPARE_VALUE_DIFFERED = 'jmx.monitor.string.differs';
  public
    function getObservedObject(): JMObjectName; overload; virtual;
    function getObservedAttribute(): JLString; overload; virtual;
    function getDerivedGauge(): JLObject; overload; virtual;
    function getTrigger(): JLObject; overload; virtual;
  end;

  JMRRelationNotification = class external 'javax.management.relation' name 'RelationNotification' (JMNotification)
  public
    const
      RELATION_BASIC_CREATION = 'jmx.relation.creation.basic';
      RELATION_MBEAN_CREATION = 'jmx.relation.creation.mbean';
      RELATION_BASIC_UPDATE = 'jmx.relation.update.basic';
      RELATION_MBEAN_UPDATE = 'jmx.relation.update.mbean';
      RELATION_BASIC_REMOVAL = 'jmx.relation.removal.basic';
      RELATION_MBEAN_REMOVAL = 'jmx.relation.removal.mbean';
  public
    constructor create(para1: JLString; para2: JLObject; para3: jlong; para4: jlong; para5: JLString; para6: JLString; para7: JLString; para8: JMObjectName; para9: JUList); overload;  // throws java.lang.IllegalArgumentException
    constructor create(para1: JLString; para2: JLObject; para3: jlong; para4: jlong; para5: JLString; para6: JLString; para7: JLString; para8: JMObjectName; para9: JLString; para10: JUList; para11: JUList); overload;  // throws java.lang.IllegalArgumentException
    function getRelationId(): JLString; overload; virtual;
    function getRelationTypeName(): JLString; overload; virtual;
    function getObjectName(): JMObjectName; overload; virtual;
    function getMBeansToUnregister(): JUList; overload; virtual;
    function getRoleName(): JLString; overload; virtual;
    function getOldRoleValue(): JUList; overload; virtual;
    function getNewRoleValue(): JUList; overload; virtual;
  end;

  JMRJMXConnectionNotification = class external 'javax.management.remote' name 'JMXConnectionNotification' (JMNotification)
  public
    const
      OPENED = 'jmx.remote.connection.opened';
      CLOSED = 'jmx.remote.connection.closed';
      FAILED = 'jmx.remote.connection.failed';
      NOTIFS_LOST = 'jmx.remote.connection.notifs.lost';
  public
    constructor create(para1: JLString; para2: JLObject; para3: JLString; para4: jlong; para5: JLString; para6: JLObject); overload;
    function getConnectionId(): JLString; overload; virtual;
  end;

  JMTTimerAlarmClockNotification = class external 'javax.management.timer' name 'TimerAlarmClockNotification' (JMNotification)
  public
    constructor create(para1: JMTTimerAlarmClock); overload;
  end;

  JMTTimerNotification = class external 'javax.management.timer' name 'TimerNotification' (JMNotification)
  public
    constructor create(para1: JLString; para2: JLObject; para3: jlong; para4: jlong; para5: JLString; para6: JLInteger); overload;
    function getNotificationID(): JLInteger; overload; virtual;
  end;

  JPEPrintJobAttributeEvent = class external 'javax.print.event' name 'PrintJobAttributeEvent' (JPEPrintEvent)
  public
    constructor create(para1: JPDocPrintJob; para2: JPAPrintJobAttributeSet); overload;
    function getPrintJob(): JPDocPrintJob; overload; virtual;
    function getAttributes(): JPAPrintJobAttributeSet; overload; virtual;
  end;

  JPEPrintJobEvent = class external 'javax.print.event' name 'PrintJobEvent' (JPEPrintEvent)
  public
    const
      JOB_CANCELED = 101;
      JOB_COMPLETE = 102;
      JOB_FAILED = 103;
      REQUIRES_ATTENTION = 104;
      NO_MORE_EVENTS = 105;
      DATA_TRANSFER_COMPLETE = 106;
  public
    constructor create(para1: JPDocPrintJob; para2: jint); overload;
    function getPrintEventType(): jint; overload; virtual;
    function getPrintJob(): JPDocPrintJob; overload; virtual;
  end;

  JPEPrintServiceAttributeEvent = class external 'javax.print.event' name 'PrintServiceAttributeEvent' (JPEPrintEvent)
  public
    constructor create(para1: JPPrintService; para2: JPAPrintServiceAttributeSet); overload;
    function getPrintService(): JPPrintService; overload; virtual;
    function getAttributes(): JPAPrintServiceAttributeSet; overload; virtual;
  end;

  JSTHHTMLFrameHyperlinkEvent = class external 'javax.swing.text.html' name 'HTMLFrameHyperlinkEvent' (JSEHyperlinkEvent)
  public
    constructor create(para1: JLObject; para2: JSEHyperlinkEvent.InnerEventType; para3: JNURL; para4: JLString); overload;
    constructor create(para1: JLObject; para2: JSEHyperlinkEvent.InnerEventType; para3: JNURL; para4: JLString; para5: JLString); overload;
    constructor create(para1: JLObject; para2: JSEHyperlinkEvent.InnerEventType; para3: JNURL; para4: JSTElement; para5: JLString); overload;
    constructor create(para1: JLObject; para2: JSEHyperlinkEvent.InnerEventType; para3: JNURL; para4: JLString; para5: JSTElement; para6: JLString); overload;
    function getTarget(): JLString; overload; virtual;
  end;

  JMRMBeanServerNotificationFilter = class external 'javax.management.relation' name 'MBeanServerNotificationFilter' (JMNotificationFilterSupport)
  public
    constructor create(); overload;
    procedure disableAllObjectNames(); overload; virtual;
    procedure disableObjectName(para1: JMObjectName); overload; virtual;  // throws java.lang.IllegalArgumentException
    procedure enableAllObjectNames(); overload; virtual;
    procedure enableObjectName(para1: JMObjectName); overload; virtual;  // throws java.lang.IllegalArgumentException
    function getEnabledObjectNames(): JUVector; overload; virtual;
    function getDisabledObjectNames(): JUVector; overload; virtual;
    function isNotificationEnabled(para1: JMNotification): jboolean; overload; virtual;  // throws java.lang.IllegalArgumentException
  end;

  JMClassAttributeValueExp = class external 'javax.management' name 'ClassAttributeValueExp' (JMAttributeValueExp)
  public
    constructor create(); overload;
    function apply(para1: JMObjectName): JMValueExp; overload; virtual;  // throws javax.management.BadStringOperationException, javax.management.BadBinaryOpValueExpException, javax.management.BadAttributeValueExpException, javax.management.InvalidApplicationException
    function toString(): JLString; overload; virtual;
  strict protected
    function getValue(para1: JMObjectName): JLObject; overload; virtual;
  end;

  JMQualifiedAttributeValueExp = class external 'javax.management' name 'QualifiedAttributeValueExp' (JMAttributeValueExp)
  public
    constructor create(); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    function getAttrClassName(): JLString; overload; virtual;
    function apply(para1: JMObjectName): JMValueExp; overload; virtual;  // throws javax.management.BadStringOperationException, javax.management.BadBinaryOpValueExpException, javax.management.BadAttributeValueExpException, javax.management.InvalidApplicationException
    function toString(): JLString; overload; virtual;
  end;

  JNDSearchResult = class external 'javax.naming.directory' name 'SearchResult' (JNBinding)
  public
    constructor create(para1: JLString; para2: JLObject; para3: JNDAttributes); overload;
    constructor create(para1: JLString; para2: JLObject; para3: JNDAttributes; para4: jboolean); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLObject; para4: JNDAttributes); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLObject; para4: JNDAttributes; para5: jboolean); overload;
    function getAttributes(): JNDAttributes; overload; virtual;
    procedure setAttributes(para1: JNDAttributes); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JNLManageReferralControl = class sealed external 'javax.naming.ldap' name 'ManageReferralControl' (JNLBasicControl)
  public
    const
      OID = '2.16.840.1.113730.3.4.2';
  public
    constructor create(); overload;
    constructor create(para1: jboolean); overload;
  end;

  JNLPagedResultsControl = class sealed external 'javax.naming.ldap' name 'PagedResultsControl' (JNLBasicControl)
  public
    const
      OID = '1.2.840.113556.1.4.319';
  public
    constructor create(para1: jint; para2: jboolean); overload;  // throws java.io.IOException
    constructor create(para1: jint; para2: Arr1jbyte; para3: jboolean); overload;  // throws java.io.IOException
    constructor create(para1: jint; const para2: array of jbyte; para3: jboolean); overload;  // throws java.io.IOException
  end;

  JNLPagedResultsResponseControl = class sealed external 'javax.naming.ldap' name 'PagedResultsResponseControl' (JNLBasicControl)
  public
    const
      OID = '1.2.840.113556.1.4.319';
  public
    constructor create(para1: JLString; para2: jboolean; para3: Arr1jbyte); overload;  // throws java.io.IOException
    constructor create(para1: JLString; para2: jboolean; const para3: array of jbyte); overload;  // throws java.io.IOException
    function getResultSize(): jint; overload; virtual;
    function getCookie(): Arr1jbyte; overload; virtual;
  end;

  JNLSortControl = class sealed external 'javax.naming.ldap' name 'SortControl' (JNLBasicControl)
  public
    const
      OID = '1.2.840.113556.1.4.473';
  public
    constructor create(para1: JLString; para2: jboolean); overload;  // throws java.io.IOException
    constructor create(para1: Arr1JLString; para2: jboolean); overload;  // throws java.io.IOException
    constructor create(const para1: array of JLString; para2: jboolean); overload;  // throws java.io.IOException
    constructor create(para1: Arr1JNLSortKey; para2: jboolean); overload;  // throws java.io.IOException
    constructor create(const para1: array of JNLSortKey; para2: jboolean); overload;  // throws java.io.IOException
  end;

  JNLSortResponseControl = class sealed external 'javax.naming.ldap' name 'SortResponseControl' (JNLBasicControl)
  public
    const
      OID = '1.2.840.113556.1.4.474';
  public
    constructor create(para1: JLString; para2: jboolean; para3: Arr1jbyte); overload;  // throws java.io.IOException
    constructor create(para1: JLString; para2: jboolean; const para3: array of jbyte); overload;  // throws java.io.IOException
    function isSorted(): jboolean; overload; virtual;
    function getResultCode(): jint; overload; virtual;
    function getAttributeID(): JLString; overload; virtual;
    function getException(): JNNamingException; overload; virtual;
  end;

  JPASCompression = class external 'javax.print.attribute.standard' name 'Compression' (JPAEnumSyntax, JPADocAttribute)
  public
    final class var
      fNONE: JPASCompression; external name 'NONE';
      fDEFLATE: JPASCompression; external name 'DEFLATE';
      fGZIP: JPASCompression; external name 'GZIP';
      fCOMPRESS: JPASCompression; external name 'COMPRESS';
  strict protected
    constructor create(para1: jint); overload;
    function getStringTable(): Arr1JLString; overload; virtual;
    function getEnumValueTable(): Arr1JPAEnumSyntax; overload; virtual;
  public
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASDocumentName = class sealed external 'javax.print.attribute.standard' name 'DocumentName' (JPATextSyntax, JPADocAttribute)
  public
    constructor create(para1: JLString; para2: JULocale); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASDateTimeAtCompleted = class sealed external 'javax.print.attribute.standard' name 'DateTimeAtCompleted' (JPADateTimeSyntax, JPAPrintJobAttribute)
  public
    constructor create(para1: JUDate); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASDateTimeAtCreation = class sealed external 'javax.print.attribute.standard' name 'DateTimeAtCreation' (JPADateTimeSyntax, JPAPrintJobAttribute)
  public
    constructor create(para1: JUDate); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASDateTimeAtProcessing = class sealed external 'javax.print.attribute.standard' name 'DateTimeAtProcessing' (JPADateTimeSyntax, JPAPrintJobAttribute)
  public
    constructor create(para1: JUDate); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASJobImpressionsCompleted = class sealed external 'javax.print.attribute.standard' name 'JobImpressionsCompleted' (JPAIntegerSyntax, JPAPrintJobAttribute)
  public
    constructor create(para1: jint); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASJobKOctetsProcessed = class sealed external 'javax.print.attribute.standard' name 'JobKOctetsProcessed' (JPAIntegerSyntax, JPAPrintJobAttribute)
  public
    constructor create(para1: jint); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASJobMediaSheetsCompleted = class sealed external 'javax.print.attribute.standard' name 'JobMediaSheetsCompleted' (JPAIntegerSyntax, JPAPrintJobAttribute)
  public
    constructor create(para1: jint); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASJobMessageFromOperator = class sealed external 'javax.print.attribute.standard' name 'JobMessageFromOperator' (JPATextSyntax, JPAPrintJobAttribute)
  public
    constructor create(para1: JLString; para2: JULocale); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASJobOriginatingUserName = class sealed external 'javax.print.attribute.standard' name 'JobOriginatingUserName' (JPATextSyntax, JPAPrintJobAttribute)
  public
    constructor create(para1: JLString; para2: JULocale); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASJobState = class external 'javax.print.attribute.standard' name 'JobState' (JPAEnumSyntax, JPAPrintJobAttribute)
  public
    final class var
      fUNKNOWN: JPASJobState; external name 'UNKNOWN';
      fPENDING: JPASJobState; external name 'PENDING';
      fPENDING_HELD: JPASJobState; external name 'PENDING_HELD';
      fPROCESSING: JPASJobState; external name 'PROCESSING';
      fPROCESSING_STOPPED: JPASJobState; external name 'PROCESSING_STOPPED';
      fCANCELED: JPASJobState; external name 'CANCELED';
      fABORTED: JPASJobState; external name 'ABORTED';
      fCOMPLETED: JPASJobState; external name 'COMPLETED';
  strict protected
    constructor create(para1: jint); overload;
    function getStringTable(): Arr1JLString; overload; virtual;
    function getEnumValueTable(): Arr1JPAEnumSyntax; overload; virtual;
  public
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASJobStateReasons = class sealed external 'javax.print.attribute.standard' name 'JobStateReasons' (JUHashSet, JPAPrintJobAttribute)
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jfloat); overload;
    constructor create(para1: JUCollection); overload;
    function add(para1: JPASJobStateReason): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
    function add(para1: JLObject): jboolean; overload; virtual;
  end;

  JPASNumberOfDocuments = class sealed external 'javax.print.attribute.standard' name 'NumberOfDocuments' (JPAIntegerSyntax, JPAPrintJobAttribute)
  public
    constructor create(para1: jint); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASNumberOfInterveningJobs = class sealed external 'javax.print.attribute.standard' name 'NumberOfInterveningJobs' (JPAIntegerSyntax, JPAPrintJobAttribute)
  public
    constructor create(para1: jint); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASOutputDeviceAssigned = class sealed external 'javax.print.attribute.standard' name 'OutputDeviceAssigned' (JPATextSyntax, JPAPrintJobAttribute)
  public
    constructor create(para1: JLString; para2: JULocale); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASChromaticity = class sealed external 'javax.print.attribute.standard' name 'Chromaticity' (JPAEnumSyntax, JPADocAttribute, JPAPrintRequestAttribute, JPAPrintJobAttribute)
  public
    final class var
      fMONOCHROME: JPASChromaticity; external name 'MONOCHROME';
      fCOLOR: JPASChromaticity; external name 'COLOR';
  strict protected
    constructor create(para1: jint); overload;
    function getStringTable(): Arr1JLString; overload; virtual;
    function getEnumValueTable(): Arr1JPAEnumSyntax; overload; virtual;
  public
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASCopies = class sealed external 'javax.print.attribute.standard' name 'Copies' (JPAIntegerSyntax, JPAPrintRequestAttribute, JPAPrintJobAttribute)
  public
    constructor create(para1: jint); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASDestination = class sealed external 'javax.print.attribute.standard' name 'Destination' (JPAURISyntax, JPAPrintJobAttribute, JPAPrintRequestAttribute)
  public
    constructor create(para1: JNURI); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASFidelity = class sealed external 'javax.print.attribute.standard' name 'Fidelity' (JPAEnumSyntax, JPAPrintJobAttribute, JPAPrintRequestAttribute)
  public
    final class var
      fFIDELITY_TRUE: JPASFidelity; external name 'FIDELITY_TRUE';
      fFIDELITY_FALSE: JPASFidelity; external name 'FIDELITY_FALSE';
  strict protected
    constructor create(para1: jint); overload;
    function getStringTable(): Arr1JLString; overload; virtual;
    function getEnumValueTable(): Arr1JPAEnumSyntax; overload; virtual;
  public
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASFinishings = class external 'javax.print.attribute.standard' name 'Finishings' (JPAEnumSyntax, JPADocAttribute, JPAPrintRequestAttribute, JPAPrintJobAttribute)
  public
    final class var
      fNONE: JPASFinishings; external name 'NONE';
      fSTAPLE: JPASFinishings; external name 'STAPLE';
      fCOVER: JPASFinishings; external name 'COVER';
      fBIND: JPASFinishings; external name 'BIND';
      fSADDLE_STITCH: JPASFinishings; external name 'SADDLE_STITCH';
      fEDGE_STITCH: JPASFinishings; external name 'EDGE_STITCH';
      fSTAPLE_TOP_LEFT: JPASFinishings; external name 'STAPLE_TOP_LEFT';
      fSTAPLE_BOTTOM_LEFT: JPASFinishings; external name 'STAPLE_BOTTOM_LEFT';
      fSTAPLE_TOP_RIGHT: JPASFinishings; external name 'STAPLE_TOP_RIGHT';
      fSTAPLE_BOTTOM_RIGHT: JPASFinishings; external name 'STAPLE_BOTTOM_RIGHT';
      fEDGE_STITCH_LEFT: JPASFinishings; external name 'EDGE_STITCH_LEFT';
      fEDGE_STITCH_TOP: JPASFinishings; external name 'EDGE_STITCH_TOP';
      fEDGE_STITCH_RIGHT: JPASFinishings; external name 'EDGE_STITCH_RIGHT';
      fEDGE_STITCH_BOTTOM: JPASFinishings; external name 'EDGE_STITCH_BOTTOM';
      fSTAPLE_DUAL_LEFT: JPASFinishings; external name 'STAPLE_DUAL_LEFT';
      fSTAPLE_DUAL_TOP: JPASFinishings; external name 'STAPLE_DUAL_TOP';
      fSTAPLE_DUAL_RIGHT: JPASFinishings; external name 'STAPLE_DUAL_RIGHT';
      fSTAPLE_DUAL_BOTTOM: JPASFinishings; external name 'STAPLE_DUAL_BOTTOM';
  strict protected
    constructor create(para1: jint); overload;
    function getStringTable(): Arr1JLString; overload; virtual;
    function getEnumValueTable(): Arr1JPAEnumSyntax; overload; virtual;
    function getOffset(): jint; overload; virtual;
  public
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASJobHoldUntil = class sealed external 'javax.print.attribute.standard' name 'JobHoldUntil' (JPADateTimeSyntax, JPAPrintRequestAttribute, JPAPrintJobAttribute)
  public
    constructor create(para1: JUDate); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASJobImpressions = class sealed external 'javax.print.attribute.standard' name 'JobImpressions' (JPAIntegerSyntax, JPAPrintRequestAttribute, JPAPrintJobAttribute)
  public
    constructor create(para1: jint); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASJobKOctets = class sealed external 'javax.print.attribute.standard' name 'JobKOctets' (JPAIntegerSyntax, JPAPrintRequestAttribute, JPAPrintJobAttribute)
  public
    constructor create(para1: jint); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASJobMediaSheets = class external 'javax.print.attribute.standard' name 'JobMediaSheets' (JPAIntegerSyntax, JPAPrintRequestAttribute, JPAPrintJobAttribute)
  public
    constructor create(para1: jint); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASJobName = class sealed external 'javax.print.attribute.standard' name 'JobName' (JPATextSyntax, JPAPrintRequestAttribute, JPAPrintJobAttribute)
  public
    constructor create(para1: JLString; para2: JULocale); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASJobPriority = class sealed external 'javax.print.attribute.standard' name 'JobPriority' (JPAIntegerSyntax, JPAPrintRequestAttribute, JPAPrintJobAttribute)
  public
    constructor create(para1: jint); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASJobSheets = class external 'javax.print.attribute.standard' name 'JobSheets' (JPAEnumSyntax, JPAPrintRequestAttribute, JPAPrintJobAttribute)
  public
    final class var
      fNONE: JPASJobSheets; external name 'NONE';
      fSTANDARD: JPASJobSheets; external name 'STANDARD';
  strict protected
    constructor create(para1: jint); overload;
    function getStringTable(): Arr1JLString; overload; virtual;
    function getEnumValueTable(): Arr1JPAEnumSyntax; overload; virtual;
  public
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASMedia = class abstract external 'javax.print.attribute.standard' name 'Media' (JPAEnumSyntax, JPADocAttribute, JPAPrintRequestAttribute, JPAPrintJobAttribute)
  strict protected
    constructor create(para1: jint); overload;
  public
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASMediaPrintableArea = class sealed external 'javax.print.attribute.standard' name 'MediaPrintableArea' (JLObject, JPADocAttribute, JPAPrintRequestAttribute, JPAPrintJobAttribute)
  public
    const
      INCH = 25400;
      MM = 1000;
  public
    constructor create(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint); overload;
    function getPrintableArea(para1: jint): Arr1jfloat; overload; virtual;
    function getX(para1: jint): jfloat; overload; virtual;
    function getY(para1: jint): jfloat; overload; virtual;
    function getWidth(para1: jint): jfloat; overload; virtual;
    function getHeight(para1: jint): jfloat; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
    function toString(para1: jint; para2: JLString): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JPASMultipleDocumentHandling = class external 'javax.print.attribute.standard' name 'MultipleDocumentHandling' (JPAEnumSyntax, JPAPrintRequestAttribute, JPAPrintJobAttribute)
  public
    final class var
      fSINGLE_DOCUMENT: JPASMultipleDocumentHandling; external name 'SINGLE_DOCUMENT';
      fSEPARATE_DOCUMENTS_UNCOLLATED_COPIES: JPASMultipleDocumentHandling; external name 'SEPARATE_DOCUMENTS_UNCOLLATED_COPIES';
      fSEPARATE_DOCUMENTS_COLLATED_COPIES: JPASMultipleDocumentHandling; external name 'SEPARATE_DOCUMENTS_COLLATED_COPIES';
      fSINGLE_DOCUMENT_NEW_SHEET: JPASMultipleDocumentHandling; external name 'SINGLE_DOCUMENT_NEW_SHEET';
  strict protected
    constructor create(para1: jint); overload;
    function getStringTable(): Arr1JLString; overload; virtual;
    function getEnumValueTable(): Arr1JPAEnumSyntax; overload; virtual;
  public
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASNumberUp = class sealed external 'javax.print.attribute.standard' name 'NumberUp' (JPAIntegerSyntax, JPADocAttribute, JPAPrintRequestAttribute, JPAPrintJobAttribute)
  public
    constructor create(para1: jint); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASOrientationRequested = class sealed external 'javax.print.attribute.standard' name 'OrientationRequested' (JPAEnumSyntax, JPADocAttribute, JPAPrintRequestAttribute, JPAPrintJobAttribute)
  public
    final class var
      fPORTRAIT: JPASOrientationRequested; external name 'PORTRAIT';
      fLANDSCAPE: JPASOrientationRequested; external name 'LANDSCAPE';
      fREVERSE_LANDSCAPE: JPASOrientationRequested; external name 'REVERSE_LANDSCAPE';
      fREVERSE_PORTRAIT: JPASOrientationRequested; external name 'REVERSE_PORTRAIT';
  strict protected
    constructor create(para1: jint); overload;
    function getStringTable(): Arr1JLString; overload; virtual;
    function getEnumValueTable(): Arr1JPAEnumSyntax; overload; virtual;
    function getOffset(): jint; overload; virtual;
  public
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASPageRanges = class sealed external 'javax.print.attribute.standard' name 'PageRanges' (JPASetOfIntegerSyntax, JPADocAttribute, JPAPrintRequestAttribute, JPAPrintJobAttribute)
  public
    constructor create(para1: Arr2jint); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jint); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASPresentationDirection = class sealed external 'javax.print.attribute.standard' name 'PresentationDirection' (JPAEnumSyntax, JPAPrintJobAttribute, JPAPrintRequestAttribute)
  public
    final class var
      fTOBOTTOM_TORIGHT: JPASPresentationDirection; external name 'TOBOTTOM_TORIGHT';
      fTOBOTTOM_TOLEFT: JPASPresentationDirection; external name 'TOBOTTOM_TOLEFT';
      fTOTOP_TORIGHT: JPASPresentationDirection; external name 'TOTOP_TORIGHT';
      fTOTOP_TOLEFT: JPASPresentationDirection; external name 'TOTOP_TOLEFT';
      fTORIGHT_TOBOTTOM: JPASPresentationDirection; external name 'TORIGHT_TOBOTTOM';
      fTORIGHT_TOTOP: JPASPresentationDirection; external name 'TORIGHT_TOTOP';
      fTOLEFT_TOBOTTOM: JPASPresentationDirection; external name 'TOLEFT_TOBOTTOM';
      fTOLEFT_TOTOP: JPASPresentationDirection; external name 'TOLEFT_TOTOP';
  strict protected
    function getStringTable(): Arr1JLString; overload; virtual;
    function getEnumValueTable(): Arr1JPAEnumSyntax; overload; virtual;
  public
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASPrintQuality = class external 'javax.print.attribute.standard' name 'PrintQuality' (JPAEnumSyntax, JPADocAttribute, JPAPrintRequestAttribute, JPAPrintJobAttribute)
  public
    final class var
      fDRAFT: JPASPrintQuality; external name 'DRAFT';
      fNORMAL: JPASPrintQuality; external name 'NORMAL';
      fHIGH: JPASPrintQuality; external name 'HIGH';
  strict protected
    constructor create(para1: jint); overload;
    function getStringTable(): Arr1JLString; overload; virtual;
    function getEnumValueTable(): Arr1JPAEnumSyntax; overload; virtual;
    function getOffset(): jint; overload; virtual;
  public
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASPrinterResolution = class sealed external 'javax.print.attribute.standard' name 'PrinterResolution' (JPAResolutionSyntax, JPADocAttribute, JPAPrintRequestAttribute, JPAPrintJobAttribute)
  public
    constructor create(para1: jint; para2: jint; para3: jint); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASRequestingUserName = class sealed external 'javax.print.attribute.standard' name 'RequestingUserName' (JPATextSyntax, JPAPrintRequestAttribute)
  public
    constructor create(para1: JLString; para2: JULocale); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASSheetCollate = class sealed external 'javax.print.attribute.standard' name 'SheetCollate' (JPAEnumSyntax, JPADocAttribute, JPAPrintRequestAttribute, JPAPrintJobAttribute)
  public
    final class var
      fUNCOLLATED: JPASSheetCollate; external name 'UNCOLLATED';
      fCOLLATED: JPASSheetCollate; external name 'COLLATED';
  strict protected
    constructor create(para1: jint); overload;
    function getStringTable(): Arr1JLString; overload; virtual;
    function getEnumValueTable(): Arr1JPAEnumSyntax; overload; virtual;
  public
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASSides = class sealed external 'javax.print.attribute.standard' name 'Sides' (JPAEnumSyntax, JPADocAttribute, JPAPrintRequestAttribute, JPAPrintJobAttribute)
  public
    final class var
      fONE_SIDED: JPASSides; external name 'ONE_SIDED';
      fTWO_SIDED_LONG_EDGE: JPASSides; external name 'TWO_SIDED_LONG_EDGE';
      fTWO_SIDED_SHORT_EDGE: JPASSides; external name 'TWO_SIDED_SHORT_EDGE';
      fDUPLEX: JPASSides; external name 'DUPLEX';
      fTUMBLE: JPASSides; external name 'TUMBLE';
  strict protected
    constructor create(para1: jint); overload;
    function getStringTable(): Arr1JLString; overload; virtual;
    function getEnumValueTable(): Arr1JPAEnumSyntax; overload; virtual;
  public
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASColorSupported = class sealed external 'javax.print.attribute.standard' name 'ColorSupported' (JPAEnumSyntax, JPAPrintServiceAttribute)
  public
    final class var
      fNOT_SUPPORTED: JPASColorSupported; external name 'NOT_SUPPORTED';
      fSUPPORTED: JPASColorSupported; external name 'SUPPORTED';
  strict protected
    constructor create(para1: jint); overload;
    function getStringTable(): Arr1JLString; overload; virtual;
    function getEnumValueTable(): Arr1JPAEnumSyntax; overload; virtual;
  public
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASPDLOverrideSupported = class external 'javax.print.attribute.standard' name 'PDLOverrideSupported' (JPAEnumSyntax, JPAPrintServiceAttribute)
  public
    final class var
      fNOT_ATTEMPTED: JPASPDLOverrideSupported; external name 'NOT_ATTEMPTED';
      fATTEMPTED: JPASPDLOverrideSupported; external name 'ATTEMPTED';
  strict protected
    constructor create(para1: jint); overload;
    function getStringTable(): Arr1JLString; overload; virtual;
    function getEnumValueTable(): Arr1JPAEnumSyntax; overload; virtual;
  public
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASPagesPerMinute = class sealed external 'javax.print.attribute.standard' name 'PagesPerMinute' (JPAIntegerSyntax, JPAPrintServiceAttribute)
  public
    constructor create(para1: jint); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASPagesPerMinuteColor = class sealed external 'javax.print.attribute.standard' name 'PagesPerMinuteColor' (JPAIntegerSyntax, JPAPrintServiceAttribute)
  public
    constructor create(para1: jint); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASPrinterInfo = class sealed external 'javax.print.attribute.standard' name 'PrinterInfo' (JPATextSyntax, JPAPrintServiceAttribute)
  public
    constructor create(para1: JLString; para2: JULocale); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASPrinterIsAcceptingJobs = class sealed external 'javax.print.attribute.standard' name 'PrinterIsAcceptingJobs' (JPAEnumSyntax, JPAPrintServiceAttribute)
  public
    final class var
      fNOT_ACCEPTING_JOBS: JPASPrinterIsAcceptingJobs; external name 'NOT_ACCEPTING_JOBS';
      fACCEPTING_JOBS: JPASPrinterIsAcceptingJobs; external name 'ACCEPTING_JOBS';
  strict protected
    constructor create(para1: jint); overload;
    function getStringTable(): Arr1JLString; overload; virtual;
    function getEnumValueTable(): Arr1JPAEnumSyntax; overload; virtual;
  public
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASPrinterLocation = class sealed external 'javax.print.attribute.standard' name 'PrinterLocation' (JPATextSyntax, JPAPrintServiceAttribute)
  public
    constructor create(para1: JLString; para2: JULocale); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASPrinterMakeAndModel = class sealed external 'javax.print.attribute.standard' name 'PrinterMakeAndModel' (JPATextSyntax, JPAPrintServiceAttribute)
  public
    constructor create(para1: JLString; para2: JULocale); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASPrinterMessageFromOperator = class sealed external 'javax.print.attribute.standard' name 'PrinterMessageFromOperator' (JPATextSyntax, JPAPrintServiceAttribute)
  public
    constructor create(para1: JLString; para2: JULocale); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASPrinterMoreInfo = class sealed external 'javax.print.attribute.standard' name 'PrinterMoreInfo' (JPAURISyntax, JPAPrintServiceAttribute)
  public
    constructor create(para1: JNURI); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASPrinterMoreInfoManufacturer = class sealed external 'javax.print.attribute.standard' name 'PrinterMoreInfoManufacturer' (JPAURISyntax, JPAPrintServiceAttribute)
  public
    constructor create(para1: JNURI); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASPrinterName = class sealed external 'javax.print.attribute.standard' name 'PrinterName' (JPATextSyntax, JPAPrintServiceAttribute)
  public
    constructor create(para1: JLString; para2: JULocale); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASPrinterState = class sealed external 'javax.print.attribute.standard' name 'PrinterState' (JPAEnumSyntax, JPAPrintServiceAttribute)
  public
    final class var
      fUNKNOWN: JPASPrinterState; external name 'UNKNOWN';
      fIDLE: JPASPrinterState; external name 'IDLE';
      fPROCESSING: JPASPrinterState; external name 'PROCESSING';
      fSTOPPED: JPASPrinterState; external name 'STOPPED';
  strict protected
    constructor create(para1: jint); overload;
    function getStringTable(): Arr1JLString; overload; virtual;
    function getEnumValueTable(): Arr1JPAEnumSyntax; overload; virtual;
  public
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASPrinterStateReasons = class sealed external 'javax.print.attribute.standard' name 'PrinterStateReasons' (JUHashMap, JPAPrintServiceAttribute)
  public
    type
      InnerPrinterStateReasonSet = class;
      Arr1InnerPrinterStateReasonSet = array of InnerPrinterStateReasonSet;
      Arr2InnerPrinterStateReasonSet = array of Arr1InnerPrinterStateReasonSet;
      Arr3InnerPrinterStateReasonSet = array of Arr2InnerPrinterStateReasonSet;
      InnerPrinterStateReasonSetIterator = class;
      Arr1InnerPrinterStateReasonSetIterator = array of InnerPrinterStateReasonSetIterator;
      Arr2InnerPrinterStateReasonSetIterator = array of Arr1InnerPrinterStateReasonSetIterator;
      Arr3InnerPrinterStateReasonSetIterator = array of Arr2InnerPrinterStateReasonSetIterator;
      InnerPrinterStateReasonSet = class external 'javax.print.attribute.standard' name 'PrinterStateReasonSet' 
      end;

      InnerPrinterStateReasonSetIterator = class external 'javax.print.attribute.standard' name 'PrinterStateReasonSetIterator' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jfloat); overload;
    constructor create(para1: JUMap); overload;
    function put(para1: JPASPrinterStateReason; para2: JPASSeverity): JPASSeverity; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
    function printerStateReasonSet(para1: JPASSeverity): JUSet; overload; virtual;
    function put(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
  end;

  JPASPrinterURI = class sealed external 'javax.print.attribute.standard' name 'PrinterURI' (JPAURISyntax, JPAPrintServiceAttribute)
  public
    constructor create(para1: JNURI); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASQueuedJobCount = class sealed external 'javax.print.attribute.standard' name 'QueuedJobCount' (JPAIntegerSyntax, JPAPrintServiceAttribute)
  public
    constructor create(para1: jint); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASCopiesSupported = class sealed external 'javax.print.attribute.standard' name 'CopiesSupported' (JPASetOfIntegerSyntax, JPASupportedValuesAttribute)
  public
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jint); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASJobImpressionsSupported = class sealed external 'javax.print.attribute.standard' name 'JobImpressionsSupported' (JPASetOfIntegerSyntax, JPASupportedValuesAttribute)
  public
    constructor create(para1: jint; para2: jint); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASJobKOctetsSupported = class sealed external 'javax.print.attribute.standard' name 'JobKOctetsSupported' (JPASetOfIntegerSyntax, JPASupportedValuesAttribute)
  public
    constructor create(para1: jint; para2: jint); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASJobMediaSheetsSupported = class sealed external 'javax.print.attribute.standard' name 'JobMediaSheetsSupported' (JPASetOfIntegerSyntax, JPASupportedValuesAttribute)
  public
    constructor create(para1: jint; para2: jint); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASJobPrioritySupported = class sealed external 'javax.print.attribute.standard' name 'JobPrioritySupported' (JPAIntegerSyntax, JPASupportedValuesAttribute)
  public
    constructor create(para1: jint); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JPASNumberUpSupported = class sealed external 'javax.print.attribute.standard' name 'NumberUpSupported' (JPASetOfIntegerSyntax, JPASupportedValuesAttribute)
  public
    constructor create(para1: Arr2jint); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jint); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function getCategory(): JLClass; overload; virtual; final;
    function getName(): JLString; overload; virtual; final;
  end;

  JSPBLazyActionMap = class external 'javax.swing.plaf.basic' name 'LazyActionMap' (JSPActionMapUIResource)
  public
    procedure put(para1: JSAction); overload; virtual;
    procedure put(para1: JLObject; para2: JSAction); overload; virtual;
    function get(para1: JLObject): JSAction; overload; virtual;
    procedure remove(para1: JLObject); overload; virtual;
    procedure clear(); overload; virtual;
    function keys(): Arr1JLObject; overload; virtual;
    function size(): jint; overload; virtual;
    function allKeys(): Arr1JLObject; overload; virtual;
    procedure setParent(para1: JSActionMap); overload; virtual;
  end;

  JSPComponentInputMapUIResource = class external 'javax.swing.plaf' name 'ComponentInputMapUIResource' (JSComponentInputMap, JSPUIResource)
  public
    constructor create(para1: JSJComponent); overload;
  end;

  JSColorChooserDialog = class external 'javax.swing' name 'ColorChooserDialog' (JSJDialog)
  public
    type
      InnerCloser = class;
      Arr1InnerCloser = array of InnerCloser;
      Arr2InnerCloser = array of Arr1InnerCloser;
      Arr3InnerCloser = array of Arr2InnerCloser;
      InnerDisposeOnClose = class;
      Arr1InnerDisposeOnClose = array of InnerDisposeOnClose;
      Arr2InnerDisposeOnClose = array of Arr1InnerDisposeOnClose;
      Arr3InnerDisposeOnClose = array of Arr2InnerDisposeOnClose;
      InnerCloser = class external 'javax.swing' name 'Closer' 
      end;

      InnerDisposeOnClose = class external 'javax.swing' name 'DisposeOnClose' 
      end;

  public
    constructor create(para1: JADialog; para2: JLString; para3: jboolean; para4: JAComponent; para5: JSJColorChooser; para6: JAEActionListener; para7: JAEActionListener); overload;  // throws java.awt.HeadlessException
    constructor create(para1: JAFrame; para2: JLString; para3: jboolean; para4: JAComponent; para5: JSJColorChooser; para6: JAEActionListener; para7: JAEActionListener); overload;  // throws java.awt.HeadlessException
  strict protected
    procedure initColorChooserDialog(para1: JAComponent; para2: JSJColorChooser; para3: JAEActionListener; para4: JAEActionListener); overload; virtual;
  public
    procedure show(); overload; virtual;
    procedure reset(); overload; virtual;
  end;

  OOPInterceptorCurrent = interface external 'org.omg.PortableInterceptor' name 'Current' (OOPInterceptorCurrentOperations, OOCCurrent, OOCPIDLEntity)
  end;

  OOPServerCurrent = interface external 'org.omg.PortableServer' name 'Current' (OOPServerCurrentOperations, OOCCurrent, OOCPIDLEntity)
  end;

  OOCIDLType = interface external 'org.omg.CORBA' name 'IDLType' (OOCIDLTypeOperations, OOCIRObject, OOCPIDLEntity)
  end;

  OOC_PolicyStub = class external 'org.omg.CORBA' name '_PolicyStub' (OOCPObjectImpl, OOCPolicy)
  public
    constructor create(); overload;
    constructor create(para1: OOCPDelegate); overload;
    function policy_type(): jint; overload; virtual;
    function copy(): OOCPolicy; overload; virtual;
    procedure destroy(); overload; virtual;
    function _ids(): Arr1JLString; overload; virtual;
  end;

  OOPIdAssignmentPolicy = interface external 'org.omg.PortableServer' name 'IdAssignmentPolicy' (OOPIdAssignmentPolicyOperations, OOCPolicy, OOCPIDLEntity)
  end;

  OOPIdUniquenessPolicy = interface external 'org.omg.PortableServer' name 'IdUniquenessPolicy' (OOPIdUniquenessPolicyOperations, OOCPolicy, OOCPIDLEntity)
  end;

  OOPImplicitActivationPolicy = interface external 'org.omg.PortableServer' name 'ImplicitActivationPolicy' (OOPImplicitActivationPolicyOperations, OOCPolicy, OOCPIDLEntity)
  end;

  OOPLifespanPolicy = interface external 'org.omg.PortableServer' name 'LifespanPolicy' (OOPLifespanPolicyOperations, OOCPolicy, OOCPIDLEntity)
  end;

  OOPRequestProcessingPolicy = interface external 'org.omg.PortableServer' name 'RequestProcessingPolicy' (OOPRequestProcessingPolicyOperations, OOCPolicy, OOCPIDLEntity)
  end;

  OOPServantRetentionPolicy = interface external 'org.omg.PortableServer' name 'ServantRetentionPolicy' (OOPServantRetentionPolicyOperations, OOCPolicy, OOCPIDLEntity)
  end;

  OOPThreadPolicy = interface external 'org.omg.PortableServer' name 'ThreadPolicy' (OOPThreadPolicyOperations, OOCPolicy, OOCPIDLEntity)
  end;

  OOCBounds = class sealed external 'org.omg.CORBA' name 'Bounds' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOCDInvalid = class sealed external 'org.omg.CORBA.DynAnyPackage' name 'Invalid' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOCDInvalidSeq = class sealed external 'org.omg.CORBA.DynAnyPackage' name 'InvalidSeq' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOCDInvalidValue = class sealed external 'org.omg.CORBA.DynAnyPackage' name 'InvalidValue' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOCDTypeMismatch = class sealed external 'org.omg.CORBA.DynAnyPackage' name 'TypeMismatch' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOCOInconsistentTypeCode = class sealed external 'org.omg.CORBA.ORBPackage' name 'InconsistentTypeCode' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOCOInvalidName = class sealed external 'org.omg.CORBA.ORBPackage' name 'InvalidName' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOCPolicyError = class sealed external 'org.omg.CORBA' name 'PolicyError' (OOCUserException)
  public
    var
      freason: jshort; external name 'reason';
  public
    constructor create(); overload;
    constructor create(para1: jshort); overload;
    constructor create(para1: JLString; para2: jshort); overload;
  end;

  OOCTBadKind = class sealed external 'org.omg.CORBA.TypeCodePackage' name 'BadKind' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOCTBounds = class sealed external 'org.omg.CORBA.TypeCodePackage' name 'Bounds' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOCUnknownUserException = class sealed external 'org.omg.CORBA' name 'UnknownUserException' (OOCUserException)
  public
    var
      fexcept: OOCAny; external name 'except';
  public
    constructor create(); overload;
    constructor create(para1: OOCAny); overload;
  end;

  OOCWrongTransaction = class sealed external 'org.omg.CORBA' name 'WrongTransaction' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOCNInvalidAddress = class sealed external 'org.omg.CosNaming.NamingContextExtPackage' name 'InvalidAddress' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOCNAlreadyBound = class sealed external 'org.omg.CosNaming.NamingContextPackage' name 'AlreadyBound' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOCNCannotProceed = class sealed external 'org.omg.CosNaming.NamingContextPackage' name 'CannotProceed' (OOCUserException)
  public
    var
      fcxt: OOCNamingContext; external name 'cxt';
      frest_of_name: Arr1OOCNameComponent; external name 'rest_of_name';
  public
    constructor create(); overload;
    constructor create(para1: OOCNamingContext; para2: Arr1OOCNameComponent); overload;
    constructor create(para1: OOCNamingContext; const para2: array of OOCNameComponent); overload;
    constructor create(para1: JLString; para2: OOCNamingContext; para3: Arr1OOCNameComponent); overload;
    constructor create(para1: JLString; para2: OOCNamingContext; const para3: array of OOCNameComponent); overload;
  end;

  OOCNInvalidName = class sealed external 'org.omg.CosNaming.NamingContextPackage' name 'InvalidName' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOCNNotEmpty = class sealed external 'org.omg.CosNaming.NamingContextPackage' name 'NotEmpty' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOCNNotFound = class sealed external 'org.omg.CosNaming.NamingContextPackage' name 'NotFound' (OOCUserException)
  public
    var
      fwhy: OOCNNotFoundReason; external name 'why';
      frest_of_name: Arr1OOCNameComponent; external name 'rest_of_name';
  public
    constructor create(); overload;
    constructor create(para1: OOCNNotFoundReason; para2: Arr1OOCNameComponent); overload;
    constructor create(para1: OOCNNotFoundReason; const para2: array of OOCNameComponent); overload;
    constructor create(para1: JLString; para2: OOCNNotFoundReason; para3: Arr1OOCNameComponent); overload;
    constructor create(para1: JLString; para2: OOCNNotFoundReason; const para3: array of OOCNameComponent); overload;
  end;

  OODDInconsistentTypeCode = class sealed external 'org.omg.DynamicAny.DynAnyFactoryPackage' name 'InconsistentTypeCode' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OODDInvalidValue = class sealed external 'org.omg.DynamicAny.DynAnyPackage' name 'InvalidValue' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OODDTypeMismatch = class sealed external 'org.omg.DynamicAny.DynAnyPackage' name 'TypeMismatch' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOICUnknownEncoding = class sealed external 'org.omg.IOP.CodecFactoryPackage' name 'UnknownEncoding' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOICFormatMismatch = class sealed external 'org.omg.IOP.CodecPackage' name 'FormatMismatch' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOICInvalidTypeForEncoding = class sealed external 'org.omg.IOP.CodecPackage' name 'InvalidTypeForEncoding' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOICTypeMismatch = class sealed external 'org.omg.IOP.CodecPackage' name 'TypeMismatch' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOPInterceptorForwardRequest = class sealed external 'org.omg.PortableInterceptor' name 'ForwardRequest' (OOCUserException)
  public
    var
      fforward: OOCObject; external name 'forward';
  public
    constructor create(); overload;
    constructor create(para1: OOCObject); overload;
    constructor create(para1: JLString; para2: OOCObject); overload;
  end;

  OOPInvalidSlot = class sealed external 'org.omg.PortableInterceptor' name 'InvalidSlot' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOPODuplicateName = class sealed external 'org.omg.PortableInterceptor.ORBInitInfoPackage' name 'DuplicateName' (OOCUserException)
  public
    var
      fname: JLString; external name 'name';
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
  end;

  OOPOInvalidName = class sealed external 'org.omg.PortableInterceptor.ORBInitInfoPackage' name 'InvalidName' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOPCNoContext = class sealed external 'org.omg.PortableServer.CurrentPackage' name 'NoContext' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOPServerForwardRequest = class sealed external 'org.omg.PortableServer' name 'ForwardRequest' (OOCUserException)
  public
    var
      fforward_reference: OOCObject; external name 'forward_reference';
  public
    constructor create(); overload;
    constructor create(para1: OOCObject); overload;
    constructor create(para1: JLString; para2: OOCObject); overload;
  end;

  OOPPAdapterInactive = class sealed external 'org.omg.PortableServer.POAManagerPackage' name 'AdapterInactive' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOPPAdapterAlreadyExists = class sealed external 'org.omg.PortableServer.POAPackage' name 'AdapterAlreadyExists' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOPPAdapterNonExistent = class sealed external 'org.omg.PortableServer.POAPackage' name 'AdapterNonExistent' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOPPInvalidPolicy = class sealed external 'org.omg.PortableServer.POAPackage' name 'InvalidPolicy' (OOCUserException)
  public
    var
      findex: jshort; external name 'index';
  public
    constructor create(); overload;
    constructor create(para1: jshort); overload;
    constructor create(para1: JLString; para2: jshort); overload;
  end;

  OOPPNoServant = class sealed external 'org.omg.PortableServer.POAPackage' name 'NoServant' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOPPObjectAlreadyActive = class sealed external 'org.omg.PortableServer.POAPackage' name 'ObjectAlreadyActive' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOPPObjectNotActive = class sealed external 'org.omg.PortableServer.POAPackage' name 'ObjectNotActive' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOPPServantAlreadyActive = class sealed external 'org.omg.PortableServer.POAPackage' name 'ServantAlreadyActive' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOPPServantNotActive = class sealed external 'org.omg.PortableServer.POAPackage' name 'ServantNotActive' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOPPWrongAdapter = class sealed external 'org.omg.PortableServer.POAPackage' name 'WrongAdapter' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOPPWrongPolicy = class sealed external 'org.omg.PortableServer.POAPackage' name 'WrongPolicy' (OOCUserException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  OOCDataInputStream = interface external 'org.omg.CORBA' name 'DataInputStream' (OOCPValueBase)
    function read_any(): OOCAny; overload;
    function read_boolean(): jboolean; overload;
    function read_char(): jchar; overload;
    function read_wchar(): jchar; overload;
    function read_octet(): jbyte; overload;
    function read_short(): jshort; overload;
    function read_ushort(): jshort; overload;
    function read_long(): jint; overload;
    function read_ulong(): jint; overload;
    function read_longlong(): jlong; overload;
    function read_ulonglong(): jlong; overload;
    function read_float(): jfloat; overload;
    function read_double(): jdouble; overload;
    function read_string(): JLString; overload;
    function read_wstring(): JLString; overload;
    function read_Object(): OOCObject; overload;
    function read_Abstract(): JLObject; overload;
    function read_Value(): JISerializable; overload;
    function read_TypeCode(): OOCTypeCode; overload;
    procedure read_any_array(para1: OOCAnySeqHolder; para2: jint; para3: jint); overload;
    procedure read_boolean_array(para1: OOCBooleanSeqHolder; para2: jint; para3: jint); overload;
    procedure read_char_array(para1: OOCCharSeqHolder; para2: jint; para3: jint); overload;
    procedure read_wchar_array(para1: OOCWCharSeqHolder; para2: jint; para3: jint); overload;
    procedure read_octet_array(para1: OOCOctetSeqHolder; para2: jint; para3: jint); overload;
    procedure read_short_array(para1: OOCShortSeqHolder; para2: jint; para3: jint); overload;
    procedure read_ushort_array(para1: OOCUShortSeqHolder; para2: jint; para3: jint); overload;
    procedure read_long_array(para1: OOCLongSeqHolder; para2: jint; para3: jint); overload;
    procedure read_ulong_array(para1: OOCULongSeqHolder; para2: jint; para3: jint); overload;
    procedure read_ulonglong_array(para1: OOCULongLongSeqHolder; para2: jint; para3: jint); overload;
    procedure read_longlong_array(para1: OOCLongLongSeqHolder; para2: jint; para3: jint); overload;
    procedure read_float_array(para1: OOCFloatSeqHolder; para2: jint; para3: jint); overload;
    procedure read_double_array(para1: OOCDoubleSeqHolder; para2: jint; para3: jint); overload;
  end;

  OOCDataOutputStream = interface external 'org.omg.CORBA' name 'DataOutputStream' (OOCPValueBase)
    procedure write_any(para1: OOCAny); overload;
    procedure write_boolean(para1: jboolean); overload;
    procedure write_char(para1: jchar); overload;
    procedure write_wchar(para1: jchar); overload;
    procedure write_octet(para1: jbyte); overload;
    procedure write_short(para1: jshort); overload;
    procedure write_ushort(para1: jshort); overload;
    procedure write_long(para1: jint); overload;
    procedure write_ulong(para1: jint); overload;
    procedure write_longlong(para1: jlong); overload;
    procedure write_ulonglong(para1: jlong); overload;
    procedure write_float(para1: jfloat); overload;
    procedure write_double(para1: jdouble); overload;
    procedure write_string(para1: JLString); overload;
    procedure write_wstring(para1: JLString); overload;
    procedure write_Object(para1: OOCObject); overload;
    procedure write_Abstract(para1: JLObject); overload;
    procedure write_Value(para1: JISerializable); overload;
    procedure write_TypeCode(para1: OOCTypeCode); overload;
    procedure write_any_array(para1: Arr1OOCAny; para2: jint; para3: jint); overload;
    procedure write_any_array(var para1: array of OOCAny; para2: jint; para3: jint); overload;
    procedure write_boolean_array(para1: Arr1jboolean; para2: jint; para3: jint); overload;
    procedure write_boolean_array(var para1: array of jboolean; para2: jint; para3: jint); overload;
    procedure write_char_array(para1: Arr1jchar; para2: jint; para3: jint); overload;
    procedure write_char_array(var para1: array of jchar; para2: jint; para3: jint); overload;
    procedure write_wchar_array(para1: Arr1jchar; para2: jint; para3: jint); overload;
    procedure write_wchar_array(var para1: array of jchar; para2: jint; para3: jint); overload;
    procedure write_octet_array(para1: Arr1jbyte; para2: jint; para3: jint); overload;
    procedure write_octet_array(var para1: array of jbyte; para2: jint; para3: jint); overload;
    procedure write_short_array(para1: Arr1jshort; para2: jint; para3: jint); overload;
    procedure write_short_array(var para1: array of jshort; para2: jint; para3: jint); overload;
    procedure write_ushort_array(para1: Arr1jshort; para2: jint; para3: jint); overload;
    procedure write_ushort_array(var para1: array of jshort; para2: jint; para3: jint); overload;
    procedure write_long_array(para1: Arr1jint; para2: jint; para3: jint); overload;
    procedure write_long_array(var para1: array of jint; para2: jint; para3: jint); overload;
    procedure write_ulong_array(para1: Arr1jint; para2: jint; para3: jint); overload;
    procedure write_ulong_array(var para1: array of jint; para2: jint; para3: jint); overload;
    procedure write_ulonglong_array(para1: Arr1jlong; para2: jint; para3: jint); overload;
    procedure write_ulonglong_array(var para1: array of jlong; para2: jint; para3: jint); overload;
    procedure write_longlong_array(para1: Arr1jlong; para2: jint; para3: jint); overload;
    procedure write_longlong_array(var para1: array of jlong; para2: jint; para3: jint); overload;
    procedure write_float_array(para1: Arr1jfloat; para2: jint; para3: jint); overload;
    procedure write_float_array(var para1: array of jfloat; para2: jint; para3: jint); overload;
    procedure write_double_array(para1: Arr1jdouble; para2: jint; para3: jint); overload;
    procedure write_double_array(var para1: array of jdouble; para2: jint; para3: jint); overload;
  end;

  OOCPCustomValue = interface external 'org.omg.CORBA.portable' name 'CustomValue' (OOCPValueBase, OOCCustomMarshal)
  end;

  OOCPStreamableValue = interface external 'org.omg.CORBA.portable' name 'StreamableValue' (OOCPStreamable, OOCPValueBase)
  end;

  OOPObjectReferenceFactory = interface external 'org.omg.PortableInterceptor' name 'ObjectReferenceFactory' (OOCPValueBase)
    function make_object(para1: JLString; para2: Arr1jbyte): OOCObject; overload;
    function make_object(para1: JLString; var para2: array of jbyte): OOCObject; overload;
  end;

  OOC_BindingIteratorStub = class external 'org.omg.CosNaming' name '_BindingIteratorStub' (OOCPObjectImpl, OOCBindingIterator)
  public
    constructor create(); overload;
    function next_one(para1: OOCBindingHolder): jboolean; overload; virtual;
    function next_n(para1: jint; para2: OOCBindingListHolder): jboolean; overload; virtual;
    procedure destroy(); overload; virtual;
    function _ids(): Arr1JLString; overload; virtual;
  end;

  OOCNamingContextExt = interface external 'org.omg.CosNaming' name 'NamingContextExt' (OOCNamingContextExtOperations, OOCNamingContext, OOCPIDLEntity)
  end;

  OOC_NamingContextStub = class external 'org.omg.CosNaming' name '_NamingContextStub' (OOCPObjectImpl, OOCNamingContext)
  public
    constructor create(); overload;
    procedure bind(para1: Arr1OOCNameComponent; para2: OOCObject); overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName, org.omg.CosNaming.NamingContextPackage.AlreadyBound
    procedure bind(var para1: array of OOCNameComponent; para2: OOCObject); overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName, org.omg.CosNaming.NamingContextPackage.AlreadyBound
    procedure bind_context(para1: Arr1OOCNameComponent; para2: OOCNamingContext); overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName, org.omg.CosNaming.NamingContextPackage.AlreadyBound
    procedure bind_context(var para1: array of OOCNameComponent; para2: OOCNamingContext); overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName, org.omg.CosNaming.NamingContextPackage.AlreadyBound
    procedure rebind(para1: Arr1OOCNameComponent; para2: OOCObject); overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName
    procedure rebind(var para1: array of OOCNameComponent; para2: OOCObject); overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName
    procedure rebind_context(para1: Arr1OOCNameComponent; para2: OOCNamingContext); overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName
    procedure rebind_context(var para1: array of OOCNameComponent; para2: OOCNamingContext); overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName
    function resolve(para1: Arr1OOCNameComponent): OOCObject; overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName
    function resolve(var para1: array of OOCNameComponent): OOCObject; overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName
    procedure unbind(para1: Arr1OOCNameComponent); overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName
    procedure unbind(var para1: array of OOCNameComponent); overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName
    procedure list(para1: jint; para2: OOCBindingListHolder; para3: OOCBindingIteratorHolder); overload; virtual;
    function new_context(): OOCNamingContext; overload; virtual;
    function bind_new_context(para1: Arr1OOCNameComponent): OOCNamingContext; overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.AlreadyBound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName
    function bind_new_context(var para1: array of OOCNameComponent): OOCNamingContext; overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.AlreadyBound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName
    procedure destroy(); overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.NotEmpty
    function _ids(): Arr1JLString; overload; virtual;
  end;

  OODDynArray = interface external 'org.omg.DynamicAny' name 'DynArray' (OODDynArrayOperations, OODDynAny, OOCPIDLEntity)
  end;

  OODDynEnum = interface external 'org.omg.DynamicAny' name 'DynEnum' (OODDynEnumOperations, OODDynAny, OOCPIDLEntity)
  end;

  OODDynFixed = interface external 'org.omg.DynamicAny' name 'DynFixed' (OODDynFixedOperations, OODDynAny, OOCPIDLEntity)
  end;

  OODDynSequence = interface external 'org.omg.DynamicAny' name 'DynSequence' (OODDynSequenceOperations, OODDynAny, OOCPIDLEntity)
  end;

  OODDynStruct = interface external 'org.omg.DynamicAny' name 'DynStruct' (OODDynStructOperations, OODDynAny, OOCPIDLEntity)
  end;

  OODDynUnion = interface external 'org.omg.DynamicAny' name 'DynUnion' (OODDynUnionOperations, OODDynAny, OOCPIDLEntity)
  end;

  OODDynValueCommon = interface external 'org.omg.DynamicAny' name 'DynValueCommon' (OODDynValueCommonOperations, OODDynAny, OOCPIDLEntity)
  end;

  OOD_DynAnyStub = class external 'org.omg.DynamicAny' name '_DynAnyStub' (OOCPObjectImpl, OODDynAny)
  public
    final class var
      f_opsClass: JLClass; external name '_opsClass';
  public
    constructor create(); overload;
    function &type(): OOCTypeCode; overload; virtual;
    procedure assign(para1: OODDynAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch
    procedure from_any(para1: OOCAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function to_any(): OOCAny; overload; virtual;
    function equal(para1: OODDynAny): jboolean; overload; virtual;
    procedure destroy(); overload; virtual;
    function copy(): OODDynAny; overload; virtual;
    procedure insert_boolean(para1: jboolean); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_octet(para1: jbyte); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_char(para1: jchar); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_short(para1: jshort); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_ushort(para1: jshort); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_long(para1: jint); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_ulong(para1: jint); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_float(para1: jfloat); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_double(para1: jdouble); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_string(para1: JLString); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_reference(para1: OOCObject); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_typecode(para1: OOCTypeCode); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_longlong(para1: jlong); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_ulonglong(para1: jlong); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_wchar(para1: jchar); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_wstring(para1: JLString); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_any(para1: OOCAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_dyn_any(para1: OODDynAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_val(para1: JISerializable); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_boolean(): jboolean; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_octet(): jbyte; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_char(): jchar; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_short(): jshort; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_ushort(): jshort; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_long(): jint; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_ulong(): jint; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_float(): jfloat; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_double(): jdouble; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_string(): JLString; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_reference(): OOCObject; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_typecode(): OOCTypeCode; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_longlong(): jlong; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_ulonglong(): jlong; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_wchar(): jchar; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_wstring(): JLString; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_any(): OOCAny; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_dyn_any(): OODDynAny; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_val(): JISerializable; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function seek(para1: jint): jboolean; overload; virtual;
    procedure rewind(); overload; virtual;
    function next(): jboolean; overload; virtual;
    function component_count(): jint; overload; virtual;
    function current_component(): OODDynAny; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch
    function _ids(): Arr1JLString; overload; virtual;
  end;

  OOD_DynAnyFactoryStub = class external 'org.omg.DynamicAny' name '_DynAnyFactoryStub' (OOCPObjectImpl, OODDynAnyFactory)
  public
    final class var
      f_opsClass: JLClass; external name '_opsClass';
  public
    constructor create(); overload;
    function create_dyn_any(para1: OOCAny): OODDynAny; overload; virtual;  // throws org.omg.DynamicAny.DynAnyFactoryPackage.InconsistentTypeCode
    function create_dyn_any_from_type_code(para1: OOCTypeCode): OODDynAny; overload; virtual;  // throws org.omg.DynamicAny.DynAnyFactoryPackage.InconsistentTypeCode
    function _ids(): Arr1JLString; overload; virtual;
  end;

  OOPClientRequestInterceptor = interface external 'org.omg.PortableInterceptor' name 'ClientRequestInterceptor' (OOPClientRequestInterceptorOperations, OOPInterceptor, OOCPIDLEntity)
  end;

  OOPIORInterceptor = interface external 'org.omg.PortableInterceptor' name 'IORInterceptor' (OOPIORInterceptorOperations, OOPInterceptor, OOCPIDLEntity)
  end;

  OOPServerRequestInterceptor = interface external 'org.omg.PortableInterceptor' name 'ServerRequestInterceptor' (OOPServerRequestInterceptorOperations, OOPInterceptor, OOCPIDLEntity)
  end;

  OOPClientRequestInfo = interface external 'org.omg.PortableInterceptor' name 'ClientRequestInfo' (OOPClientRequestInfoOperations, OOPRequestInfo, OOCPIDLEntity)
  end;

  OOPServerRequestInfo = interface external 'org.omg.PortableInterceptor' name 'ServerRequestInfo' (OOPServerRequestInfoOperations, OOPRequestInfo, OOCPIDLEntity)
  end;

  OOPServantActivator = interface external 'org.omg.PortableServer' name 'ServantActivator' (OOPServantActivatorOperations, OOPServantManager, OOCPIDLEntity)
  end;

  OOPServantLocator = interface external 'org.omg.PortableServer' name 'ServantLocator' (OOPServantLocatorOperations, OOPServantManager, OOCPIDLEntity)
  end;

  JSPDimensionUIResource = class external 'javax.swing.plaf' name 'DimensionUIResource' (JADimension, JSPUIResource)
  public
    constructor create(para1: jint; para2: jint); overload;
  end;

  JSCPKIXBuilderParameters = class external 'java.security.cert' name 'PKIXBuilderParameters' (JSCPKIXParameters)
  public
    constructor create(para1: JUSet; para2: JSCCertSelector); overload;  // throws java.security.InvalidAlgorithmParameterException
    constructor create(para1: JSKeyStore; para2: JSCCertSelector); overload;  // throws java.security.KeyStoreException, java.security.InvalidAlgorithmParameterException
    procedure setMaxPathLength(para1: jint); overload; virtual;
    function getMaxPathLength(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSCPKIXCertPathBuilderResult = class external 'java.security.cert' name 'PKIXCertPathBuilderResult' (JSCPKIXCertPathValidatorResult, JSCCertPathBuilderResult)
  public
    constructor create(para1: JSCCertPath; para2: JSCTrustAnchor; para3: JSCPolicyNode; para4: JSPublicKey); overload;
    function getCertPath(): JSCCertPath; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JTDictionaryBasedBreakIterator = class external 'java.text' name 'DictionaryBasedBreakIterator' (JTRuleBasedBreakIterator)
  public
    constructor create(para1: JLString; para2: JLString); overload;  // throws java.io.IOException
    procedure setText(para1: JTCharacterIterator); overload; virtual;
    function first(): jint; overload; virtual;
    function last(): jint; overload; virtual;
    function previous(): jint; overload; virtual;
    function preceding(para1: jint): jint; overload; virtual;
    function following(para1: jint): jint; overload; virtual;
  strict protected
    function handleNext(): jint; overload; virtual;
    function lookupCategory(para1: jint): jint; overload; virtual;
  end;

  JAFont = class external 'java.awt' name 'Font' (JLObject, JISerializable)
  public
    const
      DIALOG = 'Dialog';
      DIALOG_INPUT = 'DialogInput';
      SANS_SERIF = 'SansSerif';
      SERIF = 'Serif';
      MONOSPACED = 'Monospaced';
      PLAIN = 0;
      BOLD = 1;
      ITALIC = 2;
      ROMAN_BASELINE = 0;
      CENTER_BASELINE = 1;
      HANGING_BASELINE = 2;
      TRUETYPE_FONT = 0;
      TYPE1_FONT = 1;
  strict protected
    var
      fname: JLString; external name 'name';
      fstyle: jint; external name 'style';
      fsize: jint; external name 'size';
      fpointSize: jfloat; external name 'pointSize';
  public
    const
      LAYOUT_LEFT_TO_RIGHT = 0;
      LAYOUT_RIGHT_TO_LEFT = 1;
      LAYOUT_NO_START_CONTEXT = 2;
      LAYOUT_NO_LIMIT_CONTEXT = 4;
  public
    function getPeer(): JAPFontPeer; overload; virtual;
    constructor create(para1: JLString; para2: jint; para3: jint); overload;
    constructor create(para1: JUMap); overload;
  strict protected
    constructor create(para1: JAFont); overload;
  public
    class function getFont(para1: JUMap): JAFont; static; overload;
    class function createFont(para1: jint; para2: JIInputStream): JAFont; static; overload;  // throws java.awt.FontFormatException, java.io.IOException
    class function createFont(para1: jint; para2: JIFile): JAFont; static; overload;  // throws java.awt.FontFormatException, java.io.IOException
    function getTransform(): JAGAffineTransform; overload; virtual;
    function getFamily(): JLString; overload; virtual;
    function getFamily(para1: JULocale): JLString; overload; virtual;
    function getPSName(): JLString; overload; virtual;
    function getName(): JLString; overload; virtual;
    function getFontName(): JLString; overload; virtual;
    function getFontName(para1: JULocale): JLString; overload; virtual;
    function getStyle(): jint; overload; virtual;
    function getSize(): jint; overload; virtual;
    function getSize2D(): jfloat; overload; virtual;
    function isPlain(): jboolean; overload; virtual;
    function isBold(): jboolean; overload; virtual;
    function isItalic(): jboolean; overload; virtual;
    function isTransformed(): jboolean; overload; virtual;
    function hasLayoutAttributes(): jboolean; overload; virtual;
    class function getFont(para1: JLString): JAFont; static; overload;
    class function decode(para1: JLString): JAFont; static; overload;
    class function getFont(para1: JLString; para2: JAFont): JAFont; static; overload;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    function getNumGlyphs(): jint; overload; virtual;
    function getMissingGlyphCode(): jint; overload; virtual;
    function getBaselineFor(para1: jchar): jbyte; overload; virtual;
    function getAttributes(): JUMap; overload; virtual;
    function getAvailableAttributes(): JTAttributedCharacterIterator.Arr1InnerAttribute; overload; virtual;
    function deriveFont(para1: jint; para2: jfloat): JAFont; overload; virtual;
    function deriveFont(para1: jint; para2: JAGAffineTransform): JAFont; overload; virtual;
    function deriveFont(para1: jfloat): JAFont; overload; virtual;
    function deriveFont(para1: JAGAffineTransform): JAFont; overload; virtual;
    function deriveFont(para1: jint): JAFont; overload; virtual;
    function deriveFont(para1: JUMap): JAFont; overload; virtual;
    function canDisplay(para1: jchar): jboolean; overload; virtual;
    function canDisplay(para1: jint): jboolean; overload; virtual;
    function canDisplayUpTo(para1: JLString): jint; overload; virtual;
    function canDisplayUpTo(para1: Arr1jchar; para2: jint; para3: jint): jint; overload; virtual;
    function canDisplayUpTo(var para1: array of jchar; para2: jint; para3: jint): jint; overload; virtual;
    function canDisplayUpTo(para1: JTCharacterIterator; para2: jint; para3: jint): jint; overload; virtual;
    function getItalicAngle(): jfloat; overload; virtual;
    function hasUniformLineMetrics(): jboolean; overload; virtual;
    function getLineMetrics(para1: JLString; para2: JAFFontRenderContext): JAFLineMetrics; overload; virtual;
    function getLineMetrics(para1: JLString; para2: jint; para3: jint; para4: JAFFontRenderContext): JAFLineMetrics; overload; virtual;
    function getLineMetrics(para1: Arr1jchar; para2: jint; para3: jint; para4: JAFFontRenderContext): JAFLineMetrics; overload; virtual;
    function getLineMetrics(var para1: array of jchar; para2: jint; para3: jint; para4: JAFFontRenderContext): JAFLineMetrics; overload; virtual;
    function getLineMetrics(para1: JTCharacterIterator; para2: jint; para3: jint; para4: JAFFontRenderContext): JAFLineMetrics; overload; virtual;
    function getStringBounds(para1: JLString; para2: JAFFontRenderContext): JAGRectangle2D; overload; virtual;
    function getStringBounds(para1: JLString; para2: jint; para3: jint; para4: JAFFontRenderContext): JAGRectangle2D; overload; virtual;
    function getStringBounds(para1: Arr1jchar; para2: jint; para3: jint; para4: JAFFontRenderContext): JAGRectangle2D; overload; virtual;
    function getStringBounds(var para1: array of jchar; para2: jint; para3: jint; para4: JAFFontRenderContext): JAGRectangle2D; overload; virtual;
    function getStringBounds(para1: JTCharacterIterator; para2: jint; para3: jint; para4: JAFFontRenderContext): JAGRectangle2D; overload; virtual;
    function getMaxCharBounds(para1: JAFFontRenderContext): JAGRectangle2D; overload; virtual;
    function createGlyphVector(para1: JAFFontRenderContext; para2: JLString): JAFGlyphVector; overload; virtual;
    function createGlyphVector(para1: JAFFontRenderContext; para2: Arr1jchar): JAFGlyphVector; overload; virtual;
    function createGlyphVector(para1: JAFFontRenderContext; var para2: array of jchar): JAFGlyphVector; overload; virtual;
    function createGlyphVector(para1: JAFFontRenderContext; para2: JTCharacterIterator): JAFGlyphVector; overload; virtual;
    function createGlyphVector(para1: JAFFontRenderContext; para2: Arr1jint): JAFGlyphVector; overload; virtual;
    function createGlyphVector(para1: JAFFontRenderContext; var para2: array of jint): JAFGlyphVector; overload; virtual;
    function layoutGlyphVector(para1: JAFFontRenderContext; para2: Arr1jchar; para3: jint; para4: jint; para5: jint): JAFGlyphVector; overload; virtual;
    function layoutGlyphVector(para1: JAFFontRenderContext; var para2: array of jchar; para3: jint; para4: jint; para5: jint): JAFGlyphVector; overload; virtual;
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  JAFTextAttribute = class sealed external 'java.awt.font' name 'TextAttribute' (JTAttributedCharacterIterator.InnerAttribute)
  public
    final class var
      fFAMILY: JAFTextAttribute; external name 'FAMILY';
      fWEIGHT: JAFTextAttribute; external name 'WEIGHT';
      fWEIGHT_EXTRA_LIGHT: JLFloat; external name 'WEIGHT_EXTRA_LIGHT';
      fWEIGHT_LIGHT: JLFloat; external name 'WEIGHT_LIGHT';
      fWEIGHT_DEMILIGHT: JLFloat; external name 'WEIGHT_DEMILIGHT';
      fWEIGHT_REGULAR: JLFloat; external name 'WEIGHT_REGULAR';
      fWEIGHT_SEMIBOLD: JLFloat; external name 'WEIGHT_SEMIBOLD';
      fWEIGHT_MEDIUM: JLFloat; external name 'WEIGHT_MEDIUM';
      fWEIGHT_DEMIBOLD: JLFloat; external name 'WEIGHT_DEMIBOLD';
      fWEIGHT_BOLD: JLFloat; external name 'WEIGHT_BOLD';
      fWEIGHT_HEAVY: JLFloat; external name 'WEIGHT_HEAVY';
      fWEIGHT_EXTRABOLD: JLFloat; external name 'WEIGHT_EXTRABOLD';
      fWEIGHT_ULTRABOLD: JLFloat; external name 'WEIGHT_ULTRABOLD';
      fWIDTH: JAFTextAttribute; external name 'WIDTH';
      fWIDTH_CONDENSED: JLFloat; external name 'WIDTH_CONDENSED';
      fWIDTH_SEMI_CONDENSED: JLFloat; external name 'WIDTH_SEMI_CONDENSED';
      fWIDTH_REGULAR: JLFloat; external name 'WIDTH_REGULAR';
      fWIDTH_SEMI_EXTENDED: JLFloat; external name 'WIDTH_SEMI_EXTENDED';
      fWIDTH_EXTENDED: JLFloat; external name 'WIDTH_EXTENDED';
      fPOSTURE: JAFTextAttribute; external name 'POSTURE';
      fPOSTURE_REGULAR: JLFloat; external name 'POSTURE_REGULAR';
      fPOSTURE_OBLIQUE: JLFloat; external name 'POSTURE_OBLIQUE';
      fSIZE: JAFTextAttribute; external name 'SIZE';
      fTRANSFORM: JAFTextAttribute; external name 'TRANSFORM';
      fSUPERSCRIPT: JAFTextAttribute; external name 'SUPERSCRIPT';
      fSUPERSCRIPT_SUPER: JLInteger; external name 'SUPERSCRIPT_SUPER';
      fSUPERSCRIPT_SUB: JLInteger; external name 'SUPERSCRIPT_SUB';
      fFONT: JAFTextAttribute; external name 'FONT';
      fCHAR_REPLACEMENT: JAFTextAttribute; external name 'CHAR_REPLACEMENT';
      fFOREGROUND: JAFTextAttribute; external name 'FOREGROUND';
      fBACKGROUND: JAFTextAttribute; external name 'BACKGROUND';
      fUNDERLINE: JAFTextAttribute; external name 'UNDERLINE';
      fUNDERLINE_ON: JLInteger; external name 'UNDERLINE_ON';
      fSTRIKETHROUGH: JAFTextAttribute; external name 'STRIKETHROUGH';
      fSTRIKETHROUGH_ON: JLBoolean; external name 'STRIKETHROUGH_ON';
      fRUN_DIRECTION: JAFTextAttribute; external name 'RUN_DIRECTION';
      fRUN_DIRECTION_LTR: JLBoolean; external name 'RUN_DIRECTION_LTR';
      fRUN_DIRECTION_RTL: JLBoolean; external name 'RUN_DIRECTION_RTL';
      fBIDI_EMBEDDING: JAFTextAttribute; external name 'BIDI_EMBEDDING';
      fJUSTIFICATION: JAFTextAttribute; external name 'JUSTIFICATION';
      fJUSTIFICATION_FULL: JLFloat; external name 'JUSTIFICATION_FULL';
      fJUSTIFICATION_NONE: JLFloat; external name 'JUSTIFICATION_NONE';
      fINPUT_METHOD_HIGHLIGHT: JAFTextAttribute; external name 'INPUT_METHOD_HIGHLIGHT';
      fINPUT_METHOD_UNDERLINE: JAFTextAttribute; external name 'INPUT_METHOD_UNDERLINE';
      fUNDERLINE_LOW_ONE_PIXEL: JLInteger; external name 'UNDERLINE_LOW_ONE_PIXEL';
      fUNDERLINE_LOW_TWO_PIXEL: JLInteger; external name 'UNDERLINE_LOW_TWO_PIXEL';
      fUNDERLINE_LOW_DOTTED: JLInteger; external name 'UNDERLINE_LOW_DOTTED';
      fUNDERLINE_LOW_GRAY: JLInteger; external name 'UNDERLINE_LOW_GRAY';
      fUNDERLINE_LOW_DASHED: JLInteger; external name 'UNDERLINE_LOW_DASHED';
      fSWAP_COLORS: JAFTextAttribute; external name 'SWAP_COLORS';
      fSWAP_COLORS_ON: JLBoolean; external name 'SWAP_COLORS_ON';
      fNUMERIC_SHAPING: JAFTextAttribute; external name 'NUMERIC_SHAPING';
      fKERNING: JAFTextAttribute; external name 'KERNING';
      fKERNING_ON: JLInteger; external name 'KERNING_ON';
      fLIGATURES: JAFTextAttribute; external name 'LIGATURES';
      fLIGATURES_ON: JLInteger; external name 'LIGATURES_ON';
      fTRACKING: JAFTextAttribute; external name 'TRACKING';
      fTRACKING_TIGHT: JLFloat; external name 'TRACKING_TIGHT';
      fTRACKING_LOOSE: JLFloat; external name 'TRACKING_LOOSE';
  strict protected
    constructor create(para1: JLString); overload;
    function readResolve(): JLObject; overload; virtual;  // throws java.io.InvalidObjectException
  end;

  JAIInputMethodRequests = interface external 'java.awt.im' name 'InputMethodRequests' 
    function getTextLocation(para1: JAFTextHitInfo): JARectangle; overload;
    function getLocationOffset(para1: jint; para2: jint): JAFTextHitInfo; overload;
    function getInsertPositionOffset(): jint; overload;
    function getCommittedText(para1: jint; para2: jint; para3: JTAttributedCharacterIterator.Arr1InnerAttribute): JTAttributedCharacterIterator; overload;
    function getCommittedText(para1: jint; para2: jint; var para3: array of JTAttributedCharacterIterator.InnerAttribute): JTAttributedCharacterIterator; overload;
    function getCommittedTextLength(): jint; overload;
    function cancelLatestCommittedText(para1: JTAttributedCharacterIterator.Arr1InnerAttribute): JTAttributedCharacterIterator; overload;
    function cancelLatestCommittedText(var para1: array of JTAttributedCharacterIterator.InnerAttribute): JTAttributedCharacterIterator; overload;
    function getSelectedText(para1: JTAttributedCharacterIterator.Arr1InnerAttribute): JTAttributedCharacterIterator; overload;
    function getSelectedText(var para1: array of JTAttributedCharacterIterator.InnerAttribute): JTAttributedCharacterIterator; overload;
  end;

  JTAttributedString = class external 'java.text' name 'AttributedString' (JLObject)
  public
    type
      InnerAttributeMap = class;
      Arr1InnerAttributeMap = array of InnerAttributeMap;
      Arr2InnerAttributeMap = array of Arr1InnerAttributeMap;
      Arr3InnerAttributeMap = array of Arr2InnerAttributeMap;
      InnerAttributedStringIterator = class;
      Arr1InnerAttributedStringIterator = array of InnerAttributedStringIterator;
      Arr2InnerAttributedStringIterator = array of Arr1InnerAttributedStringIterator;
      Arr3InnerAttributedStringIterator = array of Arr2InnerAttributedStringIterator;
      InnerAttributeMap = class sealed external 'java.text' name 'AttributeMap' 
      end;

      InnerAttributedStringIterator = class sealed external 'java.text' name 'AttributedStringIterator' 
      end;

  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JUMap); overload;
    constructor create(para1: JTAttributedCharacterIterator); overload;
    constructor create(para1: JTAttributedCharacterIterator; para2: jint; para3: jint); overload;
    constructor create(para1: JTAttributedCharacterIterator; para2: jint; para3: jint; para4: JTAttributedCharacterIterator.Arr1InnerAttribute); overload;
    constructor create(para1: JTAttributedCharacterIterator; para2: jint; para3: jint; const para4: array of JTAttributedCharacterIterator.InnerAttribute); overload;
    procedure addAttribute(para1: JTAttributedCharacterIterator.InnerAttribute; para2: JLObject); overload; virtual;
    procedure addAttribute(para1: JTAttributedCharacterIterator.InnerAttribute; para2: JLObject; para3: jint; para4: jint); overload; virtual;
    procedure addAttributes(para1: JUMap; para2: jint; para3: jint); overload; virtual;
    function getIterator(): JTAttributedCharacterIterator; overload; virtual;
    function getIterator(para1: JTAttributedCharacterIterator.Arr1InnerAttribute): JTAttributedCharacterIterator; overload; virtual;
    function getIterator(var para1: array of JTAttributedCharacterIterator.InnerAttribute): JTAttributedCharacterIterator; overload; virtual;
    function getIterator(para1: JTAttributedCharacterIterator.Arr1InnerAttribute; para2: jint; para3: jint): JTAttributedCharacterIterator; overload; virtual;
    function getIterator(var para1: array of JTAttributedCharacterIterator.InnerAttribute; para2: jint; para3: jint): JTAttributedCharacterIterator; overload; virtual;
  end;

  JTFormat = class abstract external 'java.text' name 'Format' (JLObject, JISerializable, JLCloneable)
  public
    type
      InnerFieldDelegate = interface;
      Arr1InnerFieldDelegate = array of InnerFieldDelegate;
      Arr2InnerFieldDelegate = array of Arr1InnerFieldDelegate;
      Arr3InnerFieldDelegate = array of Arr2InnerFieldDelegate;
      InnerFieldDelegate = interface external 'java.text' name 'FieldDelegate' 
      end;

  public
    type
      InnerField = class;
      Arr1InnerField = array of InnerField;
      Arr2InnerField = array of Arr1InnerField;
      Arr3InnerField = array of Arr2InnerField;
      InnerField = class external 'java.text' name 'Field' (JTAttributedCharacterIterator.InnerAttribute)
      strict protected
        constructor create(para1: JLString); overload;
      end;

  strict protected
    constructor create(); overload;
  public
    function format(para1: JLObject): JLString; overload; virtual; final;
    function format(para1: JLObject; para2: JLStringBuffer; para3: JTFieldPosition): JLStringBuffer; overload; virtual; abstract;
    function formatToCharacterIterator(para1: JLObject): JTAttributedCharacterIterator; overload; virtual;
    function parseObject(para1: JLString; para2: JTParsePosition): JLObject; overload; virtual; abstract;
    function parseObject(para1: JLString): JLObject; overload; virtual;  // throws java.text.ParseException
    function clone(): JLObject; overload; virtual;
  end;

  JUTreeMap = class external 'java.util' name 'TreeMap' (JUAbstractMap, JUNavigableMap, JLCloneable, JISerializable)
  public
    type
      InnerAscendingSubMap = class;
      Arr1InnerAscendingSubMap = array of InnerAscendingSubMap;
      Arr2InnerAscendingSubMap = array of Arr1InnerAscendingSubMap;
      Arr3InnerAscendingSubMap = array of Arr2InnerAscendingSubMap;
      InnerDescendingKeyIterator = class;
      Arr1InnerDescendingKeyIterator = array of InnerDescendingKeyIterator;
      Arr2InnerDescendingKeyIterator = array of Arr1InnerDescendingKeyIterator;
      Arr3InnerDescendingKeyIterator = array of Arr2InnerDescendingKeyIterator;
      InnerDescendingSubMap = class;
      Arr1InnerDescendingSubMap = array of InnerDescendingSubMap;
      Arr2InnerDescendingSubMap = array of Arr1InnerDescendingSubMap;
      Arr3InnerDescendingSubMap = array of Arr2InnerDescendingSubMap;
      InnerKeyIterator = class;
      Arr1InnerKeyIterator = array of InnerKeyIterator;
      Arr2InnerKeyIterator = array of Arr1InnerKeyIterator;
      Arr3InnerKeyIterator = array of Arr2InnerKeyIterator;
      InnerValueIterator = class;
      Arr1InnerValueIterator = array of InnerValueIterator;
      Arr2InnerValueIterator = array of Arr1InnerValueIterator;
      Arr3InnerValueIterator = array of Arr2InnerValueIterator;
      InnerEntry = class;
      Arr1InnerEntry = array of InnerEntry;
      Arr2InnerEntry = array of Arr1InnerEntry;
      Arr3InnerEntry = array of Arr2InnerEntry;
      InnerEntryIterator = class;
      Arr1InnerEntryIterator = array of InnerEntryIterator;
      Arr2InnerEntryIterator = array of Arr1InnerEntryIterator;
      Arr3InnerEntryIterator = array of Arr2InnerEntryIterator;
      InnerEntrySet = class;
      Arr1InnerEntrySet = array of InnerEntrySet;
      Arr2InnerEntrySet = array of Arr1InnerEntrySet;
      Arr3InnerEntrySet = array of Arr2InnerEntrySet;
      InnerKeySet = class;
      Arr1InnerKeySet = array of InnerKeySet;
      Arr2InnerKeySet = array of Arr1InnerKeySet;
      Arr3InnerKeySet = array of Arr2InnerKeySet;
      InnerNavigableSubMap = class;
      Arr1InnerNavigableSubMap = array of InnerNavigableSubMap;
      Arr2InnerNavigableSubMap = array of Arr1InnerNavigableSubMap;
      Arr3InnerNavigableSubMap = array of Arr2InnerNavigableSubMap;
      InnerPrivateEntryIterator = class;
      Arr1InnerPrivateEntryIterator = array of InnerPrivateEntryIterator;
      Arr2InnerPrivateEntryIterator = array of Arr1InnerPrivateEntryIterator;
      Arr3InnerPrivateEntryIterator = array of Arr2InnerPrivateEntryIterator;
      InnerSubMap = class;
      Arr1InnerSubMap = array of InnerSubMap;
      Arr2InnerSubMap = array of Arr1InnerSubMap;
      Arr3InnerSubMap = array of Arr2InnerSubMap;
      InnerValues = class;
      Arr1InnerValues = array of InnerValues;
      Arr2InnerValues = array of Arr1InnerValues;
      Arr3InnerValues = array of Arr2InnerValues;
      InnerAscendingSubMap = class sealed external 'java.util' name 'AscendingSubMap' 
      public
        type
          InnerAscendingEntrySetView = class;
          Arr1InnerAscendingEntrySetView = array of InnerAscendingEntrySetView;
          Arr2InnerAscendingEntrySetView = array of Arr1InnerAscendingEntrySetView;
          Arr3InnerAscendingEntrySetView = array of Arr2InnerAscendingEntrySetView;
          InnerAscendingEntrySetView = class sealed external 'java.util' name 'AscendingEntrySetView' 
          end;

      end;

      InnerDescendingKeyIterator = class sealed external 'java.util' name 'DescendingKeyIterator' 
      end;

      InnerDescendingSubMap = class sealed external 'java.util' name 'DescendingSubMap' 
      public
        type
          InnerDescendingEntrySetView = class;
          Arr1InnerDescendingEntrySetView = array of InnerDescendingEntrySetView;
          Arr2InnerDescendingEntrySetView = array of Arr1InnerDescendingEntrySetView;
          Arr3InnerDescendingEntrySetView = array of Arr2InnerDescendingEntrySetView;
          InnerDescendingEntrySetView = class sealed external 'java.util' name 'DescendingEntrySetView' 
          end;

      end;

      InnerKeyIterator = class sealed external 'java.util' name 'KeyIterator' 
      end;

      InnerValueIterator = class sealed external 'java.util' name 'ValueIterator' 
      end;

      InnerEntry = class sealed external 'java.util' name 'Entry' 
      end;

      InnerEntryIterator = class sealed external 'java.util' name 'EntryIterator' 
      end;

      InnerEntrySet = class external 'java.util' name 'EntrySet' 
      end;

      InnerKeySet = class sealed external 'java.util' name 'KeySet' 
      end;

      InnerNavigableSubMap = class abstract external 'java.util' name 'NavigableSubMap' 
      public
        type
          InnerDescendingSubMapKeyIterator = class;
          Arr1InnerDescendingSubMapKeyIterator = array of InnerDescendingSubMapKeyIterator;
          Arr2InnerDescendingSubMapKeyIterator = array of Arr1InnerDescendingSubMapKeyIterator;
          Arr3InnerDescendingSubMapKeyIterator = array of Arr2InnerDescendingSubMapKeyIterator;
          InnerSubMapKeyIterator = class;
          Arr1InnerSubMapKeyIterator = array of InnerSubMapKeyIterator;
          Arr2InnerSubMapKeyIterator = array of Arr1InnerSubMapKeyIterator;
          Arr3InnerSubMapKeyIterator = array of Arr2InnerSubMapKeyIterator;
          InnerDescendingSubMapEntryIterator = class;
          Arr1InnerDescendingSubMapEntryIterator = array of InnerDescendingSubMapEntryIterator;
          Arr2InnerDescendingSubMapEntryIterator = array of Arr1InnerDescendingSubMapEntryIterator;
          Arr3InnerDescendingSubMapEntryIterator = array of Arr2InnerDescendingSubMapEntryIterator;
          InnerSubMapEntryIterator = class;
          Arr1InnerSubMapEntryIterator = array of InnerSubMapEntryIterator;
          Arr2InnerSubMapEntryIterator = array of Arr1InnerSubMapEntryIterator;
          Arr3InnerSubMapEntryIterator = array of Arr2InnerSubMapEntryIterator;
          InnerEntrySetView = class;
          Arr1InnerEntrySetView = array of InnerEntrySetView;
          Arr2InnerEntrySetView = array of Arr1InnerEntrySetView;
          Arr3InnerEntrySetView = array of Arr2InnerEntrySetView;
          InnerSubMapIterator = class;
          Arr1InnerSubMapIterator = array of InnerSubMapIterator;
          Arr2InnerSubMapIterator = array of Arr1InnerSubMapIterator;
          Arr3InnerSubMapIterator = array of Arr2InnerSubMapIterator;
          InnerDescendingSubMapKeyIterator = class sealed external 'java.util' name 'DescendingSubMapKeyIterator' 
          end;

          InnerSubMapKeyIterator = class sealed external 'java.util' name 'SubMapKeyIterator' 
          end;

          InnerDescendingSubMapEntryIterator = class sealed external 'java.util' name 'DescendingSubMapEntryIterator' 
          end;

          InnerSubMapEntryIterator = class sealed external 'java.util' name 'SubMapEntryIterator' 
          end;

          InnerEntrySetView = class abstract external 'java.util' name 'EntrySetView' 
          end;

          InnerSubMapIterator = class abstract external 'java.util' name 'SubMapIterator' 
          end;

      end;

      InnerPrivateEntryIterator = class abstract external 'java.util' name 'PrivateEntryIterator' 
      end;

      InnerSubMap = class external 'java.util' name 'SubMap' 
      end;

      InnerValues = class external 'java.util' name 'Values' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: JUComparator); overload;
    constructor create(para1: JUMap); overload;
    constructor create(para1: JUSortedMap); overload;
    function size(): jint; overload; virtual;
    function containsKey(para1: JLObject): jboolean; overload; virtual;
    function containsValue(para1: JLObject): jboolean; overload; virtual;
    function get(para1: JLObject): JLObject; overload; virtual;
    function comparator(): JUComparator; overload; virtual;
    function firstKey(): JLObject; overload; virtual;
    function lastKey(): JLObject; overload; virtual;
    procedure putAll(para1: JUMap); overload; virtual;
    function put(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
    function remove(para1: JLObject): JLObject; overload; virtual;
    procedure clear(); overload; virtual;
    function clone(): JLObject; overload; virtual;
    function firstEntry(): JUMap.InnerEntry; overload; virtual;
    function lastEntry(): JUMap.InnerEntry; overload; virtual;
    function pollFirstEntry(): JUMap.InnerEntry; overload; virtual;
    function pollLastEntry(): JUMap.InnerEntry; overload; virtual;
    function lowerEntry(para1: JLObject): JUMap.InnerEntry; overload; virtual;
    function lowerKey(para1: JLObject): JLObject; overload; virtual;
    function floorEntry(para1: JLObject): JUMap.InnerEntry; overload; virtual;
    function floorKey(para1: JLObject): JLObject; overload; virtual;
    function ceilingEntry(para1: JLObject): JUMap.InnerEntry; overload; virtual;
    function ceilingKey(para1: JLObject): JLObject; overload; virtual;
    function higherEntry(para1: JLObject): JUMap.InnerEntry; overload; virtual;
    function higherKey(para1: JLObject): JLObject; overload; virtual;
    function keySet(): JUSet; overload; virtual;
    function navigableKeySet(): JUNavigableSet; overload; virtual;
    function descendingKeySet(): JUNavigableSet; overload; virtual;
    function values(): JUCollection; overload; virtual;
    function entrySet(): JUSet; overload; virtual;
    function descendingMap(): JUNavigableMap; overload; virtual;
    function subMap(para1: JLObject; para2: jboolean; para3: JLObject; para4: jboolean): JUNavigableMap; overload; virtual;
    function headMap(para1: JLObject; para2: jboolean): JUNavigableMap; overload; virtual;
    function tailMap(para1: JLObject; para2: jboolean): JUNavigableMap; overload; virtual;
    function subMap(para1: JLObject; para2: JLObject): JUSortedMap; overload; virtual;
    function headMap(para1: JLObject): JUSortedMap; overload; virtual;
    function tailMap(para1: JLObject): JUSortedMap; overload; virtual;
  end;

  JUCConcurrentNavigableMap = interface external 'java.util.concurrent' name 'ConcurrentNavigableMap' (JUCConcurrentMap, JUNavigableMap)
    function subMap(para1: JLObject; para2: jboolean; para3: JLObject; para4: jboolean): JUCConcurrentNavigableMap; overload;
    function headMap(para1: JLObject; para2: jboolean): JUCConcurrentNavigableMap; overload;
    function tailMap(para1: JLObject; para2: jboolean): JUCConcurrentNavigableMap; overload;
    function subMap(para1: JLObject; para2: JLObject): JUCConcurrentNavigableMap; overload;
    function headMap(para1: JLObject): JUCConcurrentNavigableMap; overload;
    function tailMap(para1: JLObject): JUCConcurrentNavigableMap; overload;
    function descendingMap(): JUCConcurrentNavigableMap; overload;
    function navigableKeySet(): JUNavigableSet; overload;
    function keySet(): JUNavigableSet; overload;
    function descendingKeySet(): JUNavigableSet; overload;
  end;

  JXWHHTTPException = class external 'javax.xml.ws.http' name 'HTTPException' (JXWProtocolException)
  public
    constructor create(para1: jint); overload;
    function getStatusCode(): jint; overload; virtual;
  end;

  JXWSSOAPFaultException = class external 'javax.xml.ws.soap' name 'SOAPFaultException' (JXWProtocolException)
  public
    constructor create(para1: JXSSOAPFault); overload;
    function getFault(): JXSSOAPFault; overload; virtual;
  end;

  JUAbstractSequentialList = class abstract external 'java.util' name 'AbstractSequentialList' (JUAbstractList)
  strict protected
    constructor create(); overload;
  public
    function get(para1: jint): JLObject; overload; virtual;
    function &set(para1: jint; para2: JLObject): JLObject; overload; virtual;
    procedure add(para1: jint; para2: JLObject); overload; virtual;
    function remove(para1: jint): JLObject; overload; virtual;
    function addAll(para1: jint; para2: JUCollection): jboolean; overload; virtual;
    function iterator(): JUIterator; overload; virtual;
    function listIterator(para1: jint): JUListIterator; overload; virtual; abstract;
  end;

  JUArrayList = class external 'java.util' name 'ArrayList' (JUAbstractList, JUList, JURandomAccess, JLCloneable, JISerializable)
  public
    constructor create(para1: jint); overload;
    constructor create(); overload;
    constructor create(para1: JUCollection); overload;
    procedure trimToSize(); overload; virtual;
    procedure ensureCapacity(para1: jint); overload; virtual;
    function size(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function indexOf(para1: JLObject): jint; overload; virtual;
    function lastIndexOf(para1: JLObject): jint; overload; virtual;
    function clone(): JLObject; overload; virtual;
    function toArray(): Arr1JLObject; overload; virtual;
    function toArray(para1: Arr1JLObject): Arr1JLObject; overload; virtual;
    function toArray(var para1: array of JLObject): Arr1JLObject; overload; virtual;
    function get(para1: jint): JLObject; overload; virtual;
    function &set(para1: jint; para2: JLObject): JLObject; overload; virtual;
    function add(para1: JLObject): jboolean; overload; virtual;
    procedure add(para1: jint; para2: JLObject); overload; virtual;
    function remove(para1: jint): JLObject; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    procedure clear(); overload; virtual;
    function addAll(para1: JUCollection): jboolean; overload; virtual;
    function addAll(para1: jint; para2: JUCollection): jboolean; overload; virtual;
  strict protected
    procedure removeRange(para1: jint; para2: jint); overload; virtual;
  end;

  JUSubList = class external 'java.util' name 'SubList' (JUAbstractList)
  public
    function &set(para1: jint; para2: JLObject): JLObject; overload; virtual;
    function get(para1: jint): JLObject; overload; virtual;
    function size(): jint; overload; virtual;
    procedure add(para1: jint; para2: JLObject); overload; virtual;
    function remove(para1: jint): JLObject; overload; virtual;
  strict protected
    procedure removeRange(para1: jint; para2: jint); overload; virtual;
  public
    function addAll(para1: JUCollection): jboolean; overload; virtual;
    function addAll(para1: jint; para2: JUCollection): jboolean; overload; virtual;
    function iterator(): JUIterator; overload; virtual;
    function listIterator(para1: jint): JUListIterator; overload; virtual;
    function subList(para1: jint; para2: jint): JUList; overload; virtual;
  end;

  JUVector = class external 'java.util' name 'Vector' (JUAbstractList, JUList, JURandomAccess, JLCloneable, JISerializable)
  strict protected
    var
      felementData: Arr1JLObject; external name 'elementData';
      felementCount: jint; external name 'elementCount';
      fcapacityIncrement: jint; external name 'capacityIncrement';
  public
    constructor create(para1: jint; para2: jint); overload;
    constructor create(para1: jint); overload;
    constructor create(); overload;
    constructor create(para1: JUCollection); overload;
    procedure copyInto(para1: Arr1JLObject); overload; virtual;
    procedure copyInto(var para1: array of JLObject); overload; virtual;
    procedure trimToSize(); overload; virtual;
    procedure ensureCapacity(para1: jint); overload; virtual;
    procedure setSize(para1: jint); overload; virtual;
    function capacity(): jint; overload; virtual;
    function size(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function elements(): JUEnumeration; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function indexOf(para1: JLObject): jint; overload; virtual;
    function indexOf(para1: JLObject; para2: jint): jint; overload; virtual;
    function lastIndexOf(para1: JLObject): jint; overload; virtual;
    function lastIndexOf(para1: JLObject; para2: jint): jint; overload; virtual;
    function elementAt(para1: jint): JLObject; overload; virtual;
    function firstElement(): JLObject; overload; virtual;
    function lastElement(): JLObject; overload; virtual;
    procedure setElementAt(para1: JLObject; para2: jint); overload; virtual;
    procedure removeElementAt(para1: jint); overload; virtual;
    procedure insertElementAt(para1: JLObject; para2: jint); overload; virtual;
    procedure addElement(para1: JLObject); overload; virtual;
    function removeElement(para1: JLObject): jboolean; overload; virtual;
    procedure removeAllElements(); overload; virtual;
    function clone(): JLObject; overload; virtual;
    function toArray(): Arr1JLObject; overload; virtual;
    function toArray(para1: Arr1JLObject): Arr1JLObject; overload; virtual;
    function toArray(var para1: array of JLObject): Arr1JLObject; overload; virtual;
    function get(para1: jint): JLObject; overload; virtual;
    function &set(para1: jint; para2: JLObject): JLObject; overload; virtual;
    function add(para1: JLObject): jboolean; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    procedure add(para1: jint; para2: JLObject); overload; virtual;
    function remove(para1: jint): JLObject; overload; virtual;
    procedure clear(); overload; virtual;
    function containsAll(para1: JUCollection): jboolean; overload; virtual;
    function addAll(para1: JUCollection): jboolean; overload; virtual;
    function removeAll(para1: JUCollection): jboolean; overload; virtual;
    function retainAll(para1: JUCollection): jboolean; overload; virtual;
    function addAll(para1: jint; para2: JUCollection): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
    function subList(para1: jint; para2: jint): JUList; overload; virtual;
  strict protected
    procedure removeRange(para1: jint; para2: jint); overload; virtual;
  end;

  JUPriorityQueue = class external 'java.util' name 'PriorityQueue' (JUAbstractQueue, JISerializable)
  public
    type
      InnerItr = class;
      Arr1InnerItr = array of InnerItr;
      Arr2InnerItr = array of Arr1InnerItr;
      Arr3InnerItr = array of Arr2InnerItr;
      InnerItr = class sealed external 'java.util' name 'Itr' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: JUComparator); overload;
    constructor create(para1: JUCollection); overload;
    constructor create(para1: JUPriorityQueue); overload;
    constructor create(para1: JUSortedSet); overload;
    function add(para1: JLObject): jboolean; overload; virtual;
    function offer(para1: JLObject): jboolean; overload; virtual;
    function peek(): JLObject; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function toArray(): Arr1JLObject; overload; virtual;
    function toArray(para1: Arr1JLObject): Arr1JLObject; overload; virtual;
    function toArray(var para1: array of JLObject): Arr1JLObject; overload; virtual;
    function iterator(): JUIterator; overload; virtual;
    function size(): jint; overload; virtual;
    procedure clear(); overload; virtual;
    function poll(): JLObject; overload; virtual;
    function comparator(): JUComparator; overload; virtual;
  end;

  JUCConcurrentLinkedQueue = class external 'java.util.concurrent' name 'ConcurrentLinkedQueue' (JUAbstractQueue, JUQueue, JISerializable)
  public
    type
      InnerNode = class;
      Arr1InnerNode = array of InnerNode;
      Arr2InnerNode = array of Arr1InnerNode;
      Arr3InnerNode = array of Arr2InnerNode;
      InnerItr = class;
      Arr1InnerItr = array of InnerItr;
      Arr2InnerItr = array of Arr1InnerItr;
      Arr3InnerItr = array of Arr2InnerItr;
      InnerNode = class external 'java.util.concurrent' name 'Node' 
      end;

      InnerItr = class external 'java.util.concurrent' name 'Itr' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: JUCollection); overload;
    function add(para1: JLObject): jboolean; overload; virtual;
    function offer(para1: JLObject): jboolean; overload; virtual;
    function poll(): JLObject; overload; virtual;
    function peek(): JLObject; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function size(): jint; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    function toArray(): Arr1JLObject; overload; virtual;
    function toArray(para1: Arr1JLObject): Arr1JLObject; overload; virtual;
    function toArray(var para1: array of JLObject): Arr1JLObject; overload; virtual;
    function iterator(): JUIterator; overload; virtual;
  end;

  JUArrayDeque = class external 'java.util' name 'ArrayDeque' (JUAbstractCollection, JUDeque, JLCloneable, JISerializable)
  public
    type
      InnerDeqIterator = class;
      Arr1InnerDeqIterator = array of InnerDeqIterator;
      Arr2InnerDeqIterator = array of Arr1InnerDeqIterator;
      Arr3InnerDeqIterator = array of Arr2InnerDeqIterator;
      InnerDescendingIterator = class;
      Arr1InnerDescendingIterator = array of InnerDescendingIterator;
      Arr2InnerDescendingIterator = array of Arr1InnerDescendingIterator;
      Arr3InnerDescendingIterator = array of Arr2InnerDescendingIterator;
      InnerDeqIterator = class external 'java.util' name 'DeqIterator' 
      end;

      InnerDescendingIterator = class external 'java.util' name 'DescendingIterator' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: JUCollection); overload;
    procedure addFirst(para1: JLObject); overload; virtual;
    procedure addLast(para1: JLObject); overload; virtual;
    function offerFirst(para1: JLObject): jboolean; overload; virtual;
    function offerLast(para1: JLObject): jboolean; overload; virtual;
    function removeFirst(): JLObject; overload; virtual;
    function removeLast(): JLObject; overload; virtual;
    function pollFirst(): JLObject; overload; virtual;
    function pollLast(): JLObject; overload; virtual;
    function getFirst(): JLObject; overload; virtual;
    function getLast(): JLObject; overload; virtual;
    function peekFirst(): JLObject; overload; virtual;
    function peekLast(): JLObject; overload; virtual;
    function removeFirstOccurrence(para1: JLObject): jboolean; overload; virtual;
    function removeLastOccurrence(para1: JLObject): jboolean; overload; virtual;
    function add(para1: JLObject): jboolean; overload; virtual;
    function offer(para1: JLObject): jboolean; overload; virtual;
    function remove(): JLObject; overload; virtual;
    function poll(): JLObject; overload; virtual;
    function element(): JLObject; overload; virtual;
    function peek(): JLObject; overload; virtual;
    procedure push(para1: JLObject); overload; virtual;
    function pop(): JLObject; overload; virtual;
    function size(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function iterator(): JUIterator; overload; virtual;
    function descendingIterator(): JUIterator; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    procedure clear(); overload; virtual;
    function toArray(): Arr1JLObject; overload; virtual;
    function toArray(para1: Arr1JLObject): Arr1JLObject; overload; virtual;
    function toArray(var para1: array of JLObject): Arr1JLObject; overload; virtual;
    function clone(): JUArrayDeque; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  JUCArrayBlockingQueue = class external 'java.util.concurrent' name 'ArrayBlockingQueue' (JUAbstractQueue, JUCBlockingQueue, JISerializable)
  public
    type
      InnerItr = class;
      Arr1InnerItr = array of InnerItr;
      Arr2InnerItr = array of Arr1InnerItr;
      Arr3InnerItr = array of Arr2InnerItr;
      InnerItr = class external 'java.util.concurrent' name 'Itr' 
      end;

  public
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jboolean); overload;
    constructor create(para1: jint; para2: jboolean; para3: JUCollection); overload;
    function add(para1: JLObject): jboolean; overload; virtual;
    function offer(para1: JLObject): jboolean; overload; virtual;
    procedure put(para1: JLObject); overload; virtual;  // throws java.lang.InterruptedException
    function offer(para1: JLObject; para2: jlong; para3: JUCTimeUnit): jboolean; overload; virtual;  // throws java.lang.InterruptedException
    function poll(): JLObject; overload; virtual;
    function take(): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function poll(para1: jlong; para2: JUCTimeUnit): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function peek(): JLObject; overload; virtual;
    function size(): jint; overload; virtual;
    function remainingCapacity(): jint; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function toArray(): Arr1JLObject; overload; virtual;
    function toArray(para1: Arr1JLObject): Arr1JLObject; overload; virtual;
    function toArray(var para1: array of JLObject): Arr1JLObject; overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure clear(); overload; virtual;
    function drainTo(para1: JUCollection): jint; overload; virtual;
    function drainTo(para1: JUCollection; para2: jint): jint; overload; virtual;
    function iterator(): JUIterator; overload; virtual;
  end;

  JUCBlockingDeque = interface external 'java.util.concurrent' name 'BlockingDeque' (JUCBlockingQueue, JUDeque)
    procedure addFirst(para1: JLObject); overload;
    procedure addLast(para1: JLObject); overload;
    function offerFirst(para1: JLObject): jboolean; overload;
    function offerLast(para1: JLObject): jboolean; overload;
    procedure putFirst(para1: JLObject); overload;  // throws java.lang.InterruptedException
    procedure putLast(para1: JLObject); overload;  // throws java.lang.InterruptedException
    function offerFirst(para1: JLObject; para2: jlong; para3: JUCTimeUnit): jboolean; overload;  // throws java.lang.InterruptedException
    function offerLast(para1: JLObject; para2: jlong; para3: JUCTimeUnit): jboolean; overload;  // throws java.lang.InterruptedException
    function takeFirst(): JLObject; overload;  // throws java.lang.InterruptedException
    function takeLast(): JLObject; overload;  // throws java.lang.InterruptedException
    function pollFirst(para1: jlong; para2: JUCTimeUnit): JLObject; overload;  // throws java.lang.InterruptedException
    function pollLast(para1: jlong; para2: JUCTimeUnit): JLObject; overload;  // throws java.lang.InterruptedException
    function removeFirstOccurrence(para1: JLObject): jboolean; overload;
    function removeLastOccurrence(para1: JLObject): jboolean; overload;
    function add(para1: JLObject): jboolean; overload;
    function offer(para1: JLObject): jboolean; overload;
    procedure put(para1: JLObject); overload;  // throws java.lang.InterruptedException
    function offer(para1: JLObject; para2: jlong; para3: JUCTimeUnit): jboolean; overload;  // throws java.lang.InterruptedException
    function remove(): JLObject; overload;
    function poll(): JLObject; overload;
    function take(): JLObject; overload;  // throws java.lang.InterruptedException
    function poll(para1: jlong; para2: JUCTimeUnit): JLObject; overload;  // throws java.lang.InterruptedException
    function element(): JLObject; overload;
    function peek(): JLObject; overload;
    function remove(para1: JLObject): jboolean; overload;
    function contains(para1: JLObject): jboolean; overload;
    function size(): jint; overload;
    function iterator(): JUIterator; overload;
    procedure push(para1: JLObject); overload;
  end;

  JUCDelayQueue = class external 'java.util.concurrent' name 'DelayQueue' (JUAbstractQueue, JUCBlockingQueue)
  public
    type
      InnerItr = class;
      Arr1InnerItr = array of InnerItr;
      Arr2InnerItr = array of Arr1InnerItr;
      Arr3InnerItr = array of Arr2InnerItr;
      InnerItr = class external 'java.util.concurrent' name 'Itr' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: JUCollection); overload;
    function add(para1: JUCDelayed): jboolean; overload; virtual;
    function offer(para1: JUCDelayed): jboolean; overload; virtual;
    procedure put(para1: JUCDelayed); overload; virtual;
    function offer(para1: JUCDelayed; para2: jlong; para3: JUCTimeUnit): jboolean; overload; virtual;
    function poll(): JUCDelayed; overload; virtual;
    function take(): JUCDelayed; overload; virtual;  // throws java.lang.InterruptedException
    function poll(para1: jlong; para2: JUCTimeUnit): JUCDelayed; overload; virtual;  // throws java.lang.InterruptedException
    function peek(): JUCDelayed; overload; virtual;
    function size(): jint; overload; virtual;
    function drainTo(para1: JUCollection): jint; overload; virtual;
    function drainTo(para1: JUCollection; para2: jint): jint; overload; virtual;
    procedure clear(); overload; virtual;
    function remainingCapacity(): jint; overload; virtual;
    function toArray(): Arr1JLObject; overload; virtual;
    function toArray(para1: Arr1JLObject): Arr1JLObject; overload; virtual;
    function toArray(var para1: array of JLObject): Arr1JLObject; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    function iterator(): JUIterator; overload; virtual;
    function add(para1: JLObject): jboolean; overload; virtual;
    function peek(): JLObject; overload; virtual;
    function poll(): JLObject; overload; virtual;
    function offer(para1: JLObject): jboolean; overload; virtual;
    function poll(para1: jlong; para2: JUCTimeUnit): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function take(): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function offer(para1: JLObject; para2: jlong; para3: JUCTimeUnit): jboolean; overload; virtual;  // throws java.lang.InterruptedException
    procedure put(para1: JLObject); overload; virtual;  // throws java.lang.InterruptedException
  end;

  JUCLinkedBlockingQueue = class external 'java.util.concurrent' name 'LinkedBlockingQueue' (JUAbstractQueue, JUCBlockingQueue, JISerializable)
  public
    type
      InnerNode = class;
      Arr1InnerNode = array of InnerNode;
      Arr2InnerNode = array of Arr1InnerNode;
      Arr3InnerNode = array of Arr2InnerNode;
      InnerItr = class;
      Arr1InnerItr = array of InnerItr;
      Arr2InnerItr = array of Arr1InnerItr;
      Arr3InnerItr = array of Arr2InnerItr;
      InnerNode = class external 'java.util.concurrent' name 'Node' 
      end;

      InnerItr = class external 'java.util.concurrent' name 'Itr' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: JUCollection); overload;
    function size(): jint; overload; virtual;
    function remainingCapacity(): jint; overload; virtual;
    procedure put(para1: JLObject); overload; virtual;  // throws java.lang.InterruptedException
    function offer(para1: JLObject; para2: jlong; para3: JUCTimeUnit): jboolean; overload; virtual;  // throws java.lang.InterruptedException
    function offer(para1: JLObject): jboolean; overload; virtual;
    function take(): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function poll(para1: jlong; para2: JUCTimeUnit): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function poll(): JLObject; overload; virtual;
    function peek(): JLObject; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    function toArray(): Arr1JLObject; overload; virtual;
    function toArray(para1: Arr1JLObject): Arr1JLObject; overload; virtual;
    function toArray(var para1: array of JLObject): Arr1JLObject; overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure clear(); overload; virtual;
    function drainTo(para1: JUCollection): jint; overload; virtual;
    function drainTo(para1: JUCollection; para2: jint): jint; overload; virtual;
    function iterator(): JUIterator; overload; virtual;
  end;

  JUCPriorityBlockingQueue = class external 'java.util.concurrent' name 'PriorityBlockingQueue' (JUAbstractQueue, JUCBlockingQueue, JISerializable)
  public
    type
      InnerItr = class;
      Arr1InnerItr = array of InnerItr;
      Arr2InnerItr = array of Arr1InnerItr;
      Arr3InnerItr = array of Arr2InnerItr;
      InnerItr = class external 'java.util.concurrent' name 'Itr' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: JUComparator); overload;
    constructor create(para1: JUCollection); overload;
    function add(para1: JLObject): jboolean; overload; virtual;
    function offer(para1: JLObject): jboolean; overload; virtual;
    procedure put(para1: JLObject); overload; virtual;
    function offer(para1: JLObject; para2: jlong; para3: JUCTimeUnit): jboolean; overload; virtual;
    function poll(): JLObject; overload; virtual;
    function take(): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function poll(para1: jlong; para2: JUCTimeUnit): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function peek(): JLObject; overload; virtual;
    function comparator(): JUComparator; overload; virtual;
    function size(): jint; overload; virtual;
    function remainingCapacity(): jint; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function toArray(): Arr1JLObject; overload; virtual;
    function toString(): JLString; overload; virtual;
    function drainTo(para1: JUCollection): jint; overload; virtual;
    function drainTo(para1: JUCollection; para2: jint): jint; overload; virtual;
    procedure clear(); overload; virtual;
    function toArray(para1: Arr1JLObject): Arr1JLObject; overload; virtual;
    function toArray(var para1: array of JLObject): Arr1JLObject; overload; virtual;
    function iterator(): JUIterator; overload; virtual;
  end;

  JUCSynchronousQueue = class external 'java.util.concurrent' name 'SynchronousQueue' (JUAbstractQueue, JUCBlockingQueue, JISerializable)
  public
    type
      InnerTransferer = class;
      Arr1InnerTransferer = array of InnerTransferer;
      Arr2InnerTransferer = array of Arr1InnerTransferer;
      Arr3InnerTransferer = array of Arr2InnerTransferer;
      InnerEmptyIterator = class;
      Arr1InnerEmptyIterator = array of InnerEmptyIterator;
      Arr2InnerEmptyIterator = array of Arr1InnerEmptyIterator;
      Arr3InnerEmptyIterator = array of Arr2InnerEmptyIterator;
      InnerFifoWaitQueue = class;
      Arr1InnerFifoWaitQueue = array of InnerFifoWaitQueue;
      Arr2InnerFifoWaitQueue = array of Arr1InnerFifoWaitQueue;
      Arr3InnerFifoWaitQueue = array of Arr2InnerFifoWaitQueue;
      InnerLifoWaitQueue = class;
      Arr1InnerLifoWaitQueue = array of InnerLifoWaitQueue;
      Arr2InnerLifoWaitQueue = array of Arr1InnerLifoWaitQueue;
      Arr3InnerLifoWaitQueue = array of Arr2InnerLifoWaitQueue;
      InnerTransferQueue = class;
      Arr1InnerTransferQueue = array of InnerTransferQueue;
      Arr2InnerTransferQueue = array of Arr1InnerTransferQueue;
      Arr3InnerTransferQueue = array of Arr2InnerTransferQueue;
      InnerTransferStack = class;
      Arr1InnerTransferStack = array of InnerTransferStack;
      Arr2InnerTransferStack = array of Arr1InnerTransferStack;
      Arr3InnerTransferStack = array of Arr2InnerTransferStack;
      InnerWaitQueue = class;
      Arr1InnerWaitQueue = array of InnerWaitQueue;
      Arr2InnerWaitQueue = array of Arr1InnerWaitQueue;
      Arr3InnerWaitQueue = array of Arr2InnerWaitQueue;
      InnerTransferer = class abstract external 'java.util.concurrent' name 'Transferer' 
      end;

      InnerEmptyIterator = class external 'java.util.concurrent' name 'EmptyIterator' 
      end;

      InnerFifoWaitQueue = class external 'java.util.concurrent' name 'FifoWaitQueue' 
      end;

      InnerLifoWaitQueue = class external 'java.util.concurrent' name 'LifoWaitQueue' 
      end;

      InnerTransferQueue = class sealed external 'java.util.concurrent' name 'TransferQueue' 
      public
        type
          InnerQNode = class;
          Arr1InnerQNode = array of InnerQNode;
          Arr2InnerQNode = array of Arr1InnerQNode;
          Arr3InnerQNode = array of Arr2InnerQNode;
          InnerQNode = class sealed external 'java.util.concurrent' name 'QNode' 
          end;

      end;

      InnerTransferStack = class sealed external 'java.util.concurrent' name 'TransferStack' 
      public
        type
          InnerSNode = class;
          Arr1InnerSNode = array of InnerSNode;
          Arr2InnerSNode = array of Arr1InnerSNode;
          Arr3InnerSNode = array of Arr2InnerSNode;
          InnerSNode = class sealed external 'java.util.concurrent' name 'SNode' 
          end;

      end;

      InnerWaitQueue = class external 'java.util.concurrent' name 'WaitQueue' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: jboolean); overload;
    procedure put(para1: JLObject); overload; virtual;  // throws java.lang.InterruptedException
    function offer(para1: JLObject; para2: jlong; para3: JUCTimeUnit): jboolean; overload; virtual;  // throws java.lang.InterruptedException
    function offer(para1: JLObject): jboolean; overload; virtual;
    function take(): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function poll(para1: jlong; para2: JUCTimeUnit): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function poll(): JLObject; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function size(): jint; overload; virtual;
    function remainingCapacity(): jint; overload; virtual;
    procedure clear(); overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    function containsAll(para1: JUCollection): jboolean; overload; virtual;
    function removeAll(para1: JUCollection): jboolean; overload; virtual;
    function retainAll(para1: JUCollection): jboolean; overload; virtual;
    function peek(): JLObject; overload; virtual;
    function iterator(): JUIterator; overload; virtual;
    function toArray(): Arr1JLObject; overload; virtual;
    function toArray(para1: Arr1JLObject): Arr1JLObject; overload; virtual;
    function toArray(var para1: array of JLObject): Arr1JLObject; overload; virtual;
    function drainTo(para1: JUCollection): jint; overload; virtual;
    function drainTo(para1: JUCollection; para2: jint): jint; overload; virtual;
  end;

  JNCClosedByInterruptException = class external 'java.nio.channels' name 'ClosedByInterruptException' (JNCAsynchronousCloseException)
  public
    constructor create(); overload;
  end;

  JRSSocketSecurityException = class external 'java.rmi.server' name 'SocketSecurityException' (JRSExportException)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLException); overload;
  end;

  JUCRunnableScheduledFuture = interface external 'java.util.concurrent' name 'RunnableScheduledFuture' (JUCRunnableFuture, JUCScheduledFuture)
    function isPeriodic(): jboolean; overload;
  end;

  JNByteBufferAsDoubleBufferRB = class external 'java.nio' name 'ByteBufferAsDoubleBufferRB' (JNByteBufferAsDoubleBufferB)
  public
    function slice(): JNDoubleBuffer; overload; virtual;
    function duplicate(): JNDoubleBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNDoubleBuffer; overload; virtual;
    function put(para1: jdouble): JNDoubleBuffer; overload; virtual;
    function put(para1: jint; para2: jdouble): JNDoubleBuffer; overload; virtual;
    function compact(): JNDoubleBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNByteBufferAsDoubleBufferRL = class external 'java.nio' name 'ByteBufferAsDoubleBufferRL' (JNByteBufferAsDoubleBufferL)
  public
    function slice(): JNDoubleBuffer; overload; virtual;
    function duplicate(): JNDoubleBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNDoubleBuffer; overload; virtual;
    function put(para1: jdouble): JNDoubleBuffer; overload; virtual;
    function put(para1: jint; para2: jdouble): JNDoubleBuffer; overload; virtual;
    function compact(): JNDoubleBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNDirectDoubleBufferRS = class external 'java.nio' name 'DirectDoubleBufferRS' (JNDirectDoubleBufferS, SNCDirectBuffer)
  public
    function slice(): JNDoubleBuffer; overload; virtual;
    function duplicate(): JNDoubleBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNDoubleBuffer; overload; virtual;
    function put(para1: jdouble): JNDoubleBuffer; overload; virtual;
    function put(para1: jint; para2: jdouble): JNDoubleBuffer; overload; virtual;
    function put(para1: JNDoubleBuffer): JNDoubleBuffer; overload; virtual;
    function put(para1: Arr1jdouble; para2: jint; para3: jint): JNDoubleBuffer; overload; virtual;
    function put(var para1: array of jdouble; para2: jint; para3: jint): JNDoubleBuffer; overload; virtual;
    function compact(): JNDoubleBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNDirectDoubleBufferRU = class external 'java.nio' name 'DirectDoubleBufferRU' (JNDirectDoubleBufferU, SNCDirectBuffer)
  public
    function slice(): JNDoubleBuffer; overload; virtual;
    function duplicate(): JNDoubleBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNDoubleBuffer; overload; virtual;
    function put(para1: jdouble): JNDoubleBuffer; overload; virtual;
    function put(para1: jint; para2: jdouble): JNDoubleBuffer; overload; virtual;
    function put(para1: JNDoubleBuffer): JNDoubleBuffer; overload; virtual;
    function put(para1: Arr1jdouble; para2: jint; para3: jint): JNDoubleBuffer; overload; virtual;
    function put(var para1: array of jdouble; para2: jint; para3: jint): JNDoubleBuffer; overload; virtual;
    function compact(): JNDoubleBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNHeapDoubleBufferR = class external 'java.nio' name 'HeapDoubleBufferR' (JNHeapDoubleBuffer)
  strict protected
    constructor create(para1: Arr1jdouble; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
    constructor create(const para1: array of jdouble; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
  public
    function slice(): JNDoubleBuffer; overload; virtual;
    function duplicate(): JNDoubleBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNDoubleBuffer; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function put(para1: jdouble): JNDoubleBuffer; overload; virtual;
    function put(para1: jint; para2: jdouble): JNDoubleBuffer; overload; virtual;
    function put(para1: Arr1jdouble; para2: jint; para3: jint): JNDoubleBuffer; overload; virtual;
    function put(var para1: array of jdouble; para2: jint; para3: jint): JNDoubleBuffer; overload; virtual;
    function put(para1: JNDoubleBuffer): JNDoubleBuffer; overload; virtual;
    function compact(): JNDoubleBuffer; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNByteBufferAsFloatBufferRB = class external 'java.nio' name 'ByteBufferAsFloatBufferRB' (JNByteBufferAsFloatBufferB)
  public
    function slice(): JNFloatBuffer; overload; virtual;
    function duplicate(): JNFloatBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNFloatBuffer; overload; virtual;
    function put(para1: jfloat): JNFloatBuffer; overload; virtual;
    function put(para1: jint; para2: jfloat): JNFloatBuffer; overload; virtual;
    function compact(): JNFloatBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNByteBufferAsFloatBufferRL = class external 'java.nio' name 'ByteBufferAsFloatBufferRL' (JNByteBufferAsFloatBufferL)
  public
    function slice(): JNFloatBuffer; overload; virtual;
    function duplicate(): JNFloatBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNFloatBuffer; overload; virtual;
    function put(para1: jfloat): JNFloatBuffer; overload; virtual;
    function put(para1: jint; para2: jfloat): JNFloatBuffer; overload; virtual;
    function compact(): JNFloatBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNDirectFloatBufferRS = class external 'java.nio' name 'DirectFloatBufferRS' (JNDirectFloatBufferS, SNCDirectBuffer)
  public
    function slice(): JNFloatBuffer; overload; virtual;
    function duplicate(): JNFloatBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNFloatBuffer; overload; virtual;
    function put(para1: jfloat): JNFloatBuffer; overload; virtual;
    function put(para1: jint; para2: jfloat): JNFloatBuffer; overload; virtual;
    function put(para1: JNFloatBuffer): JNFloatBuffer; overload; virtual;
    function put(para1: Arr1jfloat; para2: jint; para3: jint): JNFloatBuffer; overload; virtual;
    function put(var para1: array of jfloat; para2: jint; para3: jint): JNFloatBuffer; overload; virtual;
    function compact(): JNFloatBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNDirectFloatBufferRU = class external 'java.nio' name 'DirectFloatBufferRU' (JNDirectFloatBufferU, SNCDirectBuffer)
  public
    function slice(): JNFloatBuffer; overload; virtual;
    function duplicate(): JNFloatBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNFloatBuffer; overload; virtual;
    function put(para1: jfloat): JNFloatBuffer; overload; virtual;
    function put(para1: jint; para2: jfloat): JNFloatBuffer; overload; virtual;
    function put(para1: JNFloatBuffer): JNFloatBuffer; overload; virtual;
    function put(para1: Arr1jfloat; para2: jint; para3: jint): JNFloatBuffer; overload; virtual;
    function put(var para1: array of jfloat; para2: jint; para3: jint): JNFloatBuffer; overload; virtual;
    function compact(): JNFloatBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNHeapFloatBufferR = class external 'java.nio' name 'HeapFloatBufferR' (JNHeapFloatBuffer)
  strict protected
    constructor create(para1: Arr1jfloat; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
    constructor create(const para1: array of jfloat; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
  public
    function slice(): JNFloatBuffer; overload; virtual;
    function duplicate(): JNFloatBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNFloatBuffer; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function put(para1: jfloat): JNFloatBuffer; overload; virtual;
    function put(para1: jint; para2: jfloat): JNFloatBuffer; overload; virtual;
    function put(para1: Arr1jfloat; para2: jint; para3: jint): JNFloatBuffer; overload; virtual;
    function put(var para1: array of jfloat; para2: jint; para3: jint): JNFloatBuffer; overload; virtual;
    function put(para1: JNFloatBuffer): JNFloatBuffer; overload; virtual;
    function compact(): JNFloatBuffer; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNByteBufferAsIntBufferRB = class external 'java.nio' name 'ByteBufferAsIntBufferRB' (JNByteBufferAsIntBufferB)
  public
    function slice(): JNIntBuffer; overload; virtual;
    function duplicate(): JNIntBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNIntBuffer; overload; virtual;
    function put(para1: jint): JNIntBuffer; overload; virtual;
    function put(para1: jint; para2: jint): JNIntBuffer; overload; virtual;
    function compact(): JNIntBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNByteBufferAsIntBufferRL = class external 'java.nio' name 'ByteBufferAsIntBufferRL' (JNByteBufferAsIntBufferL)
  public
    function slice(): JNIntBuffer; overload; virtual;
    function duplicate(): JNIntBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNIntBuffer; overload; virtual;
    function put(para1: jint): JNIntBuffer; overload; virtual;
    function put(para1: jint; para2: jint): JNIntBuffer; overload; virtual;
    function compact(): JNIntBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNDirectIntBufferRS = class external 'java.nio' name 'DirectIntBufferRS' (JNDirectIntBufferS, SNCDirectBuffer)
  public
    function slice(): JNIntBuffer; overload; virtual;
    function duplicate(): JNIntBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNIntBuffer; overload; virtual;
    function put(para1: jint): JNIntBuffer; overload; virtual;
    function put(para1: jint; para2: jint): JNIntBuffer; overload; virtual;
    function put(para1: JNIntBuffer): JNIntBuffer; overload; virtual;
    function put(para1: Arr1jint; para2: jint; para3: jint): JNIntBuffer; overload; virtual;
    function put(var para1: array of jint; para2: jint; para3: jint): JNIntBuffer; overload; virtual;
    function compact(): JNIntBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNDirectIntBufferRU = class external 'java.nio' name 'DirectIntBufferRU' (JNDirectIntBufferU, SNCDirectBuffer)
  public
    function slice(): JNIntBuffer; overload; virtual;
    function duplicate(): JNIntBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNIntBuffer; overload; virtual;
    function put(para1: jint): JNIntBuffer; overload; virtual;
    function put(para1: jint; para2: jint): JNIntBuffer; overload; virtual;
    function put(para1: JNIntBuffer): JNIntBuffer; overload; virtual;
    function put(para1: Arr1jint; para2: jint; para3: jint): JNIntBuffer; overload; virtual;
    function put(var para1: array of jint; para2: jint; para3: jint): JNIntBuffer; overload; virtual;
    function compact(): JNIntBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNHeapIntBufferR = class external 'java.nio' name 'HeapIntBufferR' (JNHeapIntBuffer)
  strict protected
    constructor create(para1: Arr1jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
    constructor create(const para1: array of jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
  public
    function slice(): JNIntBuffer; overload; virtual;
    function duplicate(): JNIntBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNIntBuffer; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function put(para1: jint): JNIntBuffer; overload; virtual;
    function put(para1: jint; para2: jint): JNIntBuffer; overload; virtual;
    function put(para1: Arr1jint; para2: jint; para3: jint): JNIntBuffer; overload; virtual;
    function put(var para1: array of jint; para2: jint; para3: jint): JNIntBuffer; overload; virtual;
    function put(para1: JNIntBuffer): JNIntBuffer; overload; virtual;
    function compact(): JNIntBuffer; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNByteBufferAsLongBufferRB = class external 'java.nio' name 'ByteBufferAsLongBufferRB' (JNByteBufferAsLongBufferB)
  public
    function slice(): JNLongBuffer; overload; virtual;
    function duplicate(): JNLongBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNLongBuffer; overload; virtual;
    function put(para1: jlong): JNLongBuffer; overload; virtual;
    function put(para1: jint; para2: jlong): JNLongBuffer; overload; virtual;
    function compact(): JNLongBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNByteBufferAsLongBufferRL = class external 'java.nio' name 'ByteBufferAsLongBufferRL' (JNByteBufferAsLongBufferL)
  public
    function slice(): JNLongBuffer; overload; virtual;
    function duplicate(): JNLongBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNLongBuffer; overload; virtual;
    function put(para1: jlong): JNLongBuffer; overload; virtual;
    function put(para1: jint; para2: jlong): JNLongBuffer; overload; virtual;
    function compact(): JNLongBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNDirectLongBufferRS = class external 'java.nio' name 'DirectLongBufferRS' (JNDirectLongBufferS, SNCDirectBuffer)
  public
    function slice(): JNLongBuffer; overload; virtual;
    function duplicate(): JNLongBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNLongBuffer; overload; virtual;
    function put(para1: jlong): JNLongBuffer; overload; virtual;
    function put(para1: jint; para2: jlong): JNLongBuffer; overload; virtual;
    function put(para1: JNLongBuffer): JNLongBuffer; overload; virtual;
    function put(para1: Arr1jlong; para2: jint; para3: jint): JNLongBuffer; overload; virtual;
    function put(var para1: array of jlong; para2: jint; para3: jint): JNLongBuffer; overload; virtual;
    function compact(): JNLongBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNDirectLongBufferRU = class external 'java.nio' name 'DirectLongBufferRU' (JNDirectLongBufferU, SNCDirectBuffer)
  public
    function slice(): JNLongBuffer; overload; virtual;
    function duplicate(): JNLongBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNLongBuffer; overload; virtual;
    function put(para1: jlong): JNLongBuffer; overload; virtual;
    function put(para1: jint; para2: jlong): JNLongBuffer; overload; virtual;
    function put(para1: JNLongBuffer): JNLongBuffer; overload; virtual;
    function put(para1: Arr1jlong; para2: jint; para3: jint): JNLongBuffer; overload; virtual;
    function put(var para1: array of jlong; para2: jint; para3: jint): JNLongBuffer; overload; virtual;
    function compact(): JNLongBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNHeapLongBufferR = class external 'java.nio' name 'HeapLongBufferR' (JNHeapLongBuffer)
  strict protected
    constructor create(para1: Arr1jlong; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
    constructor create(const para1: array of jlong; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
  public
    function slice(): JNLongBuffer; overload; virtual;
    function duplicate(): JNLongBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNLongBuffer; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function put(para1: jlong): JNLongBuffer; overload; virtual;
    function put(para1: jint; para2: jlong): JNLongBuffer; overload; virtual;
    function put(para1: Arr1jlong; para2: jint; para3: jint): JNLongBuffer; overload; virtual;
    function put(var para1: array of jlong; para2: jint; para3: jint): JNLongBuffer; overload; virtual;
    function put(para1: JNLongBuffer): JNLongBuffer; overload; virtual;
    function compact(): JNLongBuffer; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNByteBufferAsShortBufferRB = class external 'java.nio' name 'ByteBufferAsShortBufferRB' (JNByteBufferAsShortBufferB)
  public
    function slice(): JNShortBuffer; overload; virtual;
    function duplicate(): JNShortBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNShortBuffer; overload; virtual;
    function put(para1: jshort): JNShortBuffer; overload; virtual;
    function put(para1: jint; para2: jshort): JNShortBuffer; overload; virtual;
    function compact(): JNShortBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNByteBufferAsShortBufferRL = class external 'java.nio' name 'ByteBufferAsShortBufferRL' (JNByteBufferAsShortBufferL)
  public
    function slice(): JNShortBuffer; overload; virtual;
    function duplicate(): JNShortBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNShortBuffer; overload; virtual;
    function put(para1: jshort): JNShortBuffer; overload; virtual;
    function put(para1: jint; para2: jshort): JNShortBuffer; overload; virtual;
    function compact(): JNShortBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNDirectShortBufferRS = class external 'java.nio' name 'DirectShortBufferRS' (JNDirectShortBufferS, SNCDirectBuffer)
  public
    function slice(): JNShortBuffer; overload; virtual;
    function duplicate(): JNShortBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNShortBuffer; overload; virtual;
    function put(para1: jshort): JNShortBuffer; overload; virtual;
    function put(para1: jint; para2: jshort): JNShortBuffer; overload; virtual;
    function put(para1: JNShortBuffer): JNShortBuffer; overload; virtual;
    function put(para1: Arr1jshort; para2: jint; para3: jint): JNShortBuffer; overload; virtual;
    function put(var para1: array of jshort; para2: jint; para3: jint): JNShortBuffer; overload; virtual;
    function compact(): JNShortBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNDirectShortBufferRU = class external 'java.nio' name 'DirectShortBufferRU' (JNDirectShortBufferU, SNCDirectBuffer)
  public
    function slice(): JNShortBuffer; overload; virtual;
    function duplicate(): JNShortBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNShortBuffer; overload; virtual;
    function put(para1: jshort): JNShortBuffer; overload; virtual;
    function put(para1: jint; para2: jshort): JNShortBuffer; overload; virtual;
    function put(para1: JNShortBuffer): JNShortBuffer; overload; virtual;
    function put(para1: Arr1jshort; para2: jint; para3: jint): JNShortBuffer; overload; virtual;
    function put(var para1: array of jshort; para2: jint; para3: jint): JNShortBuffer; overload; virtual;
    function compact(): JNShortBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNHeapShortBufferR = class external 'java.nio' name 'HeapShortBufferR' (JNHeapShortBuffer)
  strict protected
    constructor create(para1: Arr1jshort; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
    constructor create(const para1: array of jshort; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint); overload;
  public
    function slice(): JNShortBuffer; overload; virtual;
    function duplicate(): JNShortBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNShortBuffer; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function put(para1: jshort): JNShortBuffer; overload; virtual;
    function put(para1: jint; para2: jshort): JNShortBuffer; overload; virtual;
    function put(para1: Arr1jshort; para2: jint; para3: jint): JNShortBuffer; overload; virtual;
    function put(var para1: array of jshort; para2: jint; para3: jint): JNShortBuffer; overload; virtual;
    function put(para1: JNShortBuffer): JNShortBuffer; overload; virtual;
    function compact(): JNShortBuffer; overload; virtual;
    function order(): JNByteOrder; overload; virtual;
  end;

  JNDirectByteBufferR = class external 'java.nio' name 'DirectByteBufferR' (JNDirectByteBuffer, SNCDirectBuffer)
  strict protected
    constructor create(para1: jint; para2: jlong; para3: JLRunnable); overload;
  public
    function slice(): JNByteBuffer; overload; virtual;
    function duplicate(): JNByteBuffer; overload; virtual;
    function asReadOnlyBuffer(): JNByteBuffer; overload; virtual;
    function put(para1: jbyte): JNByteBuffer; overload; virtual;
    function put(para1: jint; para2: jbyte): JNByteBuffer; overload; virtual;
    function put(para1: JNByteBuffer): JNByteBuffer; overload; virtual;
    function put(para1: Arr1jbyte; para2: jint; para3: jint): JNByteBuffer; overload; virtual;
    function put(var para1: array of jbyte; para2: jint; para3: jint): JNByteBuffer; overload; virtual;
    function compact(): JNByteBuffer; overload; virtual;
    function isDirect(): jboolean; overload; virtual;
    function isReadOnly(): jboolean; overload; virtual;
    function putChar(para1: jchar): JNByteBuffer; overload; virtual;
    function putChar(para1: jint; para2: jchar): JNByteBuffer; overload; virtual;
    function asCharBuffer(): JNCharBuffer; overload; virtual;
    function putShort(para1: jshort): JNByteBuffer; overload; virtual;
    function putShort(para1: jint; para2: jshort): JNByteBuffer; overload; virtual;
    function asShortBuffer(): JNShortBuffer; overload; virtual;
    function putInt(para1: jint): JNByteBuffer; overload; virtual;
    function putInt(para1: jint; para2: jint): JNByteBuffer; overload; virtual;
    function asIntBuffer(): JNIntBuffer; overload; virtual;
    function putLong(para1: jlong): JNByteBuffer; overload; virtual;
    function putLong(para1: jint; para2: jlong): JNByteBuffer; overload; virtual;
    function asLongBuffer(): JNLongBuffer; overload; virtual;
    function putFloat(para1: jfloat): JNByteBuffer; overload; virtual;
    function putFloat(para1: jint; para2: jfloat): JNByteBuffer; overload; virtual;
    function asFloatBuffer(): JNFloatBuffer; overload; virtual;
    function putDouble(para1: jdouble): JNByteBuffer; overload; virtual;
    function putDouble(para1: jint; para2: jdouble): JNByteBuffer; overload; virtual;
    function asDoubleBuffer(): JNDoubleBuffer; overload; virtual;
  end;

  JSSQLDataException = class external 'java.sql' name 'SQLDataException' (JSSQLNonTransientException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLThrowable); overload;
  end;

  JSSQLFeatureNotSupportedException = class external 'java.sql' name 'SQLFeatureNotSupportedException' (JSSQLNonTransientException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLThrowable); overload;
  end;

  JSSQLIntegrityConstraintViolationException = class external 'java.sql' name 'SQLIntegrityConstraintViolationException' (JSSQLNonTransientException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLThrowable); overload;
  end;

  JSSQLInvalidAuthorizationSpecException = class external 'java.sql' name 'SQLInvalidAuthorizationSpecException' (JSSQLNonTransientException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLThrowable); overload;
  end;

  JSSQLNonTransientConnectionException = class external 'java.sql' name 'SQLNonTransientConnectionException' (JSSQLNonTransientException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLThrowable); overload;
  end;

  JSSQLSyntaxErrorException = class external 'java.sql' name 'SQLSyntaxErrorException' (JSSQLNonTransientException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLThrowable); overload;
  end;

  JSSQLTimeoutException = class external 'java.sql' name 'SQLTimeoutException' (JSSQLTransientException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLThrowable); overload;
  end;

  JSSQLTransactionRollbackException = class external 'java.sql' name 'SQLTransactionRollbackException' (JSSQLTransientException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLThrowable); overload;
  end;

  JSSQLTransientConnectionException = class external 'java.sql' name 'SQLTransientConnectionException' (JSSQLTransientException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint); overload;
    constructor create(para1: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLThrowable); overload;
    constructor create(para1: JLString; para2: JLString; para3: jint; para4: JLThrowable); overload;
  end;

  JSDataTruncation = class external 'java.sql' name 'DataTruncation' (JSSQLWarning)
  public
    constructor create(para1: jint; para2: jboolean; para3: jboolean; para4: jint; para5: jint); overload;
    constructor create(para1: jint; para2: jboolean; para3: jboolean; para4: jint; para5: jint; para6: JLThrowable); overload;
    function getIndex(): jint; overload; virtual;
    function getParameter(): jboolean; overload; virtual;
    function getRead(): jboolean; overload; virtual;
    function getDataSize(): jint; overload; virtual;
    function getTransferSize(): jint; overload; virtual;
  end;

  JUTreeSet = class external 'java.util' name 'TreeSet' (JUAbstractSet, JUNavigableSet, JLCloneable, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: JUComparator); overload;
    constructor create(para1: JUCollection); overload;
    constructor create(para1: JUSortedSet); overload;
    function iterator(): JUIterator; overload; virtual;
    function descendingIterator(): JUIterator; overload; virtual;
    function descendingSet(): JUNavigableSet; overload; virtual;
    function size(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function add(para1: JLObject): jboolean; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    procedure clear(); overload; virtual;
    function addAll(para1: JUCollection): jboolean; overload; virtual;
    function subSet(para1: JLObject; para2: jboolean; para3: JLObject; para4: jboolean): JUNavigableSet; overload; virtual;
    function headSet(para1: JLObject; para2: jboolean): JUNavigableSet; overload; virtual;
    function tailSet(para1: JLObject; para2: jboolean): JUNavigableSet; overload; virtual;
    function subSet(para1: JLObject; para2: JLObject): JUSortedSet; overload; virtual;
    function headSet(para1: JLObject): JUSortedSet; overload; virtual;
    function tailSet(para1: JLObject): JUSortedSet; overload; virtual;
    function comparator(): JUComparator; overload; virtual;
    function first(): JLObject; overload; virtual;
    function last(): JLObject; overload; virtual;
    function lower(para1: JLObject): JLObject; overload; virtual;
    function floor(para1: JLObject): JLObject; overload; virtual;
    function ceiling(para1: JLObject): JLObject; overload; virtual;
    function higher(para1: JLObject): JLObject; overload; virtual;
    function pollFirst(): JLObject; overload; virtual;
    function pollLast(): JLObject; overload; virtual;
    function clone(): JLObject; overload; virtual;
  end;

  JUCConcurrentSkipListSet = class external 'java.util.concurrent' name 'ConcurrentSkipListSet' (JUAbstractSet, JUNavigableSet, JLCloneable, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: JUComparator); overload;
    constructor create(para1: JUCollection); overload;
    constructor create(para1: JUSortedSet); overload;
    function clone(): JUCConcurrentSkipListSet; overload; virtual;
    function size(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function add(para1: JLObject): jboolean; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    procedure clear(); overload; virtual;
    function iterator(): JUIterator; overload; virtual;
    function descendingIterator(): JUIterator; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function removeAll(para1: JUCollection): jboolean; overload; virtual;
    function lower(para1: JLObject): JLObject; overload; virtual;
    function floor(para1: JLObject): JLObject; overload; virtual;
    function ceiling(para1: JLObject): JLObject; overload; virtual;
    function higher(para1: JLObject): JLObject; overload; virtual;
    function pollFirst(): JLObject; overload; virtual;
    function pollLast(): JLObject; overload; virtual;
    function comparator(): JUComparator; overload; virtual;
    function first(): JLObject; overload; virtual;
    function last(): JLObject; overload; virtual;
    function subSet(para1: JLObject; para2: jboolean; para3: JLObject; para4: jboolean): JUNavigableSet; overload; virtual;
    function headSet(para1: JLObject; para2: jboolean): JUNavigableSet; overload; virtual;
    function tailSet(para1: JLObject; para2: jboolean): JUNavigableSet; overload; virtual;
    function subSet(para1: JLObject; para2: JLObject): JUNavigableSet; overload; virtual;
    function headSet(para1: JLObject): JUNavigableSet; overload; virtual;
    function tailSet(para1: JLObject): JUNavigableSet; overload; virtual;
    function descendingSet(): JUNavigableSet; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
    function tailSet(para1: JLObject): JUSortedSet; overload; virtual;
    function headSet(para1: JLObject): JUSortedSet; overload; virtual;
    function subSet(para1: JLObject; para2: JLObject): JUSortedSet; overload; virtual;
  end;

  JAPButtonPeer = interface external 'java.awt.peer' name 'ButtonPeer' (JAPComponentPeer)
    procedure setLabel(para1: JLString); overload;
  end;

  JAPCanvasPeer = interface external 'java.awt.peer' name 'CanvasPeer' (JAPComponentPeer)
  end;

  JAPCheckboxPeer = interface external 'java.awt.peer' name 'CheckboxPeer' (JAPComponentPeer)
    procedure setState(para1: jboolean); overload;
    procedure setCheckboxGroup(para1: JACheckboxGroup); overload;
    procedure setLabel(para1: JLString); overload;
  end;

  JAPChoicePeer = interface external 'java.awt.peer' name 'ChoicePeer' (JAPComponentPeer)
    procedure add(para1: JLString; para2: jint); overload;
    procedure remove(para1: jint); overload;
    procedure removeAll(); overload;
    procedure select(para1: jint); overload;
    procedure addItem(para1: JLString; para2: jint); overload;
  end;

  JAPContainerPeer = interface external 'java.awt.peer' name 'ContainerPeer' (JAPComponentPeer)
    function getInsets(): JAInsets; overload;
    procedure beginValidate(); overload;
    procedure endValidate(); overload;
    procedure beginLayout(); overload;
    procedure endLayout(); overload;
    function isPaintPending(): jboolean; overload;
    procedure restack(); overload;
    function isRestackSupported(): jboolean; overload;
    function insets(): JAInsets; overload;
  end;

  JAPLabelPeer = interface external 'java.awt.peer' name 'LabelPeer' (JAPComponentPeer)
    procedure setText(para1: JLString); overload;
    procedure setAlignment(para1: jint); overload;
  end;

  JAPLightweightPeer = interface external 'java.awt.peer' name 'LightweightPeer' (JAPComponentPeer)
  end;

  JAPListPeer = interface external 'java.awt.peer' name 'ListPeer' (JAPComponentPeer)
    function getSelectedIndexes(): Arr1jint; overload;
    procedure add(para1: JLString; para2: jint); overload;
    procedure delItems(para1: jint; para2: jint); overload;
    procedure removeAll(); overload;
    procedure select(para1: jint); overload;
    procedure deselect(para1: jint); overload;
    procedure makeVisible(para1: jint); overload;
    procedure setMultipleMode(para1: jboolean); overload;
    function getPreferredSize(para1: jint): JADimension; overload;
    function getMinimumSize(para1: jint): JADimension; overload;
    procedure addItem(para1: JLString; para2: jint); overload;
    procedure clear(); overload;
    procedure setMultipleSelections(para1: jboolean); overload;
    function preferredSize(para1: jint): JADimension; overload;
    function minimumSize(para1: jint): JADimension; overload;
  end;

  JAPScrollbarPeer = interface external 'java.awt.peer' name 'ScrollbarPeer' (JAPComponentPeer)
    procedure setValues(para1: jint; para2: jint; para3: jint; para4: jint); overload;
    procedure setLineIncrement(para1: jint); overload;
    procedure setPageIncrement(para1: jint); overload;
  end;

  JAPTextComponentPeer = interface external 'java.awt.peer' name 'TextComponentPeer' (JAPComponentPeer)
    procedure setEditable(para1: jboolean); overload;
    function getText(): JLString; overload;
    procedure setText(para1: JLString); overload;
    function getSelectionStart(): jint; overload;
    function getSelectionEnd(): jint; overload;
    procedure select(para1: jint; para2: jint); overload;
    procedure setCaretPosition(para1: jint); overload;
    function getCaretPosition(): jint; overload;
    function getIndexAtPoint(para1: jint; para2: jint): jint; overload;
    function getCharacterBounds(para1: jint): JARectangle; overload;
    function filterEvents(para1: jlong): jlong; overload;
    function getInputMethodRequests(): JAIInputMethodRequests; overload;
  end;

  JSSwingDefaultFocusTraversalPolicy = class external 'javax.swing' name 'SwingDefaultFocusTraversalPolicy' (JADefaultFocusTraversalPolicy)
  public
    function accept(para1: JAComponent): jboolean; overload; virtual;
  end;

  JSLayoutFocusTraversalPolicy = class external 'javax.swing' name 'LayoutFocusTraversalPolicy' (JSSortingFocusTraversalPolicy, JISerializable)
  public
    constructor create(); overload;
    function getComponentAfter(para1: JAContainer; para2: JAComponent): JAComponent; overload; virtual;
    function getComponentBefore(para1: JAContainer; para2: JAComponent): JAComponent; overload; virtual;
    function getFirstComponent(para1: JAContainer): JAComponent; overload; virtual;
    function getLastComponent(para1: JAContainer): JAComponent; overload; virtual;
  strict protected
    function accept(para1: JAComponent): jboolean; overload; virtual;
  end;

  JSFocusManager = class abstract external 'javax.swing' name 'FocusManager' (JADefaultKeyboardFocusManager)
  public
    const
      FOCUS_MANAGER_CLASS_PROPERTY = 'FocusManagerClassName';
  public
    constructor create(); overload;
    class function getCurrentManager(): JSFocusManager; static; overload;
    class procedure setCurrentManager(para1: JSFocusManager); static; overload;  // throws java.lang.SecurityException
    class procedure disableSwingFocusManager(); static; overload;
    class function isFocusManagerEnabled(): jboolean; static; overload;
  end;

  JSPBDefaultMenuLayout = class external 'javax.swing.plaf.basic' name 'DefaultMenuLayout' (JSBoxLayout, JSPUIResource)
  public
    constructor create(para1: JAContainer; para2: jint); overload;
    function preferredLayoutSize(para1: JAContainer): JADimension; overload; virtual;
  end;

  JSPSDefaultMenuLayout = class external 'javax.swing.plaf.synth' name 'DefaultMenuLayout' (JSBoxLayout, JSPUIResource)
  public
    constructor create(para1: JAContainer; para2: jint); overload;
    function preferredLayoutSize(para1: JAContainer): JADimension; overload; virtual;
  end;

  JARectangle = class external 'java.awt' name 'Rectangle' (JAGRectangle2D, JAShape, JISerializable)
  public
    var
      fx: jint; external name 'x';
      fy: jint; external name 'y';
      fwidth: jint; external name 'width';
      fheight: jint; external name 'height';
  public
    constructor create(); overload;
    constructor create(para1: JARectangle); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint); overload;
    constructor create(para1: jint; para2: jint); overload;
    constructor create(para1: JAPoint; para2: JADimension); overload;
    constructor create(para1: JAPoint); overload;
    constructor create(para1: JADimension); overload;
    function getX(): jdouble; overload; virtual;
    function getY(): jdouble; overload; virtual;
    function getWidth(): jdouble; overload; virtual;
    function getHeight(): jdouble; overload; virtual;
    function getBounds(): JARectangle; overload; virtual;
    function getBounds2D(): JAGRectangle2D; overload; virtual;
    procedure setBounds(para1: JARectangle); overload; virtual;
    procedure setBounds(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure setRect(para1: jdouble; para2: jdouble; para3: jdouble; para4: jdouble); overload; virtual;
    procedure reshape(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    function getLocation(): JAPoint; overload; virtual;
    procedure setLocation(para1: JAPoint); overload; virtual;
    procedure setLocation(para1: jint; para2: jint); overload; virtual;
    procedure move(para1: jint; para2: jint); overload; virtual;
    procedure translate(para1: jint; para2: jint); overload; virtual;
    function getSize(): JADimension; overload; virtual;
    procedure setSize(para1: JADimension); overload; virtual;
    procedure setSize(para1: jint; para2: jint); overload; virtual;
    procedure resize(para1: jint; para2: jint); overload; virtual;
    function contains(para1: JAPoint): jboolean; overload; virtual;
    function contains(para1: jint; para2: jint): jboolean; overload; virtual;
    function contains(para1: JARectangle): jboolean; overload; virtual;
    function contains(para1: jint; para2: jint; para3: jint; para4: jint): jboolean; overload; virtual;
    function inside(para1: jint; para2: jint): jboolean; overload; virtual;
    function intersects(para1: JARectangle): jboolean; overload; virtual;
    function intersection(para1: JARectangle): JARectangle; overload; virtual;
    function union(para1: JARectangle): JARectangle; overload; virtual;
    procedure add(para1: jint; para2: jint); overload; virtual;
    procedure add(para1: JAPoint); overload; virtual;
    procedure add(para1: JARectangle); overload; virtual;
    procedure grow(para1: jint; para2: jint); overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function outcode(para1: jdouble; para2: jdouble): jint; overload; virtual;
    function createIntersection(para1: JAGRectangle2D): JAGRectangle2D; overload; virtual;
    function createUnion(para1: JAGRectangle2D): JAGRectangle2D; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JASystemColor = class sealed external 'java.awt' name 'SystemColor' (JAColor, JISerializable)
  public
    const
      DESKTOP = 0;
      ACTIVE_CAPTION = 1;
      ACTIVE_CAPTION_TEXT = 2;
      ACTIVE_CAPTION_BORDER = 3;
      INACTIVE_CAPTION = 4;
      INACTIVE_CAPTION_TEXT = 5;
      INACTIVE_CAPTION_BORDER = 6;
      WINDOW = 7;
      WINDOW_BORDER = 8;
      WINDOW_TEXT = 9;
      MENU = 10;
      MENU_TEXT = 11;
      TEXT = 12;
      TEXT_TEXT = 13;
      TEXT_HIGHLIGHT = 14;
      TEXT_HIGHLIGHT_TEXT = 15;
      TEXT_INACTIVE_TEXT = 16;
      CONTROL = 17;
      CONTROL_TEXT = 18;
      CONTROL_HIGHLIGHT = 19;
      CONTROL_LT_HIGHLIGHT = 20;
      CONTROL_SHADOW = 21;
      CONTROL_DK_SHADOW = 22;
      SCROLLBAR = 23;
      INFO = 24;
      INFO_TEXT = 25;
      NUM_COLORS = 26;
  public
    final class var
      fdesktop: JASystemColor; external name 'desktop';
      factiveCaption: JASystemColor; external name 'activeCaption';
      factiveCaptionText: JASystemColor; external name 'activeCaptionText';
      factiveCaptionBorder: JASystemColor; external name 'activeCaptionBorder';
      finactiveCaption: JASystemColor; external name 'inactiveCaption';
      finactiveCaptionText: JASystemColor; external name 'inactiveCaptionText';
      finactiveCaptionBorder: JASystemColor; external name 'inactiveCaptionBorder';
      fwindow: JASystemColor; external name 'window';
      fwindowBorder: JASystemColor; external name 'windowBorder';
      fwindowText: JASystemColor; external name 'windowText';
      fmenu: JASystemColor; external name 'menu';
      fmenuText: JASystemColor; external name 'menuText';
      ftext: JASystemColor; external name 'text';
      ftextText: JASystemColor; external name 'textText';
      ftextHighlight: JASystemColor; external name 'textHighlight';
      ftextHighlightText: JASystemColor; external name 'textHighlightText';
      ftextInactiveText: JASystemColor; external name 'textInactiveText';
      fcontrol: JASystemColor; external name 'control';
      fcontrolText: JASystemColor; external name 'controlText';
      fcontrolHighlight: JASystemColor; external name 'controlHighlight';
      fcontrolLtHighlight: JASystemColor; external name 'controlLtHighlight';
      fcontrolShadow: JASystemColor; external name 'controlShadow';
      fcontrolDkShadow: JASystemColor; external name 'controlDkShadow';
      fscrollbar: JASystemColor; external name 'scrollbar';
      finfo: JASystemColor; external name 'info';
      finfoText: JASystemColor; external name 'infoText';
  public
    function getRGB(): jint; overload; virtual;
    function createContext(para1: JAIColorModel; para2: JARectangle; para3: JAGRectangle2D; para4: JAGAffineTransform; para5: JARenderingHints): JAPaintContext; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSPColorUIResource = class external 'javax.swing.plaf' name 'ColorUIResource' (JAColor, JSPUIResource)
  public
    constructor create(para1: jint; para2: jint; para3: jint); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: jfloat; para2: jfloat; para3: jfloat); overload;
    constructor create(para1: JAColor); overload;
  end;

  JALinearGradientPaint = class sealed external 'java.awt' name 'LinearGradientPaint' (JAMultipleGradientPaint)
  public
    constructor create(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: Arr1jfloat; para6: Arr1JAColor); overload;
    constructor create(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; const para5: array of jfloat; const para6: array of JAColor); overload;
    constructor create(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: Arr1jfloat; para6: Arr1JAColor; para7: JAMultipleGradientPaint.InnerCycleMethod); overload;
    constructor create(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; const para5: array of jfloat; const para6: array of JAColor; para7: JAMultipleGradientPaint.InnerCycleMethod); overload;
    constructor create(para1: JAGPoint2D; para2: JAGPoint2D; para3: Arr1jfloat; para4: Arr1JAColor); overload;
    constructor create(para1: JAGPoint2D; para2: JAGPoint2D; const para3: array of jfloat; const para4: array of JAColor); overload;
    constructor create(para1: JAGPoint2D; para2: JAGPoint2D; para3: Arr1jfloat; para4: Arr1JAColor; para5: JAMultipleGradientPaint.InnerCycleMethod); overload;
    constructor create(para1: JAGPoint2D; para2: JAGPoint2D; const para3: array of jfloat; const para4: array of JAColor; para5: JAMultipleGradientPaint.InnerCycleMethod); overload;
    constructor create(para1: JAGPoint2D; para2: JAGPoint2D; para3: Arr1jfloat; para4: Arr1JAColor; para5: JAMultipleGradientPaint.InnerCycleMethod; para6: JAMultipleGradientPaint.InnerColorSpaceType; para7: JAGAffineTransform); overload;
    constructor create(para1: JAGPoint2D; para2: JAGPoint2D; const para3: array of jfloat; const para4: array of JAColor; para5: JAMultipleGradientPaint.InnerCycleMethod; para6: JAMultipleGradientPaint.InnerColorSpaceType; para7: JAGAffineTransform); overload;
    function createContext(para1: JAIColorModel; para2: JARectangle; para3: JAGRectangle2D; para4: JAGAffineTransform; para5: JARenderingHints): JAPaintContext; overload; virtual;
    function getStartPoint(): JAGPoint2D; overload; virtual;
    function getEndPoint(): JAGPoint2D; overload; virtual;
  end;

  JAMultipleGradientPaintContext = class abstract external 'java.awt' name 'MultipleGradientPaintContext' (JLObject, JAPaintContext)
  strict protected
    var
      fmodel: JAIColorModel; external name 'model';
  strict protected
    class var
      fcachedModel: JAIColorModel; external name 'cachedModel';
      fcached: JLRWeakReference; external name 'cached';
  strict protected
    var
      fsaved: JAIRaster; external name 'saved';
      fcycleMethod: JAMultipleGradientPaint.InnerCycleMethod; external name 'cycleMethod';
      fcolorSpace: JAMultipleGradientPaint.InnerColorSpaceType; external name 'colorSpace';
      fa00: jfloat; external name 'a00';
      fa01: jfloat; external name 'a01';
      fa10: jfloat; external name 'a10';
      fa11: jfloat; external name 'a11';
      fa02: jfloat; external name 'a02';
      fa12: jfloat; external name 'a12';
      fisSimpleLookup: jboolean; external name 'isSimpleLookup';
      ffastGradientArraySize: jint; external name 'fastGradientArraySize';
      fgradient: Arr1jint; external name 'gradient';
  strict protected
    const
      GRADIENT_SIZE = 256;
      GRADIENT_SIZE_INDEX = 255;
  strict protected
    constructor create(para1: JAMultipleGradientPaint; para2: JAIColorModel; para3: JARectangle; para4: JAGRectangle2D; para5: JAGAffineTransform; para6: JARenderingHints; para7: Arr1jfloat; para8: Arr1JAColor; para9: JAMultipleGradientPaint.InnerCycleMethod; para10: JAMultipleGradientPaint.InnerColorSpaceType); overload;
    constructor create(para1: JAMultipleGradientPaint; para2: JAIColorModel; para3: JARectangle; para4: JAGRectangle2D; para5: JAGAffineTransform; para6: JARenderingHints; const para7: array of jfloat; const para8: array of JAColor; para9: JAMultipleGradientPaint.InnerCycleMethod; para10: JAMultipleGradientPaint.InnerColorSpaceType); overload;
    function indexIntoGradientsArrays(para1: jfloat): jint; overload; virtual; final;
  public
    function getRaster(para1: jint; para2: jint; para3: jint; para4: jint): JAIRaster; overload; virtual; final;
  strict protected
    procedure fillRaster(para1: Arr1jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual; abstract;
    procedure fillRaster(var para1: array of jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual; abstract;
  public
    procedure dispose(); overload; virtual; final;
    function getColorModel(): JAIColorModel; overload; virtual; final;
  end;

  JARadialGradientPaint = class sealed external 'java.awt' name 'RadialGradientPaint' (JAMultipleGradientPaint)
  public
    constructor create(para1: jfloat; para2: jfloat; para3: jfloat; para4: Arr1jfloat; para5: Arr1JAColor); overload;
    constructor create(para1: jfloat; para2: jfloat; para3: jfloat; const para4: array of jfloat; const para5: array of JAColor); overload;
    constructor create(para1: JAGPoint2D; para2: jfloat; para3: Arr1jfloat; para4: Arr1JAColor); overload;
    constructor create(para1: JAGPoint2D; para2: jfloat; const para3: array of jfloat; const para4: array of JAColor); overload;
    constructor create(para1: jfloat; para2: jfloat; para3: jfloat; para4: Arr1jfloat; para5: Arr1JAColor; para6: JAMultipleGradientPaint.InnerCycleMethod); overload;
    constructor create(para1: jfloat; para2: jfloat; para3: jfloat; const para4: array of jfloat; const para5: array of JAColor; para6: JAMultipleGradientPaint.InnerCycleMethod); overload;
    constructor create(para1: JAGPoint2D; para2: jfloat; para3: Arr1jfloat; para4: Arr1JAColor; para5: JAMultipleGradientPaint.InnerCycleMethod); overload;
    constructor create(para1: JAGPoint2D; para2: jfloat; const para3: array of jfloat; const para4: array of JAColor; para5: JAMultipleGradientPaint.InnerCycleMethod); overload;
    constructor create(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat; para6: Arr1jfloat; para7: Arr1JAColor; para8: JAMultipleGradientPaint.InnerCycleMethod); overload;
    constructor create(para1: jfloat; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat; const para6: array of jfloat; const para7: array of JAColor; para8: JAMultipleGradientPaint.InnerCycleMethod); overload;
    constructor create(para1: JAGPoint2D; para2: jfloat; para3: JAGPoint2D; para4: Arr1jfloat; para5: Arr1JAColor; para6: JAMultipleGradientPaint.InnerCycleMethod); overload;
    constructor create(para1: JAGPoint2D; para2: jfloat; para3: JAGPoint2D; const para4: array of jfloat; const para5: array of JAColor; para6: JAMultipleGradientPaint.InnerCycleMethod); overload;
    constructor create(para1: JAGPoint2D; para2: jfloat; para3: JAGPoint2D; para4: Arr1jfloat; para5: Arr1JAColor; para6: JAMultipleGradientPaint.InnerCycleMethod; para7: JAMultipleGradientPaint.InnerColorSpaceType; para8: JAGAffineTransform); overload;
    constructor create(para1: JAGPoint2D; para2: jfloat; para3: JAGPoint2D; const para4: array of jfloat; const para5: array of JAColor; para6: JAMultipleGradientPaint.InnerCycleMethod; para7: JAMultipleGradientPaint.InnerColorSpaceType; para8: JAGAffineTransform); overload;
    constructor create(para1: JAGRectangle2D; para2: Arr1jfloat; para3: Arr1JAColor; para4: JAMultipleGradientPaint.InnerCycleMethod); overload;
    constructor create(para1: JAGRectangle2D; const para2: array of jfloat; const para3: array of JAColor; para4: JAMultipleGradientPaint.InnerCycleMethod); overload;
    function createContext(para1: JAIColorModel; para2: JARectangle; para3: JAGRectangle2D; para4: JAGAffineTransform; para5: JARenderingHints): JAPaintContext; overload; virtual;
    function getCenterPoint(): JAGPoint2D; overload; virtual;
    function getFocusPoint(): JAGPoint2D; overload; virtual;
    function getRadius(): jfloat; overload; virtual;
  end;

  JAIDirectColorModel = class external 'java.awt.image' name 'DirectColorModel' (JAIPackedColorModel)
  public
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint); overload;
    constructor create(para1: JACColorSpace; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jboolean; para8: jint); overload;
    function getRedMask(): jint; overload; virtual; final;
    function getGreenMask(): jint; overload; virtual; final;
    function getBlueMask(): jint; overload; virtual; final;
    function getAlphaMask(): jint; overload; virtual; final;
    function getRed(para1: jint): jint; overload; virtual; final;
    function getGreen(para1: jint): jint; overload; virtual; final;
    function getBlue(para1: jint): jint; overload; virtual; final;
    function getAlpha(para1: jint): jint; overload; virtual; final;
    function getRGB(para1: jint): jint; overload; virtual; final;
    function getRed(para1: JLObject): jint; overload; virtual;
    function getGreen(para1: JLObject): jint; overload; virtual;
    function getBlue(para1: JLObject): jint; overload; virtual;
    function getAlpha(para1: JLObject): jint; overload; virtual;
    function getRGB(para1: JLObject): jint; overload; virtual;
    function getDataElements(para1: jint; para2: JLObject): JLObject; overload; virtual;
    function getComponents(para1: jint; para2: Arr1jint; para3: jint): Arr1jint; overload; virtual; final;
    function getComponents(para1: jint; var para2: array of jint; para3: jint): Arr1jint; overload; virtual; final;
    function getComponents(para1: JLObject; para2: Arr1jint; para3: jint): Arr1jint; overload; virtual; final;
    function getComponents(para1: JLObject; var para2: array of jint; para3: jint): Arr1jint; overload; virtual; final;
    function createCompatibleWritableRaster(para1: jint; para2: jint): JAIWritableRaster; overload; virtual; final;
    function getDataElement(para1: Arr1jint; para2: jint): jint; overload; virtual;
    function getDataElement(var para1: array of jint; para2: jint): jint; overload; virtual;
    function getDataElements(para1: Arr1jint; para2: jint; para3: JLObject): JLObject; overload; virtual;
    function getDataElements(var para1: array of jint; para2: jint; para3: JLObject): JLObject; overload; virtual;
    function coerceData(para1: JAIWritableRaster; para2: jboolean): JAIColorModel; overload; virtual; final;
    function isCompatibleRaster(para1: JAIRaster): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSDebugGraphicsFilter = class external 'javax.swing' name 'DebugGraphicsFilter' (JAIRGBImageFilter)
  public
    function filterRGB(para1: jint; para2: jint; para3: jint): jint; overload; virtual;
  end;

  JSGrayFilter = class external 'javax.swing' name 'GrayFilter' (JAIRGBImageFilter)
  public
    class function createDisabledImage(para1: JAImage): JAImage; static; overload;
    constructor create(para1: jboolean; para2: jint); overload;
    function filterRGB(para1: jint; para2: jint; para3: jint): jint; overload; virtual;
  end;

  JAIAreaAveragingScaleFilter = class external 'java.awt.image' name 'AreaAveragingScaleFilter' (JAIReplicateScaleFilter)
  public
    constructor create(para1: jint; para2: jint); overload;
    procedure setHints(para1: jint); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIColorModel; para6: Arr1jbyte; para7: jint; para8: jint); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIColorModel; var para6: array of jbyte; para7: jint; para8: jint); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIColorModel; para6: Arr1jint; para7: jint; para8: jint); overload; virtual;
    procedure setPixels(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAIColorModel; var para6: array of jint; para7: jint; para8: jint); overload; virtual;
  end;

  JAPanel = class external 'java.awt' name 'Panel' (JAContainer, JAAccessible)
  public
    type
      InnerAccessibleAWTPanel = class;
      Arr1InnerAccessibleAWTPanel = array of InnerAccessibleAWTPanel;
      Arr2InnerAccessibleAWTPanel = array of Arr1InnerAccessibleAWTPanel;
      Arr3InnerAccessibleAWTPanel = array of Arr2InnerAccessibleAWTPanel;
      InnerAccessibleAWTPanel = class external 'java.awt' name 'AccessibleAWTPanel' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: JALayoutManager); overload;
    procedure addNotify(); overload; virtual;
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JAScrollPane = class external 'java.awt' name 'ScrollPane' (JAContainer, JAAccessible)
  public
    type
      InnerPeerFixer = class;
      Arr1InnerPeerFixer = array of InnerPeerFixer;
      Arr2InnerPeerFixer = array of Arr1InnerPeerFixer;
      Arr3InnerPeerFixer = array of Arr2InnerPeerFixer;
      InnerPeerFixer = class external 'java.awt' name 'PeerFixer' 
      end;

  public
    type
      InnerAccessibleAWTScrollPane = class;
      Arr1InnerAccessibleAWTScrollPane = array of InnerAccessibleAWTScrollPane;
      Arr2InnerAccessibleAWTScrollPane = array of Arr1InnerAccessibleAWTScrollPane;
      Arr3InnerAccessibleAWTScrollPane = array of Arr2InnerAccessibleAWTScrollPane;
      InnerAccessibleAWTScrollPane = class external 'java.awt' name 'AccessibleAWTScrollPane' 
      end;

  public
    const
      SCROLLBARS_AS_NEEDED = 0;
      SCROLLBARS_ALWAYS = 1;
      SCROLLBARS_NEVER = 2;
  public
    constructor create(); overload;  // throws java.awt.HeadlessException
    constructor create(para1: jint); overload;  // throws java.awt.HeadlessException
  strict protected
    procedure addImpl(para1: JAComponent; para2: JLObject; para3: jint); overload; virtual; final;
  public
    function getScrollbarDisplayPolicy(): jint; overload; virtual;
    function getViewportSize(): JADimension; overload; virtual;
    function getHScrollbarHeight(): jint; overload; virtual;
    function getVScrollbarWidth(): jint; overload; virtual;
    function getVAdjustable(): JAAdjustable; overload; virtual;
    function getHAdjustable(): JAAdjustable; overload; virtual;
    procedure setScrollPosition(para1: jint; para2: jint); overload; virtual;
    procedure setScrollPosition(para1: JAPoint); overload; virtual;
    function getScrollPosition(): JAPoint; overload; virtual;
    procedure setLayout(para1: JALayoutManager); overload; virtual; final;
    procedure doLayout(); overload; virtual;
    procedure layout(); overload; virtual;
    procedure printComponents(para1: JAGraphics); overload; virtual;
    procedure addNotify(); overload; virtual;
    function paramString(): JLString; overload; virtual;
  strict protected
    procedure processMouseWheelEvent(para1: JAEMouseWheelEvent); overload; virtual;
    function eventTypeEnabled(para1: jint): jboolean; overload; virtual;
  public
    procedure setWheelScrollingEnabled(para1: jboolean); overload; virtual;
    function isWheelScrollingEnabled(): jboolean; overload; virtual;
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JAWindow = class external 'java.awt' name 'Window' (JAContainer, JAAccessible)
  public
    type
      InnerWindowDisposerRecord = class;
      Arr1InnerWindowDisposerRecord = array of InnerWindowDisposerRecord;
      Arr2InnerWindowDisposerRecord = array of Arr1InnerWindowDisposerRecord;
      Arr3InnerWindowDisposerRecord = array of Arr2InnerWindowDisposerRecord;
      InnerWindowDisposerRecord = class external 'java.awt' name 'WindowDisposerRecord' 
      end;

  public
    type
      InnerAccessibleAWTWindow = class;
      Arr1InnerAccessibleAWTWindow = array of InnerAccessibleAWTWindow;
      Arr2InnerAccessibleAWTWindow = array of Arr1InnerAccessibleAWTWindow;
      Arr3InnerAccessibleAWTWindow = array of Arr2InnerAccessibleAWTWindow;
      InnerAccessibleAWTWindow = class external 'java.awt' name 'AccessibleAWTWindow' 
      end;

  public
    constructor create(para1: JAFrame); overload;
    constructor create(para1: JAWindow); overload;
    constructor create(para1: JAWindow; para2: JAGraphicsConfiguration); overload;
    function getIconImages(): JUList; overload; virtual;
    procedure setIconImages(para1: JUList); overload; virtual;
    procedure setIconImage(para1: JAImage); overload; virtual;
    procedure addNotify(); overload; virtual;
    procedure removeNotify(); overload; virtual;
    procedure pack(); overload; virtual;
    procedure setMinimumSize(para1: JADimension); overload; virtual;
    procedure setSize(para1: JADimension); overload; virtual;
    procedure setSize(para1: jint; para2: jint); overload; virtual;
    procedure reshape(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure setVisible(para1: jboolean); overload; virtual;
    procedure show(); overload; virtual;
    procedure hide(); overload; virtual;
    procedure dispose(); overload; virtual;
    procedure toFront(); overload; virtual;
    procedure toBack(); overload; virtual;
    function getToolkit(): JAToolkit; overload; virtual;
    function getWarningString(): JLString; overload; virtual; final;
    function getLocale(): JULocale; overload; virtual;
    function getInputContext(): JAIInputContext; overload; virtual;
    procedure setCursor(para1: JACursor); overload; virtual;
    function getOwner(): JAWindow; overload; virtual;
    function getOwnedWindows(): Arr1JAWindow; overload; virtual;
    class function getWindows(): Arr1JAWindow; static; overload;
    class function getOwnerlessWindows(): Arr1JAWindow; static; overload;
    procedure setModalExclusionType(para1: JADialog.InnerModalExclusionType); overload; virtual;
    function getModalExclusionType(): JADialog.InnerModalExclusionType; overload; virtual;
    procedure addWindowListener(para1: JAEWindowListener); overload; virtual;
    procedure addWindowStateListener(para1: JAEWindowStateListener); overload; virtual;
    procedure addWindowFocusListener(para1: JAEWindowFocusListener); overload; virtual;
    procedure removeWindowListener(para1: JAEWindowListener); overload; virtual;
    procedure removeWindowStateListener(para1: JAEWindowStateListener); overload; virtual;
    procedure removeWindowFocusListener(para1: JAEWindowFocusListener); overload; virtual;
    function getWindowListeners(): Arr1JAEWindowListener; overload; virtual;
    function getWindowFocusListeners(): Arr1JAEWindowFocusListener; overload; virtual;
    function getWindowStateListeners(): Arr1JAEWindowStateListener; overload; virtual;
    function getListeners(para1: JLClass): Arr1JUEventListener; overload; virtual;
  strict protected
    procedure processEvent(para1: JAAWTEvent); overload; virtual;
    procedure processWindowEvent(para1: JAEWindowEvent); overload; virtual;
    procedure processWindowFocusEvent(para1: JAEWindowEvent); overload; virtual;
    procedure processWindowStateEvent(para1: JAEWindowEvent); overload; virtual;
  public
    procedure setAlwaysOnTop(para1: jboolean); overload; virtual; final;  // throws java.lang.SecurityException
    function isAlwaysOnTopSupported(): jboolean; overload; virtual;
    function isAlwaysOnTop(): jboolean; overload; virtual; final;
    function getFocusOwner(): JAComponent; overload; virtual;
    function getMostRecentFocusOwner(): JAComponent; overload; virtual;
    function isActive(): jboolean; overload; virtual;
    function isFocused(): jboolean; overload; virtual;
    function getFocusTraversalKeys(para1: jint): JUSet; overload; virtual;
    procedure setFocusCycleRoot(para1: jboolean); overload; virtual; final;
    function isFocusCycleRoot(): jboolean; overload; virtual; final;
    function getFocusCycleRootAncestor(): JAContainer; overload; virtual; final;
    function isFocusableWindow(): jboolean; overload; virtual; final;
    function getFocusableWindowState(): jboolean; overload; virtual;
    procedure setFocusableWindowState(para1: jboolean); overload; virtual;
    procedure addPropertyChangeListener(para1: JBPropertyChangeListener); overload; virtual;
    procedure addPropertyChangeListener(para1: JLString; para2: JBPropertyChangeListener); overload; virtual;
    function postEvent(para1: JAEvent): jboolean; overload; virtual;
    function isShowing(): jboolean; overload; virtual;
    procedure applyResourceBundle(para1: JUResourceBundle); overload; virtual;
    procedure applyResourceBundle(para1: JLString); overload; virtual;
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
    function getGraphicsConfiguration(): JAGraphicsConfiguration; overload; virtual;
    procedure setLocationRelativeTo(para1: JAComponent); overload; virtual;
    procedure createBufferStrategy(para1: jint); overload; virtual;
    procedure createBufferStrategy(para1: jint; para2: JABufferCapabilities); overload; virtual;  // throws java.awt.AWTException
    function getBufferStrategy(): JAIBufferStrategy; overload; virtual;
    procedure setLocationByPlatform(para1: jboolean); overload; virtual;
    function isLocationByPlatform(): jboolean; overload; virtual;
    procedure setBounds(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure setBounds(para1: JARectangle); overload; virtual;
    procedure paint(para1: JAGraphics); overload; virtual;
  end;

  JSCellRendererPane = class external 'javax.swing' name 'CellRendererPane' (JAContainer, JAAccessible)
  public
    type
      InnerAccessibleCellRendererPane = class;
      Arr1InnerAccessibleCellRendererPane = array of InnerAccessibleCellRendererPane;
      Arr2InnerAccessibleCellRendererPane = array of Arr1InnerAccessibleCellRendererPane;
      Arr3InnerAccessibleCellRendererPane = array of Arr2InnerAccessibleCellRendererPane;
      InnerAccessibleCellRendererPane = class external 'javax.swing' name 'AccessibleCellRendererPane' 
      end;

  strict protected
    var
      faccessibleContext: JAAccessibleContext; external name 'accessibleContext';
  public
    constructor create(); overload;
    procedure invalidate(); overload; virtual;
    procedure paint(para1: JAGraphics); overload; virtual;
    procedure update(para1: JAGraphics); overload; virtual;
  strict protected
    procedure addImpl(para1: JAComponent; para2: JLObject; para3: jint); overload; virtual;
  public
    procedure paintComponent(para1: JAGraphics; para2: JAComponent; para3: JAContainer; para4: jint; para5: jint; para6: jint; para7: jint; para8: jboolean); overload; virtual;
    procedure paintComponent(para1: JAGraphics; para2: JAComponent; para3: JAContainer; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintComponent(para1: JAGraphics; para2: JAComponent; para3: JAContainer; para4: JARectangle); overload; virtual;
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJComponent = class abstract external 'javax.swing' name 'JComponent' (JAContainer, JISerializable, JSTransferHandler.InnerHasGetTransferHandler)
  public
    type
      InnerActionStandin = class;
      Arr1InnerActionStandin = array of InnerActionStandin;
      Arr2InnerActionStandin = array of Arr1InnerActionStandin;
      Arr3InnerActionStandin = array of Arr2InnerActionStandin;
      InnerIntVector = class;
      Arr1InnerIntVector = array of InnerIntVector;
      Arr2InnerIntVector = array of Arr1InnerIntVector;
      Arr3InnerIntVector = array of Arr2InnerIntVector;
      InnerKeyboardState = class;
      Arr1InnerKeyboardState = array of InnerKeyboardState;
      Arr2InnerKeyboardState = array of Arr1InnerKeyboardState;
      Arr3InnerKeyboardState = array of Arr2InnerKeyboardState;
      InnerReadObjectCallback = class;
      Arr1InnerReadObjectCallback = array of InnerReadObjectCallback;
      Arr2InnerReadObjectCallback = array of Arr1InnerReadObjectCallback;
      Arr3InnerReadObjectCallback = array of Arr2InnerReadObjectCallback;
      InnerActionStandin = class sealed external 'javax.swing' name 'ActionStandin' 
      end;

      InnerIntVector = class sealed external 'javax.swing' name 'IntVector' 
      end;

      InnerKeyboardState = class external 'javax.swing' name 'KeyboardState' 
      end;

      InnerReadObjectCallback = class external 'javax.swing' name 'ReadObjectCallback' 
      end;

  public
    type
      InnerAccessibleJComponent = class;
      Arr1InnerAccessibleJComponent = array of InnerAccessibleJComponent;
      Arr2InnerAccessibleJComponent = array of Arr1InnerAccessibleJComponent;
      Arr3InnerAccessibleJComponent = array of Arr2InnerAccessibleJComponent;
      InnerAccessibleJComponent = class abstract external 'javax.swing' name 'AccessibleJComponent' 
      public
        type
          InnerAccessibleContainerHandler = class;
          Arr1InnerAccessibleContainerHandler = array of InnerAccessibleContainerHandler;
          Arr2InnerAccessibleContainerHandler = array of Arr1InnerAccessibleContainerHandler;
          Arr3InnerAccessibleContainerHandler = array of Arr2InnerAccessibleContainerHandler;
          InnerAccessibleFocusHandler = class;
          Arr1InnerAccessibleFocusHandler = array of InnerAccessibleFocusHandler;
          Arr2InnerAccessibleFocusHandler = array of Arr1InnerAccessibleFocusHandler;
          Arr3InnerAccessibleFocusHandler = array of Arr2InnerAccessibleFocusHandler;
          InnerAccessibleContainerHandler = class external 'javax.swing' name 'AccessibleContainerHandler' 
          end;

          InnerAccessibleFocusHandler = class external 'javax.swing' name 'AccessibleFocusHandler' 
          end;

      end;

  strict protected
    var
      fui: JSPComponentUI; external name 'ui';
      flistenerList: JSEEventListenerList; external name 'listenerList';
  public
    const
      WHEN_FOCUSED = 0;
      WHEN_ANCESTOR_OF_FOCUSED_COMPONENT = 1;
      WHEN_IN_FOCUSED_WINDOW = 2;
      UNDEFINED_CONDITION = -1;
      TOOL_TIP_TEXT_KEY = 'ToolTipText';
  strict protected
    var
      faccessibleContext: JAAccessibleContext; external name 'accessibleContext';
  public
    procedure setInheritsPopupMenu(para1: jboolean); overload; virtual;
    function getInheritsPopupMenu(): jboolean; overload; virtual;
    procedure setComponentPopupMenu(para1: JSJPopupMenu); overload; virtual;
    function getComponentPopupMenu(): JSJPopupMenu; overload; virtual;
    constructor create(); overload;
    procedure updateUI(); overload; virtual;
  strict protected
    procedure setUI(para1: JSPComponentUI); overload; virtual;
  public
    function getUIClassID(): JLString; overload; virtual;
  strict protected
    function getComponentGraphics(para1: JAGraphics): JAGraphics; overload; virtual;
    procedure paintComponent(para1: JAGraphics); overload; virtual;
    procedure paintChildren(para1: JAGraphics); overload; virtual;
    procedure paintBorder(para1: JAGraphics); overload; virtual;
  public
    procedure update(para1: JAGraphics); overload; virtual;
    procedure paint(para1: JAGraphics); overload; virtual;
    procedure printAll(para1: JAGraphics); overload; virtual;
    procedure print(para1: JAGraphics); overload; virtual;
  strict protected
    procedure printComponent(para1: JAGraphics); overload; virtual;
    procedure printChildren(para1: JAGraphics); overload; virtual;
    procedure printBorder(para1: JAGraphics); overload; virtual;
  public
    function isPaintingTile(): jboolean; overload; virtual;
    function isPaintingForPrint(): jboolean; overload; virtual; final;
    function isManagingFocus(): jboolean; overload; virtual;
    procedure setNextFocusableComponent(para1: JAComponent); overload; virtual;
    function getNextFocusableComponent(): JAComponent; overload; virtual;
    procedure setRequestFocusEnabled(para1: jboolean); overload; virtual;
    function isRequestFocusEnabled(): jboolean; overload; virtual;
    procedure requestFocus(); overload; virtual;
    function requestFocus(para1: jboolean): jboolean; overload; virtual;
    function requestFocusInWindow(): jboolean; overload; virtual;
  strict protected
    function requestFocusInWindow(para1: jboolean): jboolean; overload; virtual;
  public
    procedure grabFocus(); overload; virtual;
    procedure setVerifyInputWhenFocusTarget(para1: jboolean); overload; virtual;
    function getVerifyInputWhenFocusTarget(): jboolean; overload; virtual;
    function getFontMetrics(para1: JAFont): JAFontMetrics; overload; virtual;
    procedure setPreferredSize(para1: JADimension); overload; virtual;
    function getPreferredSize(): JADimension; overload; virtual;
    procedure setMaximumSize(para1: JADimension); overload; virtual;
    function getMaximumSize(): JADimension; overload; virtual;
    procedure setMinimumSize(para1: JADimension); overload; virtual;
    function getMinimumSize(): JADimension; overload; virtual;
    function contains(para1: jint; para2: jint): jboolean; overload; virtual;
    procedure setBorder(para1: JSBBorder); overload; virtual;
    function getBorder(): JSBBorder; overload; virtual;
    function getInsets(): JAInsets; overload; virtual;
    function getInsets(para1: JAInsets): JAInsets; overload; virtual;
    function getAlignmentY(): jfloat; overload; virtual;
    procedure setAlignmentY(para1: jfloat); overload; virtual;
    function getAlignmentX(): jfloat; overload; virtual;
    procedure setAlignmentX(para1: jfloat); overload; virtual;
    procedure setInputVerifier(para1: JSInputVerifier); overload; virtual;
    function getInputVerifier(): JSInputVerifier; overload; virtual;
    function getGraphics(): JAGraphics; overload; virtual;
    procedure setDebugGraphicsOptions(para1: jint); overload; virtual;
    function getDebugGraphicsOptions(): jint; overload; virtual;
    procedure registerKeyboardAction(para1: JAEActionListener; para2: JLString; para3: JSKeyStroke; para4: jint); overload; virtual;
    procedure registerKeyboardAction(para1: JAEActionListener; para2: JSKeyStroke; para3: jint); overload; virtual;
    procedure unregisterKeyboardAction(para1: JSKeyStroke); overload; virtual;
    function getRegisteredKeyStrokes(): Arr1JSKeyStroke; overload; virtual;
    function getConditionForKeyStroke(para1: JSKeyStroke): jint; overload; virtual;
    function getActionForKeyStroke(para1: JSKeyStroke): JAEActionListener; overload; virtual;
    procedure resetKeyboardActions(); overload; virtual;
    procedure setInputMap(para1: jint; para2: JSInputMap); overload; virtual; final;
    function getInputMap(para1: jint): JSInputMap; overload; virtual; final;
    function getInputMap(): JSInputMap; overload; virtual; final;
    procedure setActionMap(para1: JSActionMap); overload; virtual; final;
    function getActionMap(): JSActionMap; overload; virtual; final;
    function getBaseline(para1: jint; para2: jint): jint; overload; virtual;
    function getBaselineResizeBehavior(): JAComponent.InnerBaselineResizeBehavior; overload; virtual;
    function requestDefaultFocus(): jboolean; overload; virtual;
    procedure setVisible(para1: jboolean); overload; virtual;
    procedure setEnabled(para1: jboolean); overload; virtual;
    procedure setForeground(para1: JAColor); overload; virtual;
    procedure setBackground(para1: JAColor); overload; virtual;
    procedure setFont(para1: JAFont); overload; virtual;
    class function getDefaultLocale(): JULocale; static; overload;
    class procedure setDefaultLocale(para1: JULocale); static; overload;
  strict protected
    procedure processComponentKeyEvent(para1: JAEKeyEvent); overload; virtual;
    procedure processKeyEvent(para1: JAEKeyEvent); overload; virtual;
    function processKeyBinding(para1: JSKeyStroke; para2: JAEKeyEvent; para3: jint; para4: jboolean): jboolean; overload; virtual;
  public
    procedure setToolTipText(para1: JLString); overload; virtual;
    function getToolTipText(): JLString; overload; virtual;
    function getToolTipText(para1: JAEMouseEvent): JLString; overload; virtual;
    function getToolTipLocation(para1: JAEMouseEvent): JAPoint; overload; virtual;
    function getPopupLocation(para1: JAEMouseEvent): JAPoint; overload; virtual;
    function createToolTip(): JSJToolTip; overload; virtual;
    procedure scrollRectToVisible(para1: JARectangle); overload; virtual;
    procedure setAutoscrolls(para1: jboolean); overload; virtual;
    function getAutoscrolls(): jboolean; overload; virtual;
    procedure setTransferHandler(para1: JSTransferHandler); overload; virtual;
    function getTransferHandler(): JSTransferHandler; overload; virtual;
  strict protected
    procedure processMouseEvent(para1: JAEMouseEvent); overload; virtual;
    procedure processMouseMotionEvent(para1: JAEMouseEvent); overload; virtual;
  public
    procedure enable(); overload; virtual;
    procedure disable(); overload; virtual;
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
    function getClientProperty(para1: JLObject): JLObject; overload; virtual; final;
    procedure putClientProperty(para1: JLObject; para2: JLObject); overload; virtual; final;
    procedure setFocusTraversalKeys(para1: jint; para2: JUSet); overload; virtual;
    class function isLightweightComponent(para1: JAComponent): jboolean; static; overload;
    procedure reshape(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    function getBounds(para1: JARectangle): JARectangle; overload; virtual;
    function getSize(para1: JADimension): JADimension; overload; virtual;
    function getLocation(para1: JAPoint): JAPoint; overload; virtual;
    function getX(): jint; overload; virtual;
    function getY(): jint; overload; virtual;
    function getWidth(): jint; overload; virtual;
    function getHeight(): jint; overload; virtual;
    function isOpaque(): jboolean; overload; virtual;
    procedure setOpaque(para1: jboolean); overload; virtual;
    procedure computeVisibleRect(para1: JARectangle); overload; virtual;
    function getVisibleRect(): JARectangle; overload; virtual;
    procedure firePropertyChange(para1: JLString; para2: jboolean; para3: jboolean); overload; virtual;
    procedure firePropertyChange(para1: JLString; para2: jint; para3: jint); overload; virtual;
    procedure firePropertyChange(para1: JLString; para2: jchar; para3: jchar); overload; virtual;
  strict protected
    procedure fireVetoableChange(para1: JLString; para2: JLObject; para3: JLObject); overload; virtual;  // throws java.beans.PropertyVetoException
  public
    procedure addVetoableChangeListener(para1: JBVetoableChangeListener); overload; virtual;
    procedure removeVetoableChangeListener(para1: JBVetoableChangeListener); overload; virtual;
    function getVetoableChangeListeners(): Arr1JBVetoableChangeListener; overload; virtual;
    function getTopLevelAncestor(): JAContainer; overload; virtual;
    procedure addAncestorListener(para1: JSEAncestorListener); overload; virtual;
    procedure removeAncestorListener(para1: JSEAncestorListener); overload; virtual;
    function getAncestorListeners(): Arr1JSEAncestorListener; overload; virtual;
    function getListeners(para1: JLClass): Arr1JUEventListener; overload; virtual;
    procedure addNotify(); overload; virtual;
    procedure removeNotify(); overload; virtual;
    procedure repaint(para1: jlong; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    procedure repaint(para1: JARectangle); overload; virtual;
    procedure revalidate(); overload; virtual;
    function isValidateRoot(): jboolean; overload; virtual;
    function isOptimizedDrawingEnabled(): jboolean; overload; virtual;
    procedure paintImmediately(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure paintImmediately(para1: JARectangle); overload; virtual;
    procedure setDoubleBuffered(para1: jboolean); overload; virtual;
    function isDoubleBuffered(): jboolean; overload; virtual;
    function getRootPane(): JSJRootPane; overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  end;

  JSPBBasicSplitPaneDivider = class external 'javax.swing.plaf.basic' name 'BasicSplitPaneDivider' (JAContainer, JBPropertyChangeListener)
  public
    type
      InnerOneTouchActionHandler = class;
      Arr1InnerOneTouchActionHandler = array of InnerOneTouchActionHandler;
      Arr2InnerOneTouchActionHandler = array of Arr1InnerOneTouchActionHandler;
      Arr3InnerOneTouchActionHandler = array of Arr2InnerOneTouchActionHandler;
      InnerOneTouchActionHandler = class external 'javax.swing.plaf.basic' name 'OneTouchActionHandler' 
      end;

  public
    type
      InnerDragController = class;
      Arr1InnerDragController = array of InnerDragController;
      Arr2InnerDragController = array of Arr1InnerDragController;
      Arr3InnerDragController = array of Arr2InnerDragController;
      InnerDividerLayout = class;
      Arr1InnerDividerLayout = array of InnerDividerLayout;
      Arr2InnerDividerLayout = array of Arr1InnerDividerLayout;
      Arr3InnerDividerLayout = array of Arr2InnerDividerLayout;
      InnerMouseHandler = class;
      Arr1InnerMouseHandler = array of InnerMouseHandler;
      Arr2InnerMouseHandler = array of Arr1InnerMouseHandler;
      Arr3InnerMouseHandler = array of Arr2InnerMouseHandler;
      InnerVerticalDragController = class;
      Arr1InnerVerticalDragController = array of InnerVerticalDragController;
      Arr2InnerVerticalDragController = array of Arr1InnerVerticalDragController;
      Arr3InnerVerticalDragController = array of Arr2InnerVerticalDragController;
      InnerDragController = class external 'javax.swing.plaf.basic' name 'DragController' 
      end;

      InnerDividerLayout = class external 'javax.swing.plaf.basic' name 'DividerLayout' 
      end;

      InnerMouseHandler = class external 'javax.swing.plaf.basic' name 'MouseHandler' 
      end;

      InnerVerticalDragController = class external 'javax.swing.plaf.basic' name 'VerticalDragController' 
      end;

  strict protected
    const
      ONE_TOUCH_SIZE = 6;
      ONE_TOUCH_OFFSET = 2;
  strict protected
    var
      fdragger: JSPBBasicSplitPaneDivider.InnerDragController; external name 'dragger';
      fsplitPaneUI: JSPBBasicSplitPaneUI; external name 'splitPaneUI';
      fdividerSize: jint; external name 'dividerSize';
      fhiddenDivider: JAComponent; external name 'hiddenDivider';
      fsplitPane: JSJSplitPane; external name 'splitPane';
      fmouseHandler: JSPBBasicSplitPaneDivider.InnerMouseHandler; external name 'mouseHandler';
      forientation: jint; external name 'orientation';
      fleftButton: JSJButton; external name 'leftButton';
      frightButton: JSJButton; external name 'rightButton';
  public
    constructor create(para1: JSPBBasicSplitPaneUI); overload;
    procedure setBasicSplitPaneUI(para1: JSPBBasicSplitPaneUI); overload; virtual;
    function getBasicSplitPaneUI(): JSPBBasicSplitPaneUI; overload; virtual;
    procedure setDividerSize(para1: jint); overload; virtual;
    function getDividerSize(): jint; overload; virtual;
    procedure setBorder(para1: JSBBorder); overload; virtual;
    function getBorder(): JSBBorder; overload; virtual;
    function getInsets(): JAInsets; overload; virtual;
  strict protected
    procedure setMouseOver(para1: jboolean); overload; virtual;
  public
    function isMouseOver(): jboolean; overload; virtual;
    function getPreferredSize(): JADimension; overload; virtual;
    function getMinimumSize(): JADimension; overload; virtual;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
    procedure paint(para1: JAGraphics); overload; virtual;
  strict protected
    procedure oneTouchExpandableChanged(); overload; virtual;
    function createLeftOneTouchButton(): JSJButton; overload; virtual;
    function createRightOneTouchButton(): JSJButton; overload; virtual;
    procedure prepareForDragging(); overload; virtual;
    procedure dragDividerTo(para1: jint); overload; virtual;
    procedure finishDraggingTo(para1: jint); overload; virtual;
  end;

  JATextArea = class external 'java.awt' name 'TextArea' (JATextComponent)
  public
    type
      InnerAccessibleAWTTextArea = class;
      Arr1InnerAccessibleAWTTextArea = array of InnerAccessibleAWTTextArea;
      Arr2InnerAccessibleAWTTextArea = array of Arr1InnerAccessibleAWTTextArea;
      Arr3InnerAccessibleAWTTextArea = array of Arr2InnerAccessibleAWTTextArea;
      InnerAccessibleAWTTextArea = class external 'java.awt' name 'AccessibleAWTTextArea' 
      end;

  public
    const
      SCROLLBARS_BOTH = 0;
      SCROLLBARS_VERTICAL_ONLY = 1;
      SCROLLBARS_HORIZONTAL_ONLY = 2;
      SCROLLBARS_NONE = 3;
  public
    constructor create(); overload;  // throws java.awt.HeadlessException
    constructor create(para1: JLString); overload;  // throws java.awt.HeadlessException
    constructor create(para1: jint; para2: jint); overload;  // throws java.awt.HeadlessException
    constructor create(para1: JLString; para2: jint; para3: jint); overload;  // throws java.awt.HeadlessException
    constructor create(para1: JLString; para2: jint; para3: jint; para4: jint); overload;  // throws java.awt.HeadlessException
    procedure addNotify(); overload; virtual;
    procedure insert(para1: JLString; para2: jint); overload; virtual;
    procedure insertText(para1: JLString; para2: jint); overload; virtual;
    procedure append(para1: JLString); overload; virtual;
    procedure appendText(para1: JLString); overload; virtual;
    procedure replaceRange(para1: JLString; para2: jint; para3: jint); overload; virtual;
    procedure replaceText(para1: JLString; para2: jint; para3: jint); overload; virtual;
    function getRows(): jint; overload; virtual;
    procedure setRows(para1: jint); overload; virtual;
    function getColumns(): jint; overload; virtual;
    procedure setColumns(para1: jint); overload; virtual;
    function getScrollbarVisibility(): jint; overload; virtual;
    function getPreferredSize(para1: jint; para2: jint): JADimension; overload; virtual;
    function preferredSize(para1: jint; para2: jint): JADimension; overload; virtual;
    function getPreferredSize(): JADimension; overload; virtual;
    function preferredSize(): JADimension; overload; virtual;
    function getMinimumSize(para1: jint; para2: jint): JADimension; overload; virtual;
    function minimumSize(para1: jint; para2: jint): JADimension; overload; virtual;
    function getMinimumSize(): JADimension; overload; virtual;
    function minimumSize(): JADimension; overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JATextField = class external 'java.awt' name 'TextField' (JATextComponent)
  public
    type
      InnerAccessibleAWTTextField = class;
      Arr1InnerAccessibleAWTTextField = array of InnerAccessibleAWTTextField;
      Arr2InnerAccessibleAWTTextField = array of Arr1InnerAccessibleAWTTextField;
      Arr3InnerAccessibleAWTTextField = array of Arr2InnerAccessibleAWTTextField;
      InnerAccessibleAWTTextField = class external 'java.awt' name 'AccessibleAWTTextField' 
      end;

  public
    constructor create(); overload;  // throws java.awt.HeadlessException
    constructor create(para1: JLString); overload;  // throws java.awt.HeadlessException
    constructor create(para1: jint); overload;  // throws java.awt.HeadlessException
    constructor create(para1: JLString; para2: jint); overload;  // throws java.awt.HeadlessException
    procedure addNotify(); overload; virtual;
    function getEchoChar(): jchar; overload; virtual;
    procedure setEchoChar(para1: jchar); overload; virtual;
    procedure setEchoCharacter(para1: jchar); overload; virtual;
    procedure setText(para1: JLString); overload; virtual;
    function echoCharIsSet(): jboolean; overload; virtual;
    function getColumns(): jint; overload; virtual;
    procedure setColumns(para1: jint); overload; virtual;
    function getPreferredSize(para1: jint): JADimension; overload; virtual;
    function preferredSize(para1: jint): JADimension; overload; virtual;
    function getPreferredSize(): JADimension; overload; virtual;
    function preferredSize(): JADimension; overload; virtual;
    function getMinimumSize(para1: jint): JADimension; overload; virtual;
    function minimumSize(para1: jint): JADimension; overload; virtual;
    function getMinimumSize(): JADimension; overload; virtual;
    function minimumSize(): JADimension; overload; virtual;
    procedure addActionListener(para1: JAEActionListener); overload; virtual;
    procedure removeActionListener(para1: JAEActionListener); overload; virtual;
    function getActionListeners(): Arr1JAEActionListener; overload; virtual;
    function getListeners(para1: JLClass): Arr1JUEventListener; overload; virtual;
  strict protected
    procedure processEvent(para1: JAAWTEvent); overload; virtual;
    procedure processActionEvent(para1: JAEActionEvent); overload; virtual;
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSBBevelBorder = class external 'javax.swing.border' name 'BevelBorder' (JSBAbstractBorder)
  public
    const
      RAISED = 0;
      LOWERED = 1;
  strict protected
    var
      fbevelType: jint; external name 'bevelType';
      fhighlightOuter: JAColor; external name 'highlightOuter';
      fhighlightInner: JAColor; external name 'highlightInner';
      fshadowInner: JAColor; external name 'shadowInner';
      fshadowOuter: JAColor; external name 'shadowOuter';
  public
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: JAColor; para3: JAColor); overload;
    constructor create(para1: jint; para2: JAColor; para3: JAColor; para4: JAColor; para5: JAColor); overload;
    procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    function getBorderInsets(para1: JAComponent): JAInsets; overload; virtual;
    function getBorderInsets(para1: JAComponent; para2: JAInsets): JAInsets; overload; virtual;
    function getHighlightOuterColor(para1: JAComponent): JAColor; overload; virtual;
    function getHighlightInnerColor(para1: JAComponent): JAColor; overload; virtual;
    function getShadowInnerColor(para1: JAComponent): JAColor; overload; virtual;
    function getShadowOuterColor(para1: JAComponent): JAColor; overload; virtual;
    function getHighlightOuterColor(): JAColor; overload; virtual;
    function getHighlightInnerColor(): JAColor; overload; virtual;
    function getShadowInnerColor(): JAColor; overload; virtual;
    function getShadowOuterColor(): JAColor; overload; virtual;
    function getBevelType(): jint; overload; virtual;
    function isBorderOpaque(): jboolean; overload; virtual;
  strict protected
    procedure paintRaisedBevel(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintLoweredBevel(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
  end;

  JSBCompoundBorder = class external 'javax.swing.border' name 'CompoundBorder' (JSBAbstractBorder)
  strict protected
    var
      foutsideBorder: JSBBorder; external name 'outsideBorder';
      finsideBorder: JSBBorder; external name 'insideBorder';
  public
    constructor create(); overload;
    constructor create(para1: JSBBorder; para2: JSBBorder); overload;
    function isBorderOpaque(): jboolean; overload; virtual;
    procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    function getBorderInsets(para1: JAComponent; para2: JAInsets): JAInsets; overload; virtual;
    function getBorderInsets(para1: JAComponent): JAInsets; overload; virtual;
    function getOutsideBorder(): JSBBorder; overload; virtual;
    function getInsideBorder(): JSBBorder; overload; virtual;
  end;

  JSBEmptyBorder = class external 'javax.swing.border' name 'EmptyBorder' (JSBAbstractBorder, JISerializable)
  strict protected
    var
      fleft: jint; external name 'left';
      fright: jint; external name 'right';
      ftop: jint; external name 'top';
      fbottom: jint; external name 'bottom';
  public
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint); overload;
    constructor create(para1: JAInsets); overload;
    procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    function getBorderInsets(para1: JAComponent): JAInsets; overload; virtual;
    function getBorderInsets(para1: JAComponent; para2: JAInsets): JAInsets; overload; virtual;
    function getBorderInsets(): JAInsets; overload; virtual;
    function isBorderOpaque(): jboolean; overload; virtual;
  end;

  JSBEtchedBorder = class external 'javax.swing.border' name 'EtchedBorder' (JSBAbstractBorder)
  public
    const
      RAISED = 0;
      LOWERED = 1;
  strict protected
    var
      fetchType: jint; external name 'etchType';
      fhighlight: JAColor; external name 'highlight';
      fshadow: JAColor; external name 'shadow';
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: JAColor; para2: JAColor); overload;
    constructor create(para1: jint; para2: JAColor; para3: JAColor); overload;
    procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    function getBorderInsets(para1: JAComponent): JAInsets; overload; virtual;
    function getBorderInsets(para1: JAComponent; para2: JAInsets): JAInsets; overload; virtual;
    function isBorderOpaque(): jboolean; overload; virtual;
    function getEtchType(): jint; overload; virtual;
    function getHighlightColor(para1: JAComponent): JAColor; overload; virtual;
    function getHighlightColor(): JAColor; overload; virtual;
    function getShadowColor(para1: JAComponent): JAColor; overload; virtual;
    function getShadowColor(): JAColor; overload; virtual;
  end;

  JSBLineBorder = class external 'javax.swing.border' name 'LineBorder' (JSBAbstractBorder)
  strict protected
    var
      fthickness: jint; external name 'thickness';
      flineColor: JAColor; external name 'lineColor';
      froundedCorners: jboolean; external name 'roundedCorners';
  public
    class function createBlackLineBorder(): JSBBorder; static; overload;
    class function createGrayLineBorder(): JSBBorder; static; overload;
    constructor create(para1: JAColor); overload;
    constructor create(para1: JAColor; para2: jint); overload;
    constructor create(para1: JAColor; para2: jint; para3: jboolean); overload;
    procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    function getBorderInsets(para1: JAComponent): JAInsets; overload; virtual;
    function getBorderInsets(para1: JAComponent; para2: JAInsets): JAInsets; overload; virtual;
    function getLineColor(): JAColor; overload; virtual;
    function getThickness(): jint; overload; virtual;
    function getRoundedCorners(): jboolean; overload; virtual;
    function isBorderOpaque(): jboolean; overload; virtual;
  end;

  JSBTitledBorder = class external 'javax.swing.border' name 'TitledBorder' (JSBAbstractBorder)
  strict protected
    var
      ftitle: JLString; external name 'title';
      fborder: JSBBorder; external name 'border';
      ftitlePosition: jint; external name 'titlePosition';
      ftitleJustification: jint; external name 'titleJustification';
      ftitleFont: JAFont; external name 'titleFont';
      ftitleColor: JAColor; external name 'titleColor';
  public
    const
      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;
      LEADING = 4;
      TRAILING = 5;
  strict protected
    const
      EDGE_SPACING = 2;
      TEXT_SPACING = 2;
      TEXT_INSET_H = 5;
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JSBBorder); overload;
    constructor create(para1: JSBBorder; para2: JLString); overload;
    constructor create(para1: JSBBorder; para2: JLString; para3: jint; para4: jint); overload;
    constructor create(para1: JSBBorder; para2: JLString; para3: jint; para4: jint; para5: JAFont); overload;
    constructor create(para1: JSBBorder; para2: JLString; para3: jint; para4: jint; para5: JAFont; para6: JAColor); overload;
    procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    function getBorderInsets(para1: JAComponent): JAInsets; overload; virtual;
    function getBorderInsets(para1: JAComponent; para2: JAInsets): JAInsets; overload; virtual;
    function isBorderOpaque(): jboolean; overload; virtual;
    function getTitle(): JLString; overload; virtual;
    function getBorder(): JSBBorder; overload; virtual;
    function getTitlePosition(): jint; overload; virtual;
    function getTitleJustification(): jint; overload; virtual;
    function getTitleFont(): JAFont; overload; virtual;
    function getTitleColor(): JAColor; overload; virtual;
    procedure setTitle(para1: JLString); overload; virtual;
    procedure setBorder(para1: JSBBorder); overload; virtual;
    procedure setTitlePosition(para1: jint); overload; virtual;
    procedure setTitleJustification(para1: jint); overload; virtual;
    procedure setTitleFont(para1: JAFont); overload; virtual;
    procedure setTitleColor(para1: JAColor); overload; virtual;
    function getMinimumSize(para1: JAComponent): JADimension; overload; virtual;
    function getBaseline(para1: JAComponent; para2: jint; para3: jint): jint; overload; virtual;
    function getBaselineResizeBehavior(para1: JAComponent): JAComponent.InnerBaselineResizeBehavior; overload; virtual;
  strict protected
    function getFont(para1: JAComponent): JAFont; overload; virtual;
  end;

  JSPBBasicBorders = class external 'javax.swing.plaf.basic' name 'BasicBorders' (JLObject)
  public
    type
      InnerRolloverMarginBorder = class;
      Arr1InnerRolloverMarginBorder = array of InnerRolloverMarginBorder;
      Arr2InnerRolloverMarginBorder = array of Arr1InnerRolloverMarginBorder;
      Arr3InnerRolloverMarginBorder = array of Arr2InnerRolloverMarginBorder;
      InnerSplitPaneDividerBorder = class;
      Arr1InnerSplitPaneDividerBorder = array of InnerSplitPaneDividerBorder;
      Arr2InnerSplitPaneDividerBorder = array of Arr1InnerSplitPaneDividerBorder;
      Arr3InnerSplitPaneDividerBorder = array of Arr2InnerSplitPaneDividerBorder;
      InnerRolloverMarginBorder = class external 'javax.swing.plaf.basic' name 'RolloverMarginBorder' 
      end;

      InnerSplitPaneDividerBorder = class external 'javax.swing.plaf.basic' name 'SplitPaneDividerBorder' 
      end;

  public
    type
      InnerButtonBorder = class;
      Arr1InnerButtonBorder = array of InnerButtonBorder;
      Arr2InnerButtonBorder = array of Arr1InnerButtonBorder;
      Arr3InnerButtonBorder = array of Arr2InnerButtonBorder;
      InnerFieldBorder = class;
      Arr1InnerFieldBorder = array of InnerFieldBorder;
      Arr2InnerFieldBorder = array of Arr1InnerFieldBorder;
      Arr3InnerFieldBorder = array of Arr2InnerFieldBorder;
      InnerMarginBorder = class;
      Arr1InnerMarginBorder = array of InnerMarginBorder;
      Arr2InnerMarginBorder = array of Arr1InnerMarginBorder;
      Arr3InnerMarginBorder = array of Arr2InnerMarginBorder;
      InnerMenuBarBorder = class;
      Arr1InnerMenuBarBorder = array of InnerMenuBarBorder;
      Arr2InnerMenuBarBorder = array of Arr1InnerMenuBarBorder;
      Arr3InnerMenuBarBorder = array of Arr2InnerMenuBarBorder;
      InnerSplitPaneBorder = class;
      Arr1InnerSplitPaneBorder = array of InnerSplitPaneBorder;
      Arr2InnerSplitPaneBorder = array of Arr1InnerSplitPaneBorder;
      Arr3InnerSplitPaneBorder = array of Arr2InnerSplitPaneBorder;
      InnerRadioButtonBorder = class;
      Arr1InnerRadioButtonBorder = array of InnerRadioButtonBorder;
      Arr2InnerRadioButtonBorder = array of Arr1InnerRadioButtonBorder;
      Arr3InnerRadioButtonBorder = array of Arr2InnerRadioButtonBorder;
      InnerRolloverButtonBorder = class;
      Arr1InnerRolloverButtonBorder = array of InnerRolloverButtonBorder;
      Arr2InnerRolloverButtonBorder = array of Arr1InnerRolloverButtonBorder;
      Arr3InnerRolloverButtonBorder = array of Arr2InnerRolloverButtonBorder;
      InnerToggleButtonBorder = class;
      Arr1InnerToggleButtonBorder = array of InnerToggleButtonBorder;
      Arr2InnerToggleButtonBorder = array of Arr1InnerToggleButtonBorder;
      Arr3InnerToggleButtonBorder = array of Arr2InnerToggleButtonBorder;
      InnerButtonBorder = class external 'javax.swing.plaf.basic' name 'ButtonBorder' (JSBAbstractBorder, JSPUIResource)
      strict protected
        var
          fshadow: JAColor; external name 'shadow';
          fdarkShadow: JAColor; external name 'darkShadow';
          fhighlight: JAColor; external name 'highlight';
          flightHighlight: JAColor; external name 'lightHighlight';
      public
        constructor create(para1: JAColor; para2: JAColor; para3: JAColor; para4: JAColor); overload;
        procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
        function getBorderInsets(para1: JAComponent): JAInsets; overload; virtual;
        function getBorderInsets(para1: JAComponent; para2: JAInsets): JAInsets; overload; virtual;
      end;

      InnerFieldBorder = class external 'javax.swing.plaf.basic' name 'FieldBorder' (JSBAbstractBorder, JSPUIResource)
      strict protected
        var
          fshadow: JAColor; external name 'shadow';
          fdarkShadow: JAColor; external name 'darkShadow';
          fhighlight: JAColor; external name 'highlight';
          flightHighlight: JAColor; external name 'lightHighlight';
      public
        constructor create(para1: JAColor; para2: JAColor; para3: JAColor; para4: JAColor); overload;
        procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
        function getBorderInsets(para1: JAComponent): JAInsets; overload; virtual;
        function getBorderInsets(para1: JAComponent; para2: JAInsets): JAInsets; overload; virtual;
      end;

      InnerMarginBorder = class external 'javax.swing.plaf.basic' name 'MarginBorder' (JSBAbstractBorder, JSPUIResource)
      public
        constructor create(); overload;
        function getBorderInsets(para1: JAComponent): JAInsets; overload; virtual;
        function getBorderInsets(para1: JAComponent; para2: JAInsets): JAInsets; overload; virtual;
      end;

      InnerMenuBarBorder = class external 'javax.swing.plaf.basic' name 'MenuBarBorder' (JSBAbstractBorder, JSPUIResource)
      public
        constructor create(para1: JAColor; para2: JAColor); overload;
        procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
        function getBorderInsets(para1: JAComponent): JAInsets; overload; virtual;
        function getBorderInsets(para1: JAComponent; para2: JAInsets): JAInsets; overload; virtual;
      end;

      InnerSplitPaneBorder = class external 'javax.swing.plaf.basic' name 'SplitPaneBorder' (JLObject, JSBBorder, JSPUIResource)
      strict protected
        var
          fhighlight: JAColor; external name 'highlight';
          fshadow: JAColor; external name 'shadow';
      public
        constructor create(para1: JAColor; para2: JAColor); overload;
        procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
        function getBorderInsets(para1: JAComponent): JAInsets; overload; virtual;
        function isBorderOpaque(): jboolean; overload; virtual;
      end;

      InnerRadioButtonBorder = class external 'javax.swing.plaf.basic' name 'RadioButtonBorder' (InnerButtonBorder)
      public
        constructor create(para1: JAColor; para2: JAColor; para3: JAColor; para4: JAColor); overload;
        procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
        function getBorderInsets(para1: JAComponent): JAInsets; overload; virtual;
        function getBorderInsets(para1: JAComponent; para2: JAInsets): JAInsets; overload; virtual;
      end;

      InnerRolloverButtonBorder = class external 'javax.swing.plaf.basic' name 'RolloverButtonBorder' (InnerButtonBorder)
      public
        constructor create(para1: JAColor; para2: JAColor; para3: JAColor; para4: JAColor); overload;
        procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
      end;

      InnerToggleButtonBorder = class external 'javax.swing.plaf.basic' name 'ToggleButtonBorder' (InnerButtonBorder)
      public
        constructor create(para1: JAColor; para2: JAColor; para3: JAColor; para4: JAColor); overload;
        procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
        function getBorderInsets(para1: JAComponent): JAInsets; overload; virtual;
        function getBorderInsets(para1: JAComponent; para2: JAInsets): JAInsets; overload; virtual;
      end;

  public
    constructor create(); overload;
    class function getButtonBorder(): JSBBorder; static; overload;
    class function getRadioButtonBorder(): JSBBorder; static; overload;
    class function getToggleButtonBorder(): JSBBorder; static; overload;
    class function getMenuBarBorder(): JSBBorder; static; overload;
    class function getSplitPaneBorder(): JSBBorder; static; overload;
    class function getSplitPaneDividerBorder(): JSBBorder; static; overload;
    class function getTextFieldBorder(): JSBBorder; static; overload;
    class function getProgressBarBorder(): JSBBorder; static; overload;
    class function getInternalFrameBorder(): JSBBorder; static; overload;
  end;

  JSPMMetalBorders = class external 'javax.swing.plaf.metal' name 'MetalBorders' (JLObject)
  public
    type
      InnerDialogBorder = class;
      Arr1InnerDialogBorder = array of InnerDialogBorder;
      Arr2InnerDialogBorder = array of Arr1InnerDialogBorder;
      Arr3InnerDialogBorder = array of Arr2InnerDialogBorder;
      InnerFrameBorder = class;
      Arr1InnerFrameBorder = array of InnerFrameBorder;
      Arr2InnerFrameBorder = array of Arr1InnerFrameBorder;
      Arr3InnerFrameBorder = array of Arr2InnerFrameBorder;
      InnerErrorDialogBorder = class;
      Arr1InnerErrorDialogBorder = array of InnerErrorDialogBorder;
      Arr2InnerErrorDialogBorder = array of Arr1InnerErrorDialogBorder;
      Arr3InnerErrorDialogBorder = array of Arr2InnerErrorDialogBorder;
      InnerQuestionDialogBorder = class;
      Arr1InnerQuestionDialogBorder = array of InnerQuestionDialogBorder;
      Arr2InnerQuestionDialogBorder = array of Arr1InnerQuestionDialogBorder;
      Arr3InnerQuestionDialogBorder = array of Arr2InnerQuestionDialogBorder;
      InnerWarningDialogBorder = class;
      Arr1InnerWarningDialogBorder = array of InnerWarningDialogBorder;
      Arr2InnerWarningDialogBorder = array of Arr1InnerWarningDialogBorder;
      Arr3InnerWarningDialogBorder = array of Arr2InnerWarningDialogBorder;
      InnerRolloverMarginBorder = class;
      Arr1InnerRolloverMarginBorder = array of InnerRolloverMarginBorder;
      Arr2InnerRolloverMarginBorder = array of Arr1InnerRolloverMarginBorder;
      Arr3InnerRolloverMarginBorder = array of Arr2InnerRolloverMarginBorder;
      InnerDialogBorder = class external 'javax.swing.plaf.metal' name 'DialogBorder' 
      end;

      InnerFrameBorder = class external 'javax.swing.plaf.metal' name 'FrameBorder' 
      end;

      InnerErrorDialogBorder = class external 'javax.swing.plaf.metal' name 'ErrorDialogBorder' 
      end;

      InnerQuestionDialogBorder = class external 'javax.swing.plaf.metal' name 'QuestionDialogBorder' 
      end;

      InnerWarningDialogBorder = class external 'javax.swing.plaf.metal' name 'WarningDialogBorder' 
      end;

      InnerRolloverMarginBorder = class external 'javax.swing.plaf.metal' name 'RolloverMarginBorder' 
      end;

  public
    type
      InnerTableHeaderBorder = class;
      Arr1InnerTableHeaderBorder = array of InnerTableHeaderBorder;
      Arr2InnerTableHeaderBorder = array of Arr1InnerTableHeaderBorder;
      Arr3InnerTableHeaderBorder = array of Arr2InnerTableHeaderBorder;
      InnerButtonBorder = class;
      Arr1InnerButtonBorder = array of InnerButtonBorder;
      Arr2InnerButtonBorder = array of Arr1InnerButtonBorder;
      Arr3InnerButtonBorder = array of Arr2InnerButtonBorder;
      InnerFlush3DBorder = class;
      Arr1InnerFlush3DBorder = array of InnerFlush3DBorder;
      Arr2InnerFlush3DBorder = array of Arr1InnerFlush3DBorder;
      Arr3InnerFlush3DBorder = array of Arr2InnerFlush3DBorder;
      InnerInternalFrameBorder = class;
      Arr1InnerInternalFrameBorder = array of InnerInternalFrameBorder;
      Arr2InnerInternalFrameBorder = array of Arr1InnerInternalFrameBorder;
      Arr3InnerInternalFrameBorder = array of Arr2InnerInternalFrameBorder;
      InnerMenuBarBorder = class;
      Arr1InnerMenuBarBorder = array of InnerMenuBarBorder;
      Arr2InnerMenuBarBorder = array of Arr1InnerMenuBarBorder;
      Arr3InnerMenuBarBorder = array of Arr2InnerMenuBarBorder;
      InnerMenuItemBorder = class;
      Arr1InnerMenuItemBorder = array of InnerMenuItemBorder;
      Arr2InnerMenuItemBorder = array of Arr1InnerMenuItemBorder;
      Arr3InnerMenuItemBorder = array of Arr2InnerMenuItemBorder;
      InnerOptionDialogBorder = class;
      Arr1InnerOptionDialogBorder = array of InnerOptionDialogBorder;
      Arr2InnerOptionDialogBorder = array of Arr1InnerOptionDialogBorder;
      Arr3InnerOptionDialogBorder = array of Arr2InnerOptionDialogBorder;
      InnerPaletteBorder = class;
      Arr1InnerPaletteBorder = array of InnerPaletteBorder;
      Arr2InnerPaletteBorder = array of Arr1InnerPaletteBorder;
      Arr3InnerPaletteBorder = array of Arr2InnerPaletteBorder;
      InnerPopupMenuBorder = class;
      Arr1InnerPopupMenuBorder = array of InnerPopupMenuBorder;
      Arr2InnerPopupMenuBorder = array of Arr1InnerPopupMenuBorder;
      Arr3InnerPopupMenuBorder = array of Arr2InnerPopupMenuBorder;
      InnerScrollPaneBorder = class;
      Arr1InnerScrollPaneBorder = array of InnerScrollPaneBorder;
      Arr2InnerScrollPaneBorder = array of Arr1InnerScrollPaneBorder;
      Arr3InnerScrollPaneBorder = array of Arr2InnerScrollPaneBorder;
      InnerToolBarBorder = class;
      Arr1InnerToolBarBorder = array of InnerToolBarBorder;
      Arr2InnerToolBarBorder = array of Arr1InnerToolBarBorder;
      Arr3InnerToolBarBorder = array of Arr2InnerToolBarBorder;
      InnerRolloverButtonBorder = class;
      Arr1InnerRolloverButtonBorder = array of InnerRolloverButtonBorder;
      Arr2InnerRolloverButtonBorder = array of Arr1InnerRolloverButtonBorder;
      Arr3InnerRolloverButtonBorder = array of Arr2InnerRolloverButtonBorder;
      InnerToggleButtonBorder = class;
      Arr1InnerToggleButtonBorder = array of InnerToggleButtonBorder;
      Arr2InnerToggleButtonBorder = array of Arr1InnerToggleButtonBorder;
      Arr3InnerToggleButtonBorder = array of Arr2InnerToggleButtonBorder;
      InnerTextFieldBorder = class;
      Arr1InnerTextFieldBorder = array of InnerTextFieldBorder;
      Arr2InnerTextFieldBorder = array of Arr1InnerTextFieldBorder;
      Arr3InnerTextFieldBorder = array of Arr2InnerTextFieldBorder;
      InnerTableHeaderBorder = class external 'javax.swing.plaf.metal' name 'TableHeaderBorder' (JSBAbstractBorder)
      strict protected
        var
          feditorBorderInsets: JAInsets; external name 'editorBorderInsets';
      public
        constructor create(); overload;
        procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
        function getBorderInsets(para1: JAComponent): JAInsets; overload; virtual;
      end;

      InnerButtonBorder = class external 'javax.swing.plaf.metal' name 'ButtonBorder' (JSBAbstractBorder, JSPUIResource)
      strict protected
        class var
          fborderInsets: JAInsets; external name 'borderInsets';
      public
        constructor create(); overload;
        procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
        function getBorderInsets(para1: JAComponent): JAInsets; overload; virtual;
        function getBorderInsets(para1: JAComponent; para2: JAInsets): JAInsets; overload; virtual;
      end;

      InnerFlush3DBorder = class external 'javax.swing.plaf.metal' name 'Flush3DBorder' (JSBAbstractBorder, JSPUIResource)
      public
        constructor create(); overload;
        procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
        function getBorderInsets(para1: JAComponent): JAInsets; overload; virtual;
        function getBorderInsets(para1: JAComponent; para2: JAInsets): JAInsets; overload; virtual;
      end;

      InnerInternalFrameBorder = class external 'javax.swing.plaf.metal' name 'InternalFrameBorder' (JSBAbstractBorder, JSPUIResource)
      public
        constructor create(); overload;
        procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
        function getBorderInsets(para1: JAComponent): JAInsets; overload; virtual;
        function getBorderInsets(para1: JAComponent; para2: JAInsets): JAInsets; overload; virtual;
      end;

      InnerMenuBarBorder = class external 'javax.swing.plaf.metal' name 'MenuBarBorder' (JSBAbstractBorder, JSPUIResource)
      strict protected
        class var
          fborderInsets: JAInsets; external name 'borderInsets';
      public
        constructor create(); overload;
        procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
        function getBorderInsets(para1: JAComponent): JAInsets; overload; virtual;
        function getBorderInsets(para1: JAComponent; para2: JAInsets): JAInsets; overload; virtual;
      end;

      InnerMenuItemBorder = class external 'javax.swing.plaf.metal' name 'MenuItemBorder' (JSBAbstractBorder, JSPUIResource)
      strict protected
        class var
          fborderInsets: JAInsets; external name 'borderInsets';
      public
        constructor create(); overload;
        procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
        function getBorderInsets(para1: JAComponent): JAInsets; overload; virtual;
        function getBorderInsets(para1: JAComponent; para2: JAInsets): JAInsets; overload; virtual;
      end;

      InnerOptionDialogBorder = class external 'javax.swing.plaf.metal' name 'OptionDialogBorder' (JSBAbstractBorder, JSPUIResource)
      public
        constructor create(); overload;
        procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
        function getBorderInsets(para1: JAComponent): JAInsets; overload; virtual;
        function getBorderInsets(para1: JAComponent; para2: JAInsets): JAInsets; overload; virtual;
      end;

      InnerPaletteBorder = class external 'javax.swing.plaf.metal' name 'PaletteBorder' (JSBAbstractBorder, JSPUIResource)
      public
        constructor create(); overload;
        procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
        function getBorderInsets(para1: JAComponent): JAInsets; overload; virtual;
        function getBorderInsets(para1: JAComponent; para2: JAInsets): JAInsets; overload; virtual;
      end;

      InnerPopupMenuBorder = class external 'javax.swing.plaf.metal' name 'PopupMenuBorder' (JSBAbstractBorder, JSPUIResource)
      strict protected
        class var
          fborderInsets: JAInsets; external name 'borderInsets';
      public
        constructor create(); overload;
        procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
        function getBorderInsets(para1: JAComponent): JAInsets; overload; virtual;
        function getBorderInsets(para1: JAComponent; para2: JAInsets): JAInsets; overload; virtual;
      end;

      InnerScrollPaneBorder = class external 'javax.swing.plaf.metal' name 'ScrollPaneBorder' (JSBAbstractBorder, JSPUIResource)
      public
        constructor create(); overload;
        procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
        function getBorderInsets(para1: JAComponent): JAInsets; overload; virtual;
      end;

      InnerToolBarBorder = class external 'javax.swing.plaf.metal' name 'ToolBarBorder' (JSBAbstractBorder, JSPUIResource, JSSwingConstants)
      strict protected
        var
          fbumps: JSPMMetalBumps; external name 'bumps';
      public
        constructor create(); overload;
        procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
        function getBorderInsets(para1: JAComponent): JAInsets; overload; virtual;
        function getBorderInsets(para1: JAComponent; para2: JAInsets): JAInsets; overload; virtual;
      end;

      InnerRolloverButtonBorder = class external 'javax.swing.plaf.metal' name 'RolloverButtonBorder' (InnerButtonBorder)
      public
        constructor create(); overload;
        procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
      end;

      InnerToggleButtonBorder = class external 'javax.swing.plaf.metal' name 'ToggleButtonBorder' (InnerButtonBorder)
      public
        constructor create(); overload;
        procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
      end;

      InnerTextFieldBorder = class external 'javax.swing.plaf.metal' name 'TextFieldBorder' (InnerFlush3DBorder)
      public
        constructor create(); overload;
        procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
      end;

  public
    constructor create(); overload;
    class function getButtonBorder(): JSBBorder; static; overload;
    class function getTextBorder(): JSBBorder; static; overload;
    class function getTextFieldBorder(): JSBBorder; static; overload;
    class function getToggleButtonBorder(): JSBBorder; static; overload;
    class function getDesktopIconBorder(): JSBBorder; static; overload;
  end;

  JSPSSynthBorder = class external 'javax.swing.plaf.synth' name 'SynthBorder' (JSBAbstractBorder, JSPUIResource)
  public
    procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    function getBorderInsets(para1: JAComponent): JAInsets; overload; virtual;
    function getBorderInsets(para1: JAComponent; para2: JAInsets): JAInsets; overload; virtual;
    function isBorderOpaque(): jboolean; overload; virtual;
  end;

  JSPButtonUI = class abstract external 'javax.swing.plaf' name 'ButtonUI' (JSPComponentUI)
  public
    constructor create(); overload;
  end;

  JSPColorChooserUI = class abstract external 'javax.swing.plaf' name 'ColorChooserUI' (JSPComponentUI)
  public
    constructor create(); overload;
  end;

  JSPComboBoxUI = class abstract external 'javax.swing.plaf' name 'ComboBoxUI' (JSPComponentUI)
  public
    constructor create(); overload;
    procedure setPopupVisible(para1: JSJComboBox; para2: jboolean); overload; virtual; abstract;
    function isPopupVisible(para1: JSJComboBox): jboolean; overload; virtual; abstract;
    function isFocusTraversable(para1: JSJComboBox): jboolean; overload; virtual; abstract;
  end;

  JSPDesktopIconUI = class abstract external 'javax.swing.plaf' name 'DesktopIconUI' (JSPComponentUI)
  public
    constructor create(); overload;
  end;

  JSPDesktopPaneUI = class abstract external 'javax.swing.plaf' name 'DesktopPaneUI' (JSPComponentUI)
  public
    constructor create(); overload;
  end;

  JSPFileChooserUI = class abstract external 'javax.swing.plaf' name 'FileChooserUI' (JSPComponentUI)
  public
    constructor create(); overload;
    function getAcceptAllFileFilter(para1: JSJFileChooser): JSFFileFilter; overload; virtual; abstract;
    function getFileView(para1: JSJFileChooser): JSFFileView; overload; virtual; abstract;
    function getApproveButtonText(para1: JSJFileChooser): JLString; overload; virtual; abstract;
    function getDialogTitle(para1: JSJFileChooser): JLString; overload; virtual; abstract;
    procedure rescanCurrentDirectory(para1: JSJFileChooser); overload; virtual; abstract;
    procedure ensureFileIsVisible(para1: JSJFileChooser; para2: JIFile); overload; virtual; abstract;
  end;

  JSPInternalFrameUI = class abstract external 'javax.swing.plaf' name 'InternalFrameUI' (JSPComponentUI)
  public
    constructor create(); overload;
  end;

  JSPLabelUI = class abstract external 'javax.swing.plaf' name 'LabelUI' (JSPComponentUI)
  public
    constructor create(); overload;
  end;

  JSPListUI = class abstract external 'javax.swing.plaf' name 'ListUI' (JSPComponentUI)
  public
    constructor create(); overload;
    function locationToIndex(para1: JSJList; para2: JAPoint): jint; overload; virtual; abstract;
    function indexToLocation(para1: JSJList; para2: jint): JAPoint; overload; virtual; abstract;
    function getCellBounds(para1: JSJList; para2: jint; para3: jint): JARectangle; overload; virtual; abstract;
  end;

  JSPMenuBarUI = class abstract external 'javax.swing.plaf' name 'MenuBarUI' (JSPComponentUI)
  public
    constructor create(); overload;
  end;

  JSPOptionPaneUI = class abstract external 'javax.swing.plaf' name 'OptionPaneUI' (JSPComponentUI)
  public
    constructor create(); overload;
    procedure selectInitialValue(para1: JSJOptionPane); overload; virtual; abstract;
    function containsCustomComponents(para1: JSJOptionPane): jboolean; overload; virtual; abstract;
  end;

  JSPPanelUI = class abstract external 'javax.swing.plaf' name 'PanelUI' (JSPComponentUI)
  public
    constructor create(); overload;
  end;

  JSPPopupMenuUI = class abstract external 'javax.swing.plaf' name 'PopupMenuUI' (JSPComponentUI)
  public
    constructor create(); overload;
    function isPopupTrigger(para1: JAEMouseEvent): jboolean; overload; virtual;
    function getPopup(para1: JSJPopupMenu; para2: jint; para3: jint): JSPopup; overload; virtual;
  end;

  JSPProgressBarUI = class abstract external 'javax.swing.plaf' name 'ProgressBarUI' (JSPComponentUI)
  public
    constructor create(); overload;
  end;

  JSPRootPaneUI = class abstract external 'javax.swing.plaf' name 'RootPaneUI' (JSPComponentUI)
  public
    constructor create(); overload;
  end;

  JSPScrollBarUI = class abstract external 'javax.swing.plaf' name 'ScrollBarUI' (JSPComponentUI)
  public
    constructor create(); overload;
  end;

  JSPScrollPaneUI = class abstract external 'javax.swing.plaf' name 'ScrollPaneUI' (JSPComponentUI)
  public
    constructor create(); overload;
  end;

  JSPSeparatorUI = class abstract external 'javax.swing.plaf' name 'SeparatorUI' (JSPComponentUI)
  public
    constructor create(); overload;
  end;

  JSPSliderUI = class abstract external 'javax.swing.plaf' name 'SliderUI' (JSPComponentUI)
  public
    constructor create(); overload;
  end;

  JSPSpinnerUI = class abstract external 'javax.swing.plaf' name 'SpinnerUI' (JSPComponentUI)
  public
    constructor create(); overload;
  end;

  JSPSplitPaneUI = class abstract external 'javax.swing.plaf' name 'SplitPaneUI' (JSPComponentUI)
  public
    constructor create(); overload;
    procedure resetToPreferredSizes(para1: JSJSplitPane); overload; virtual; abstract;
    procedure setDividerLocation(para1: JSJSplitPane; para2: jint); overload; virtual; abstract;
    function getDividerLocation(para1: JSJSplitPane): jint; overload; virtual; abstract;
    function getMinimumDividerLocation(para1: JSJSplitPane): jint; overload; virtual; abstract;
    function getMaximumDividerLocation(para1: JSJSplitPane): jint; overload; virtual; abstract;
    procedure finishedPaintingChildren(para1: JSJSplitPane; para2: JAGraphics); overload; virtual; abstract;
  end;

  JSPTabbedPaneUI = class abstract external 'javax.swing.plaf' name 'TabbedPaneUI' (JSPComponentUI)
  public
    constructor create(); overload;
    function tabForCoordinate(para1: JSJTabbedPane; para2: jint; para3: jint): jint; overload; virtual; abstract;
    function getTabBounds(para1: JSJTabbedPane; para2: jint): JARectangle; overload; virtual; abstract;
    function getTabRunCount(para1: JSJTabbedPane): jint; overload; virtual; abstract;
  end;

  JSPTableHeaderUI = class abstract external 'javax.swing.plaf' name 'TableHeaderUI' (JSPComponentUI)
  public
    constructor create(); overload;
  end;

  JSPTableUI = class abstract external 'javax.swing.plaf' name 'TableUI' (JSPComponentUI)
  public
    constructor create(); overload;
  end;

  JSPTextUI = class abstract external 'javax.swing.plaf' name 'TextUI' (JSPComponentUI)
  public
    constructor create(); overload;
    function modelToView(para1: JSTJTextComponent; para2: jint): JARectangle; overload; virtual; abstract;  // throws javax.swing.text.BadLocationException
    function modelToView(para1: JSTJTextComponent; para2: jint; para3: JSTPosition.InnerBias): JARectangle; overload; virtual; abstract;  // throws javax.swing.text.BadLocationException
    function viewToModel(para1: JSTJTextComponent; para2: JAPoint): jint; overload; virtual; abstract;
    function viewToModel(para1: JSTJTextComponent; para2: JAPoint; para3: JSTPosition.Arr1InnerBias): jint; overload; virtual; abstract;
    function viewToModel(para1: JSTJTextComponent; para2: JAPoint; var para3: array of JSTPosition.InnerBias): jint; overload; virtual; abstract;
    function getNextVisualPositionFrom(para1: JSTJTextComponent; para2: jint; para3: JSTPosition.InnerBias; para4: jint; para5: JSTPosition.Arr1InnerBias): jint; overload; virtual; abstract;  // throws javax.swing.text.BadLocationException
    function getNextVisualPositionFrom(para1: JSTJTextComponent; para2: jint; para3: JSTPosition.InnerBias; para4: jint; var para5: array of JSTPosition.InnerBias): jint; overload; virtual; abstract;  // throws javax.swing.text.BadLocationException
    procedure damageRange(para1: JSTJTextComponent; para2: jint; para3: jint); overload; virtual; abstract;
    procedure damageRange(para1: JSTJTextComponent; para2: jint; para3: jint; para4: JSTPosition.InnerBias; para5: JSTPosition.InnerBias); overload; virtual; abstract;
    function getEditorKit(para1: JSTJTextComponent): JSTEditorKit; overload; virtual; abstract;
    function getRootView(para1: JSTJTextComponent): JSTView; overload; virtual; abstract;
    function getToolTipText(para1: JSTJTextComponent; para2: JAPoint): JLString; overload; virtual;
  end;

  JSPToolBarUI = class abstract external 'javax.swing.plaf' name 'ToolBarUI' (JSPComponentUI)
  public
    constructor create(); overload;
  end;

  JSPToolTipUI = class abstract external 'javax.swing.plaf' name 'ToolTipUI' (JSPComponentUI)
  public
    constructor create(); overload;
  end;

  JSPTreeUI = class abstract external 'javax.swing.plaf' name 'TreeUI' (JSPComponentUI)
  public
    constructor create(); overload;
    function getPathBounds(para1: JSJTree; para2: JSTTreePath): JARectangle; overload; virtual; abstract;
    function getPathForRow(para1: JSJTree; para2: jint): JSTTreePath; overload; virtual; abstract;
    function getRowForPath(para1: JSJTree; para2: JSTTreePath): jint; overload; virtual; abstract;
    function getRowCount(para1: JSJTree): jint; overload; virtual; abstract;
    function getClosestPathForLocation(para1: JSJTree; para2: jint; para3: jint): JSTTreePath; overload; virtual; abstract;
    function isEditing(para1: JSJTree): jboolean; overload; virtual; abstract;
    function stopEditing(para1: JSJTree): jboolean; overload; virtual; abstract;
    procedure cancelEditing(para1: JSJTree); overload; virtual; abstract;
    procedure startEditingAtPath(para1: JSJTree; para2: JSTTreePath); overload; virtual; abstract;
    function getEditingPath(para1: JSJTree): JSTTreePath; overload; virtual; abstract;
  end;

  JSPViewportUI = class abstract external 'javax.swing.plaf' name 'ViewportUI' (JSPComponentUI)
  public
    constructor create(); overload;
  end;

  JAPPopupMenuPeer = interface external 'java.awt.peer' name 'PopupMenuPeer' (JAPMenuPeer)
    procedure show(para1: JAEvent); overload;
  end;

  JBjava_beans_beancontext_BeanContextSupport_PersistenceDelegate = class external 'java.beans' name 'java_beans_beancontext_BeanContextSupport_PersistenceDelegate' (JBjava_util_Collection_PersistenceDelegate)
  end;

  JBjava_util_AbstractCollection_PersistenceDelegate = class external 'java.beans' name 'java_util_AbstractCollection_PersistenceDelegate' (JBjava_util_Collection_PersistenceDelegate)
  end;

  JBjava_util_AbstractList_PersistenceDelegate = class external 'java.beans' name 'java_util_AbstractList_PersistenceDelegate' (JBjava_util_List_PersistenceDelegate)
  end;

  JBjava_util_AbstractMap_PersistenceDelegate = class external 'java.beans' name 'java_util_AbstractMap_PersistenceDelegate' (JBjava_util_Map_PersistenceDelegate)
  end;

  JBjava_util_Hashtable_PersistenceDelegate = class external 'java.beans' name 'java_util_Hashtable_PersistenceDelegate' (JBjava_util_Map_PersistenceDelegate)
  end;

  JNSocketInputStream = class external 'java.net' name 'SocketInputStream' (JIFileInputStream)
  public
    function getChannel(): JNCFileChannel; overload; virtual; final;
    function read(para1: Arr1jbyte): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
    function available(): jint; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  strict protected
    procedure finalize(); overload; virtual;
  end;

  JIBufferedInputStream = class external 'java.io' name 'BufferedInputStream' (JIFilterInputStream)
  strict protected
    var
      fbuf: Arr1jbyte; external name 'buf';
      fcount: jint; external name 'count';
      fpos: jint; external name 'pos';
      fmarkpos: jint; external name 'markpos';
      fmarklimit: jint; external name 'marklimit';
  public
    constructor create(para1: JIInputStream); overload;
    constructor create(para1: JIInputStream; para2: jint); overload;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
    function available(): jint; overload; virtual;  // throws java.io.IOException
    procedure mark(para1: jint); overload; virtual;
    procedure reset(); overload; virtual;  // throws java.io.IOException
    function markSupported(): jboolean; overload; virtual;
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  JIDataInputStream = class external 'java.io' name 'DataInputStream' (JIFilterInputStream, JIDataInput)
  public
    constructor create(para1: JIInputStream); overload;
    function read(para1: Arr1jbyte): jint; overload; virtual; final;  // throws java.io.IOException
    function read(var para1: array of jbyte): jint; overload; virtual; final;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual; final;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual; final;  // throws java.io.IOException
    procedure readFully(para1: Arr1jbyte); overload; virtual; final;  // throws java.io.IOException
    procedure readFully(var para1: array of jbyte); overload; virtual; final;  // throws java.io.IOException
    procedure readFully(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual; final;  // throws java.io.IOException
    procedure readFully(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual; final;  // throws java.io.IOException
    function skipBytes(para1: jint): jint; overload; virtual; final;  // throws java.io.IOException
    function readBoolean(): jboolean; overload; virtual; final;  // throws java.io.IOException
    function readByte(): jbyte; overload; virtual; final;  // throws java.io.IOException
    function readUnsignedByte(): jint; overload; virtual; final;  // throws java.io.IOException
    function readShort(): jshort; overload; virtual; final;  // throws java.io.IOException
    function readUnsignedShort(): jint; overload; virtual; final;  // throws java.io.IOException
    function readChar(): jchar; overload; virtual; final;  // throws java.io.IOException
    function readInt(): jint; overload; virtual; final;  // throws java.io.IOException
    function readLong(): jlong; overload; virtual; final;  // throws java.io.IOException
    function readFloat(): jfloat; overload; virtual; final;  // throws java.io.IOException
    function readDouble(): jdouble; overload; virtual; final;  // throws java.io.IOException
    function readLine(): JLString; overload; virtual; final;  // throws java.io.IOException
    function readUTF(): JLString; overload; virtual; final;  // throws java.io.IOException
    class function readUTF(para1: JIDataInput): JLString; static; overload; final;  // throws java.io.IOException
  end;

  JILineNumberInputStream = class external 'java.io' name 'LineNumberInputStream' (JIFilterInputStream)
  public
    constructor create(para1: JIInputStream); overload;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
    procedure setLineNumber(para1: jint); overload; virtual;
    function getLineNumber(): jint; overload; virtual;
    function available(): jint; overload; virtual;  // throws java.io.IOException
    procedure mark(para1: jint); overload; virtual;
    procedure reset(); overload; virtual;  // throws java.io.IOException
  end;

  JIPushbackInputStream = class external 'java.io' name 'PushbackInputStream' (JIFilterInputStream)
  strict protected
    var
      fbuf: Arr1jbyte; external name 'buf';
      fpos: jint; external name 'pos';
  public
    constructor create(para1: JIInputStream; para2: jint); overload;
    constructor create(para1: JIInputStream); overload;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    procedure unread(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure unread(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure unread(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure unread(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure unread(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
    function available(): jint; overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
    function markSupported(): jboolean; overload; virtual;
    procedure mark(para1: jint); overload; virtual;
    procedure reset(); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  JSDigestInputStream = class external 'java.security' name 'DigestInputStream' (JIFilterInputStream)
  strict protected
    var
      fdigest: JSMessageDigest; external name 'digest';
  public
    constructor create(para1: JIInputStream; para2: JSMessageDigest); overload;
    function getMessageDigest(): JSMessageDigest; overload; virtual;
    procedure setMessageDigest(para1: JSMessageDigest); overload; virtual;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    procedure &on(para1: jboolean); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JUZCheckedInputStream = class external 'java.util.zip' name 'CheckedInputStream' (JIFilterInputStream)
  public
    constructor create(para1: JIInputStream; para2: JUZChecksum); overload;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
    function getChecksum(): JUZChecksum; overload; virtual;
  end;

  JUZDeflaterInputStream = class external 'java.util.zip' name 'DeflaterInputStream' (JIFilterInputStream)
  strict protected
    final var
      fdef: JUZDeflater; external name 'def';
      fbuf: Arr1jbyte; external name 'buf';
  public
    constructor create(para1: JIInputStream); overload;
    constructor create(para1: JIInputStream; para2: JUZDeflater); overload;
    constructor create(para1: JIInputStream; para2: JUZDeflater; para3: jint); overload;
    procedure close(); overload; virtual;  // throws java.io.IOException
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
    function available(): jint; overload; virtual;  // throws java.io.IOException
    function markSupported(): jboolean; overload; virtual;
    procedure mark(para1: jint); overload; virtual;
    procedure reset(); overload; virtual;  // throws java.io.IOException
  end;

  JUZInflaterInputStream = class external 'java.util.zip' name 'InflaterInputStream' (JIFilterInputStream)
  strict protected
    var
      finf: JUZInflater; external name 'inf';
      fbuf: Arr1jbyte; external name 'buf';
      flen: jint; external name 'len';
  public
    constructor create(para1: JIInputStream; para2: JUZInflater; para3: jint); overload;
    constructor create(para1: JIInputStream; para2: JUZInflater); overload;
    constructor create(para1: JIInputStream); overload;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function available(): jint; overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  strict protected
    procedure fill(); overload; virtual;  // throws java.io.IOException
  public
    function markSupported(): jboolean; overload; virtual;
    procedure mark(para1: jint); overload; virtual;
    procedure reset(); overload; virtual;  // throws java.io.IOException
  end;

  JCCipherInputStream = class external 'javax.crypto' name 'CipherInputStream' (JIFilterInputStream)
  public
    constructor create(para1: JIInputStream; para2: JCCipher); overload;
  strict protected
    constructor create(para1: JIInputStream); overload;
  public
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
    function available(): jint; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    function markSupported(): jboolean; overload; virtual;
  end;

  JSProgressMonitorInputStream = class external 'javax.swing' name 'ProgressMonitorInputStream' (JIFilterInputStream)
  public
    constructor create(para1: JAComponent; para2: JLObject; para3: JIInputStream); overload;
    function getProgressMonitor(): JSProgressMonitor; overload; virtual;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure reset(); overload; virtual;  // throws java.io.IOException
  end;

  OOC_2_3PInputStream = class abstract external 'org.omg.CORBA_2_3.portable' name 'InputStream' (OOCPInputStream)
  public
    constructor create(); overload;
    function read_value(): JISerializable; overload; virtual;
    function read_value(para1: JLClass): JISerializable; overload; virtual;
    function read_value(para1: OOCPBoxedValueHelper): JISerializable; overload; virtual;
    function read_value(para1: JLString): JISerializable; overload; virtual;
    function read_value(para1: JISerializable): JISerializable; overload; virtual;
    function read_abstract_interface(): JLObject; overload; virtual;
    function read_abstract_interface(para1: JLClass): JLObject; overload; virtual;
  end;

  JILineNumberReader = class external 'java.io' name 'LineNumberReader' (JIBufferedReader)
  public
    constructor create(para1: JIReader); overload;
    constructor create(para1: JIReader; para2: jint); overload;
    procedure setLineNumber(para1: jint); overload; virtual;
    function getLineNumber(): jint; overload; virtual;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jchar; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jchar; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function readLine(): JLString; overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
    procedure mark(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure reset(); overload; virtual;  // throws java.io.IOException
  end;

  JIPushbackReader = class external 'java.io' name 'PushbackReader' (JIFilterReader)
  public
    constructor create(para1: JIReader; para2: jint); overload;
    constructor create(para1: JIReader); overload;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jchar; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jchar; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    procedure unread(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure unread(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure unread(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure unread(para1: Arr1jchar); overload; virtual;  // throws java.io.IOException
    procedure unread(var para1: array of jchar); overload; virtual;  // throws java.io.IOException
    function ready(): jboolean; overload; virtual;  // throws java.io.IOException
    procedure mark(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure reset(); overload; virtual;  // throws java.io.IOException
    function markSupported(): jboolean; overload; virtual;
    procedure close(); overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
  end;

  JIFileReader = class external 'java.io' name 'FileReader' (JIInputStreamReader)
  public
    constructor create(para1: JLString); overload;  // throws java.io.FileNotFoundException
    constructor create(para1: JIFile); overload;  // throws java.io.FileNotFoundException
    constructor create(para1: JIFileDescriptor); overload;
  end;

  JNCSAbstractInterruptibleChannel = class abstract external 'java.nio.channels.spi' name 'AbstractInterruptibleChannel' (JLObject, JNCChannel, JNCInterruptibleChannel)
  strict protected
    constructor create(); overload;
  public
    procedure close(); overload; virtual; final;  // throws java.io.IOException
  strict protected
    procedure implCloseChannel(); overload; virtual; abstract;  // throws java.io.IOException
  public
    function isOpen(): jboolean; overload; virtual; final;
  strict protected
    procedure &begin(); overload; virtual; final;
    procedure &end(para1: jboolean); overload; virtual; final;  // throws java.nio.channels.AsynchronousCloseException
  end;

  JNCScatteringByteChannel = interface external 'java.nio.channels' name 'ScatteringByteChannel' (JNCReadableByteChannel)
    function read(para1: Arr1JNByteBuffer; para2: jint; para3: jint): jlong; overload;  // throws java.io.IOException
    function read(var para1: array of JNByteBuffer; para2: jint; para3: jint): jlong; overload;  // throws java.io.IOException
    function read(para1: Arr1JNByteBuffer): jlong; overload;  // throws java.io.IOException
    function read(var para1: array of JNByteBuffer): jlong; overload;  // throws java.io.IOException
  end;

  JNCByteChannel = interface external 'java.nio.channels' name 'ByteChannel' (JNCReadableByteChannel, JNCWritableByteChannel)
  end;

  JNCGatheringByteChannel = interface external 'java.nio.channels' name 'GatheringByteChannel' (JNCWritableByteChannel)
    function write(para1: Arr1JNByteBuffer; para2: jint; para3: jint): jlong; overload;  // throws java.io.IOException
    function write(var para1: array of JNByteBuffer; para2: jint; para3: jint): jlong; overload;  // throws java.io.IOException
    function write(para1: Arr1JNByteBuffer): jlong; overload;  // throws java.io.IOException
    function write(var para1: array of JNByteBuffer): jlong; overload;  // throws java.io.IOException
  end;

  JBObjectInputStreamWithLoader = class external 'java.beans' name 'ObjectInputStreamWithLoader' (JIObjectInputStream)
  public
    constructor create(para1: JIInputStream; para2: JLClassLoader); overload;  // throws java.io.IOException, java.io.StreamCorruptedException
  strict protected
    function resolveClass(para1: JIObjectStreamClass): JLClass; overload; virtual;  // throws java.io.IOException, java.lang.ClassNotFoundException
  end;

  JCSunJCE_i = class sealed external 'javax.crypto' name 'SunJCE_i' (JIObjectInputStream)
  strict protected
    function resolveClass(para1: JIObjectStreamClass): JLClass; overload; virtual;  // throws java.io.IOException, java.lang.ClassNotFoundException
  end;

  JMLMLetObjectInputStream = class external 'javax.management.loading' name 'MLetObjectInputStream' (JIObjectInputStream)
  public
    constructor create(para1: JIInputStream; para2: JMLMLet); overload;  // throws java.io.IOException, java.io.StreamCorruptedException
  strict protected
    function resolveClass(para1: JIObjectStreamClass): JLClass; overload; virtual;  // throws java.io.IOException, java.lang.ClassNotFoundException
  public
    function getClassLoader(): JLClassLoader; overload; virtual;
  end;

  JISFileCacheImageInputStream = class external 'javax.imageio.stream' name 'FileCacheImageInputStream' (JISImageInputStreamImpl)
  public
    type
      InnerStreamDisposerRecord = class;
      Arr1InnerStreamDisposerRecord = array of InnerStreamDisposerRecord;
      Arr2InnerStreamDisposerRecord = array of Arr1InnerStreamDisposerRecord;
      Arr3InnerStreamDisposerRecord = array of Arr2InnerStreamDisposerRecord;
      InnerStreamDisposerRecord = class external 'javax.imageio.stream' name 'StreamDisposerRecord' 
      end;

  public
    constructor create(para1: JIInputStream; para2: JIFile); overload;  // throws java.io.IOException
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function isCached(): jboolean; overload; virtual;
    function isCachedFile(): jboolean; overload; virtual;
    function isCachedMemory(): jboolean; overload; virtual;
    procedure close(); overload; virtual;  // throws java.io.IOException
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  JISFileImageInputStream = class external 'javax.imageio.stream' name 'FileImageInputStream' (JISImageInputStreamImpl)
  public
    constructor create(para1: JIFile); overload;  // throws java.io.FileNotFoundException, java.io.IOException
    constructor create(para1: JIRandomAccessFile); overload;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function length(): jlong; overload; virtual;
    procedure seek(para1: jlong); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  JISMemoryCacheImageInputStream = class external 'javax.imageio.stream' name 'MemoryCacheImageInputStream' (JISImageInputStreamImpl)
  public
    type
      InnerStreamDisposerRecord = class;
      Arr1InnerStreamDisposerRecord = array of InnerStreamDisposerRecord;
      Arr2InnerStreamDisposerRecord = array of Arr1InnerStreamDisposerRecord;
      Arr3InnerStreamDisposerRecord = array of Arr2InnerStreamDisposerRecord;
      InnerStreamDisposerRecord = class external 'javax.imageio.stream' name 'StreamDisposerRecord' 
      end;

  public
    constructor create(para1: JIInputStream); overload;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    procedure flushBefore(para1: jlong); overload; virtual;  // throws java.io.IOException
    function isCached(): jboolean; overload; virtual;
    function isCachedFile(): jboolean; overload; virtual;
    function isCachedMemory(): jboolean; overload; virtual;
    procedure close(); overload; virtual;  // throws java.io.IOException
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  JISImageOutputStreamImpl = class abstract external 'javax.imageio.stream' name 'ImageOutputStreamImpl' (JISImageInputStreamImpl, JISImageOutputStream)
  public
    constructor create(); overload;
    procedure write(para1: jint); overload; virtual; abstract;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual; abstract;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual; abstract;  // throws java.io.IOException
    procedure writeBoolean(para1: jboolean); overload; virtual;  // throws java.io.IOException
    procedure writeByte(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure writeShort(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure writeChar(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure writeInt(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure writeLong(para1: jlong); overload; virtual;  // throws java.io.IOException
    procedure writeFloat(para1: jfloat); overload; virtual;  // throws java.io.IOException
    procedure writeDouble(para1: jdouble); overload; virtual;  // throws java.io.IOException
    procedure writeBytes(para1: JLString); overload; virtual;  // throws java.io.IOException
    procedure writeChars(para1: JLString); overload; virtual;  // throws java.io.IOException
    procedure writeUTF(para1: JLString); overload; virtual;  // throws java.io.IOException
    procedure writeShorts(para1: Arr1jshort; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure writeShorts(var para1: array of jshort; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure writeChars(para1: Arr1jchar; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure writeChars(var para1: array of jchar; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure writeInts(para1: Arr1jint; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure writeInts(var para1: array of jint; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure writeLongs(para1: Arr1jlong; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure writeLongs(var para1: array of jlong; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure writeFloats(para1: Arr1jfloat; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure writeFloats(var para1: array of jfloat; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure writeDoubles(para1: Arr1jdouble; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure writeDoubles(var para1: array of jdouble; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure writeBit(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure writeBits(para1: jlong; para2: jint); overload; virtual;  // throws java.io.IOException
  strict protected
    procedure flushBits(); overload; virtual; final;  // throws java.io.IOException
  end;

  OJXDIMacOutputStream = class external 'org.jcp.xml.dsig.internal' name 'MacOutputStream' (JIByteArrayOutputStream)
  public
    constructor create(para1: JCMac); overload;
    function toByteArray(): Arr1jbyte; overload; virtual;
    procedure write(para1: Arr1jbyte); overload; virtual;
    procedure write(var para1: array of jbyte); overload; virtual;
    procedure write(para1: jint); overload; virtual;
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;
  end;

  OJXDISignerOutputStream = class external 'org.jcp.xml.dsig.internal' name 'SignerOutputStream' (JIByteArrayOutputStream)
  public
    constructor create(para1: JSSignature); overload;
    procedure write(para1: Arr1jbyte); overload; virtual;
    procedure write(var para1: array of jbyte); overload; virtual;
    procedure write(para1: jint); overload; virtual;
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;
  end;

  JNSocketOutputStream = class external 'java.net' name 'SocketOutputStream' (JIFileOutputStream)
  public
    function getChannel(): JNCFileChannel; overload; virtual; final;
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  strict protected
    procedure finalize(); overload; virtual;
  end;

  JIBufferedOutputStream = class external 'java.io' name 'BufferedOutputStream' (JIFilterOutputStream)
  strict protected
    var
      fbuf: Arr1jbyte; external name 'buf';
      fcount: jint; external name 'count';
  public
    constructor create(para1: JIOutputStream); overload;
    constructor create(para1: JIOutputStream; para2: jint); overload;
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure flush(); overload; virtual;  // throws java.io.IOException
  end;

  JIDataOutputStream = class external 'java.io' name 'DataOutputStream' (JIFilterOutputStream, JIDataOutput)
  strict protected
    var
      fwritten: jint; external name 'written';
  public
    constructor create(para1: JIOutputStream); overload;
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure flush(); overload; virtual;  // throws java.io.IOException
    procedure writeBoolean(para1: jboolean); overload; virtual; final;  // throws java.io.IOException
    procedure writeByte(para1: jint); overload; virtual; final;  // throws java.io.IOException
    procedure writeShort(para1: jint); overload; virtual; final;  // throws java.io.IOException
    procedure writeChar(para1: jint); overload; virtual; final;  // throws java.io.IOException
    procedure writeInt(para1: jint); overload; virtual; final;  // throws java.io.IOException
    procedure writeLong(para1: jlong); overload; virtual; final;  // throws java.io.IOException
    procedure writeFloat(para1: jfloat); overload; virtual; final;  // throws java.io.IOException
    procedure writeDouble(para1: jdouble); overload; virtual; final;  // throws java.io.IOException
    procedure writeBytes(para1: JLString); overload; virtual; final;  // throws java.io.IOException
    procedure writeChars(para1: JLString); overload; virtual; final;  // throws java.io.IOException
    procedure writeUTF(para1: JLString); overload; virtual; final;  // throws java.io.IOException
    function size(): jint; overload; virtual; final;
  end;

  JIPrintStream = class external 'java.io' name 'PrintStream' (JIFilterOutputStream, JLAppendable, JICloseable)
  public
    constructor create(para1: JIOutputStream); overload;
    constructor create(para1: JIOutputStream; para2: jboolean); overload;
    constructor create(para1: JIOutputStream; para2: jboolean; para3: JLString); overload;  // throws java.io.UnsupportedEncodingException
    constructor create(para1: JLString); overload;  // throws java.io.FileNotFoundException
    constructor create(para1: JLString; para2: JLString); overload;  // throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException
    constructor create(para1: JIFile); overload;  // throws java.io.FileNotFoundException
    constructor create(para1: JIFile; para2: JLString); overload;  // throws java.io.FileNotFoundException, java.io.UnsupportedEncodingException
    procedure flush(); overload; virtual;
    procedure close(); overload; virtual;
    function checkError(): jboolean; overload; virtual;
  strict protected
    procedure setError(); overload; virtual;
    procedure clearError(); overload; virtual;
  public
    procedure write(para1: jint); overload; virtual;
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;
    procedure print(para1: jboolean); overload; virtual;
    procedure print(para1: jchar); overload; virtual;
    procedure print(para1: jint); overload; virtual;
    procedure print(para1: jlong); overload; virtual;
    procedure print(para1: jfloat); overload; virtual;
    procedure print(para1: jdouble); overload; virtual;
    procedure print(para1: Arr1jchar); overload; virtual;
    procedure print(var para1: array of jchar); overload; virtual;
    procedure print(para1: JLString); overload; virtual;
    procedure print(para1: JLObject); overload; virtual;
    procedure println(); overload; virtual;
    procedure println(para1: jboolean); overload; virtual;
    procedure println(para1: jchar); overload; virtual;
    procedure println(para1: jint); overload; virtual;
    procedure println(para1: jlong); overload; virtual;
    procedure println(para1: jfloat); overload; virtual;
    procedure println(para1: jdouble); overload; virtual;
    procedure println(para1: Arr1jchar); overload; virtual;
    procedure println(var para1: array of jchar); overload; virtual;
    procedure println(para1: JLString); overload; virtual;
    procedure println(para1: JLObject); overload; virtual;
    function printf(para1: JLString; para2: Arr1JLObject): JIPrintStream; overload; virtual;
    function printf(para1: JLString; const para2: array of JLObject): JIPrintStream; overload; virtual;
    function printf(para1: JULocale; para2: JLString; para3: Arr1JLObject): JIPrintStream; overload; virtual;
    function printf(para1: JULocale; para2: JLString; const para3: array of JLObject): JIPrintStream; overload; virtual;
    function format(para1: JLString; para2: Arr1JLObject): JIPrintStream; overload; virtual;
    function format(para1: JLString; const para2: array of JLObject): JIPrintStream; overload; virtual;
    function format(para1: JULocale; para2: JLString; para3: Arr1JLObject): JIPrintStream; overload; virtual;
    function format(para1: JULocale; para2: JLString; const para3: array of JLObject): JIPrintStream; overload; virtual;
    function append(para1: JLCharSequence): JIPrintStream; overload; virtual;
    function append(para1: JLCharSequence; para2: jint; para3: jint): JIPrintStream; overload; virtual;
    function append(para1: jchar): JIPrintStream; overload; virtual;
    function append(para1: jchar): JLAppendable; overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence; para2: jint; para3: jint): JLAppendable; overload; virtual;  // throws java.io.IOException
    function append(para1: JLCharSequence): JLAppendable; overload; virtual;  // throws java.io.IOException
  end;

  JSDigestOutputStream = class external 'java.security' name 'DigestOutputStream' (JIFilterOutputStream)
  strict protected
    var
      fdigest: JSMessageDigest; external name 'digest';
  public
    constructor create(para1: JIOutputStream; para2: JSMessageDigest); overload;
    function getMessageDigest(): JSMessageDigest; overload; virtual;
    procedure setMessageDigest(para1: JSMessageDigest); overload; virtual;
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure &on(para1: jboolean); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JUZCheckedOutputStream = class external 'java.util.zip' name 'CheckedOutputStream' (JIFilterOutputStream)
  public
    constructor create(para1: JIOutputStream; para2: JUZChecksum); overload;
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    function getChecksum(): JUZChecksum; overload; virtual;
  end;

  JUZDeflaterOutputStream = class external 'java.util.zip' name 'DeflaterOutputStream' (JIFilterOutputStream)
  strict protected
    var
      fdef: JUZDeflater; external name 'def';
      fbuf: Arr1jbyte; external name 'buf';
  public
    constructor create(para1: JIOutputStream; para2: JUZDeflater; para3: jint); overload;
    constructor create(para1: JIOutputStream; para2: JUZDeflater); overload;
    constructor create(para1: JIOutputStream); overload;
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure finish(); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  strict protected
    procedure deflate(); overload; virtual;  // throws java.io.IOException
  end;

  JUZInflaterOutputStream = class external 'java.util.zip' name 'InflaterOutputStream' (JIFilterOutputStream)
  strict protected
    final var
      finf: JUZInflater; external name 'inf';
      fbuf: Arr1jbyte; external name 'buf';
  public
    constructor create(para1: JIOutputStream); overload;
    constructor create(para1: JIOutputStream; para2: JUZInflater); overload;
    constructor create(para1: JIOutputStream; para2: JUZInflater; para3: jint); overload;
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure flush(); overload; virtual;  // throws java.io.IOException
    procedure finish(); overload; virtual;  // throws java.io.IOException
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
  end;

  JCCipherOutputStream = class external 'javax.crypto' name 'CipherOutputStream' (JIFilterOutputStream)
  public
    constructor create(para1: JIOutputStream; para2: JCCipher); overload;
  strict protected
    constructor create(para1: JIOutputStream); overload;
  public
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure flush(); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  JSTRRTFParser = class abstract external 'javax.swing.text.rtf' name 'RTFParser' (JSTRAbstractFilter)
  public
    var
      flevel: jint; external name 'level';
  strict protected
    var
      fwarnings: JIPrintStream; external name 'warnings';
  public
    function handleKeyword(para1: JLString): jboolean; overload; virtual; abstract;
    function handleKeyword(para1: JLString; para2: jint): jboolean; overload; virtual; abstract;
    procedure handleText(para1: JLString); overload; virtual; abstract;
    procedure handleText(para1: jchar); overload; virtual;
    procedure handleBinaryBlob(para1: Arr1jbyte); overload; virtual; abstract;
    procedure handleBinaryBlob(var para1: array of jbyte); overload; virtual; abstract;
    procedure begingroup(); overload; virtual; abstract;
    procedure endgroup(); overload; virtual; abstract;
    constructor create(); overload;
    procedure writeSpecial(para1: jint); overload; virtual;  // throws java.io.IOException
  strict protected
    procedure warning(para1: JLString); overload; virtual;
  public
    procedure write(para1: JLString); overload; virtual;  // throws java.io.IOException
    procedure write(para1: jchar); overload; virtual;  // throws java.io.IOException
    procedure flush(); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  OOC_2_3POutputStream = class abstract external 'org.omg.CORBA_2_3.portable' name 'OutputStream' (OOCPOutputStream)
  public
    constructor create(); overload;
    procedure write_value(para1: JISerializable); overload; virtual;
    procedure write_value(para1: JISerializable; para2: JLClass); overload; virtual;
    procedure write_value(para1: JISerializable; para2: JLString); overload; virtual;
    procedure write_value(para1: JISerializable; para2: OOCPBoxedValueHelper); overload; virtual;
    procedure write_abstract_interface(para1: JLObject); overload; virtual;
  end;

  JIFileWriter = class external 'java.io' name 'FileWriter' (JIOutputStreamWriter)
  public
    constructor create(para1: JLString); overload;  // throws java.io.IOException
    constructor create(para1: JLString; para2: jboolean); overload;  // throws java.io.IOException
    constructor create(para1: JIFile); overload;  // throws java.io.IOException
    constructor create(para1: JIFile; para2: jboolean); overload;  // throws java.io.IOException
    constructor create(para1: JIFileDescriptor); overload;
  end;

  JSTHPNPrintWriter = class external 'javax.swing.text.html.parser' name 'NPrintWriter' (JIPrintWriter)
  public
    constructor create(para1: jint); overload;
    procedure println(para1: Arr1jchar); overload; virtual;
    procedure println(var para1: array of jchar); overload; virtual;
  end;

  JNFactoryURLClassLoader = class sealed external 'java.net' name 'FactoryURLClassLoader' (JNURLClassLoader)
  public
    function loadClass(para1: JLString; para2: jboolean): JLClass; overload; virtual; final;  // throws java.lang.ClassNotFoundException
  end;

  JMLMLet = class external 'javax.management.loading' name 'MLet' (JNURLClassLoader, JMLMLetMBean, JMMBeanRegistration, JIExternalizable)
  public
    constructor create(); overload;
    constructor create(para1: Arr1JNURL); overload;
    constructor create(const para1: array of JNURL); overload;
    constructor create(para1: Arr1JNURL; para2: JLClassLoader); overload;
    constructor create(const para1: array of JNURL; para2: JLClassLoader); overload;
    constructor create(para1: Arr1JNURL; para2: JLClassLoader; para3: JNURLStreamHandlerFactory); overload;
    constructor create(const para1: array of JNURL; para2: JLClassLoader; para3: JNURLStreamHandlerFactory); overload;
    constructor create(para1: Arr1JNURL; para2: jboolean); overload;
    constructor create(const para1: array of JNURL; para2: jboolean); overload;
    constructor create(para1: Arr1JNURL; para2: JLClassLoader; para3: jboolean); overload;
    constructor create(const para1: array of JNURL; para2: JLClassLoader; para3: jboolean); overload;
    constructor create(para1: Arr1JNURL; para2: JLClassLoader; para3: JNURLStreamHandlerFactory; para4: jboolean); overload;
    constructor create(const para1: array of JNURL; para2: JLClassLoader; para3: JNURLStreamHandlerFactory; para4: jboolean); overload;
    procedure addURL(para1: JNURL); overload; virtual;
    procedure addURL(para1: JLString); overload; virtual;  // throws javax.management.ServiceNotFoundException
    function getURLs(): Arr1JNURL; overload; virtual;
    function getMBeansFromURL(para1: JNURL): JUSet; overload; virtual;  // throws javax.management.ServiceNotFoundException
    function getMBeansFromURL(para1: JLString): JUSet; overload; virtual;  // throws javax.management.ServiceNotFoundException
    function getLibraryDirectory(): JLString; overload; virtual;
    procedure setLibraryDirectory(para1: JLString); overload; virtual;
    function preRegister(para1: JMMBeanServer; para2: JMObjectName): JMObjectName; overload; virtual;  // throws java.lang.Exception
    procedure postRegister(para1: JLBoolean); overload; virtual;
    procedure preDeregister(); overload; virtual;  // throws java.lang.Exception
    procedure postDeregister(); overload; virtual;
    procedure writeExternal(para1: JIObjectOutput); overload; virtual;  // throws java.io.IOException, java.lang.UnsupportedOperationException
    procedure readExternal(para1: JIObjectInput); overload; virtual;  // throws java.io.IOException, java.lang.ClassNotFoundException, java.lang.UnsupportedOperationException
    function loadClass(para1: JLString; para2: JMLClassLoaderRepository): JLClass; overload; virtual;  // throws java.lang.ClassNotFoundException
  strict protected
    function findClass(para1: JLString): JLClass; overload; virtual;  // throws java.lang.ClassNotFoundException
    function findLibrary(para1: JLString): JLString; overload; virtual;
    function check(para1: JLString; para2: JNURL; para3: JLString; para4: JMLMLetContent): JNURL; overload; virtual;  // throws java.lang.Exception
  end;

  JNSdpSocketImpl = class external 'java.net' name 'SdpSocketImpl' (JNPlainSocketImpl)
  strict protected
    procedure create_(para1: jboolean); external name 'create'; overload; virtual;  // throws java.io.IOException
  end;

  JNSocksSocketImpl = class external 'java.net' name 'SocksSocketImpl' (JNPlainSocketImpl, JNSocksConsts)
  strict protected
    procedure connect(para1: JNSocketAddress; para2: jint); overload; virtual;  // throws java.io.IOException
    procedure socksBind(para1: JNInetSocketAddress); overload; virtual;  // throws java.io.IOException
    procedure acceptFrom(para1: JNSocketImpl; para2: JNInetSocketAddress); overload; virtual;  // throws java.io.IOException
    function getInetAddress(): JNInetAddress; overload; virtual;
    function getPort(): jint; overload; virtual;
    function getLocalPort(): jint; overload; virtual;
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  JRAActivatable = class abstract external 'java.rmi.activation' name 'Activatable' (JRSRemoteServer)
  strict protected
    constructor create(para1: JLString; para2: JRMarshalledObject; para3: jboolean; para4: jint); overload;  // throws java.rmi.activation.ActivationException, java.rmi.RemoteException
    constructor create(para1: JLString; para2: JRMarshalledObject; para3: jboolean; para4: jint; para5: JRSRMIClientSocketFactory; para6: JRSRMIServerSocketFactory); overload;  // throws java.rmi.activation.ActivationException, java.rmi.RemoteException
    constructor create(para1: JRAActivationID; para2: jint); overload;  // throws java.rmi.RemoteException
    constructor create(para1: JRAActivationID; para2: jint; para3: JRSRMIClientSocketFactory; para4: JRSRMIServerSocketFactory); overload;  // throws java.rmi.RemoteException
    function getID(): JRAActivationID; overload; virtual;
  public
    class function register(para1: JRAActivationDesc): JRRemote; static; overload;  // throws java.rmi.activation.UnknownGroupException, java.rmi.activation.ActivationException, java.rmi.RemoteException
    class function inactive(para1: JRAActivationID): jboolean; static; overload;  // throws java.rmi.activation.UnknownObjectException, java.rmi.activation.ActivationException, java.rmi.RemoteException
    class procedure unregister(para1: JRAActivationID); static; overload;  // throws java.rmi.activation.UnknownObjectException, java.rmi.activation.ActivationException, java.rmi.RemoteException
    class function exportObject(para1: JRRemote; para2: JLString; para3: JRMarshalledObject; para4: jboolean; para5: jint): JRAActivationID; static; overload;  // throws java.rmi.activation.ActivationException, java.rmi.RemoteException
    class function exportObject(para1: JRRemote; para2: JLString; para3: JRMarshalledObject; para4: jboolean; para5: jint; para6: JRSRMIClientSocketFactory; para7: JRSRMIServerSocketFactory): JRAActivationID; static; overload;  // throws java.rmi.activation.ActivationException, java.rmi.RemoteException
    class function exportObject(para1: JRRemote; para2: JRAActivationID; para3: jint): JRRemote; static; overload;  // throws java.rmi.RemoteException
    class function exportObject(para1: JRRemote; para2: JRAActivationID; para3: jint; para4: JRSRMIClientSocketFactory; para5: JRSRMIServerSocketFactory): JRRemote; static; overload;  // throws java.rmi.RemoteException
    class function unexportObject(para1: JRRemote; para2: jboolean): jboolean; static; overload;  // throws java.rmi.NoSuchObjectException
  end;

  JRSUnicastRemoteObject = class external 'java.rmi.server' name 'UnicastRemoteObject' (JRSRemoteServer)
  strict protected
    constructor create(); overload;  // throws java.rmi.RemoteException
    constructor create(para1: jint); overload;  // throws java.rmi.RemoteException
    constructor create(para1: jint; para2: JRSRMIClientSocketFactory; para3: JRSRMIServerSocketFactory); overload;  // throws java.rmi.RemoteException
  public
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
    class function exportObject(para1: JRRemote): JRSRemoteStub; static; overload;  // throws java.rmi.RemoteException
    class function exportObject(para1: JRRemote; para2: jint): JRRemote; static; overload;  // throws java.rmi.RemoteException
    class function exportObject(para1: JRRemote; para2: jint; para3: JRSRMIClientSocketFactory; para4: JRSRMIServerSocketFactory): JRRemote; static; overload;  // throws java.rmi.RemoteException
    class function unexportObject(para1: JRRemote; para2: jboolean): jboolean; static; overload;  // throws java.rmi.NoSuchObjectException
  end;

  JRAActivationGroup_Stub = class sealed external 'java.rmi.activation' name 'ActivationGroup_Stub' (JRSRemoteStub, JRAActivationInstantiator, JRRemote)
  public
    constructor create(para1: JRSRemoteRef); overload;
    function newInstance(para1: JRAActivationID; para2: JRAActivationDesc): JRMarshalledObject; overload; virtual;  // throws java.rmi.RemoteException, java.rmi.activation.ActivationException
  end;

  JMRRRMIConnectionImpl_Stub = class sealed external 'javax.management.remote.rmi' name 'RMIConnectionImpl_Stub' (JRSRemoteStub, JMRRRMIConnection)
  public
    constructor create(para1: JRSRemoteRef); overload;
    procedure addNotificationListener(para1: JMObjectName; para2: JMObjectName; para3: JRMarshalledObject; para4: JRMarshalledObject; para5: JSASubject); overload; virtual;  // throws java.io.IOException, javax.management.InstanceNotFoundException
    function addNotificationListeners(para1: Arr1JMObjectName; para2: Arr1JRMarshalledObject; para3: Arr1JSASubject): Arr1JLInteger; overload; virtual;  // throws java.io.IOException, javax.management.InstanceNotFoundException
    function addNotificationListeners(var para1: array of JMObjectName; var para2: array of JRMarshalledObject; var para3: array of JSASubject): Arr1JLInteger; overload; virtual;  // throws java.io.IOException, javax.management.InstanceNotFoundException
    procedure close(); overload; virtual;  // throws java.io.IOException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JRMarshalledObject; para4: Arr1JLString; para5: JSASubject): JMObjectInstance; overload; virtual;  // throws java.io.IOException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanException, javax.management.MBeanRegistrationException, javax.management.NotCompliantMBeanException, javax.management.ReflectionException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JRMarshalledObject; var para4: array of JLString; para5: JSASubject): JMObjectInstance; overload; virtual;  // throws java.io.IOException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanException, javax.management.MBeanRegistrationException, javax.management.NotCompliantMBeanException, javax.management.ReflectionException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JMObjectName; para4: JRMarshalledObject; para5: Arr1JLString; para6: JSASubject): JMObjectInstance; overload; virtual;  // throws java.io.IOException, javax.management.InstanceAlreadyExistsException, javax.management.InstanceNotFoundException, javax.management.MBeanException, javax.management.MBeanRegistrationException, javax.management.NotCompliantMBeanException, javax.management.ReflectionException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JMObjectName; para4: JRMarshalledObject; var para5: array of JLString; para6: JSASubject): JMObjectInstance; overload; virtual;  // throws java.io.IOException, javax.management.InstanceAlreadyExistsException, javax.management.InstanceNotFoundException, javax.management.MBeanException, javax.management.MBeanRegistrationException, javax.management.NotCompliantMBeanException, javax.management.ReflectionException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JMObjectName; para4: JSASubject): JMObjectInstance; overload; virtual;  // throws java.io.IOException, javax.management.InstanceAlreadyExistsException, javax.management.InstanceNotFoundException, javax.management.MBeanException, javax.management.MBeanRegistrationException, javax.management.NotCompliantMBeanException, javax.management.ReflectionException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JSASubject): JMObjectInstance; overload; virtual;  // throws java.io.IOException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanException, javax.management.MBeanRegistrationException, javax.management.NotCompliantMBeanException, javax.management.ReflectionException
    function fetchNotifications(para1: jlong; para2: jint; para3: jlong): JMRNotificationResult; overload; virtual;  // throws java.io.IOException
    function getAttribute(para1: JMObjectName; para2: JLString; para3: JSASubject): JLObject; overload; virtual;  // throws java.io.IOException, javax.management.AttributeNotFoundException, javax.management.InstanceNotFoundException, javax.management.MBeanException, javax.management.ReflectionException
    function getAttributes(para1: JMObjectName; para2: Arr1JLString; para3: JSASubject): JMAttributeList; overload; virtual;  // throws java.io.IOException, javax.management.InstanceNotFoundException, javax.management.ReflectionException
    function getAttributes(para1: JMObjectName; var para2: array of JLString; para3: JSASubject): JMAttributeList; overload; virtual;  // throws java.io.IOException, javax.management.InstanceNotFoundException, javax.management.ReflectionException
    function getConnectionId(): JLString; overload; virtual;  // throws java.io.IOException
    function getDefaultDomain(para1: JSASubject): JLString; overload; virtual;  // throws java.io.IOException
    function getDomains(para1: JSASubject): Arr1JLString; overload; virtual;  // throws java.io.IOException
    function getMBeanCount(para1: JSASubject): JLInteger; overload; virtual;  // throws java.io.IOException
    function getMBeanInfo(para1: JMObjectName; para2: JSASubject): JMMBeanInfo; overload; virtual;  // throws java.io.IOException, javax.management.InstanceNotFoundException, javax.management.IntrospectionException, javax.management.ReflectionException
    function getObjectInstance(para1: JMObjectName; para2: JSASubject): JMObjectInstance; overload; virtual;  // throws java.io.IOException, javax.management.InstanceNotFoundException
    function invoke(para1: JMObjectName; para2: JLString; para3: JRMarshalledObject; para4: Arr1JLString; para5: JSASubject): JLObject; overload; virtual;  // throws java.io.IOException, javax.management.InstanceNotFoundException, javax.management.MBeanException, javax.management.ReflectionException
    function invoke(para1: JMObjectName; para2: JLString; para3: JRMarshalledObject; var para4: array of JLString; para5: JSASubject): JLObject; overload; virtual;  // throws java.io.IOException, javax.management.InstanceNotFoundException, javax.management.MBeanException, javax.management.ReflectionException
    function isInstanceOf(para1: JMObjectName; para2: JLString; para3: JSASubject): jboolean; overload; virtual;  // throws java.io.IOException, javax.management.InstanceNotFoundException
    function isRegistered(para1: JMObjectName; para2: JSASubject): jboolean; overload; virtual;  // throws java.io.IOException
    function queryMBeans(para1: JMObjectName; para2: JRMarshalledObject; para3: JSASubject): JUSet; overload; virtual;  // throws java.io.IOException
    function queryNames(para1: JMObjectName; para2: JRMarshalledObject; para3: JSASubject): JUSet; overload; virtual;  // throws java.io.IOException
    procedure removeNotificationListener(para1: JMObjectName; para2: JMObjectName; para3: JRMarshalledObject; para4: JRMarshalledObject; para5: JSASubject); overload; virtual;  // throws java.io.IOException, javax.management.InstanceNotFoundException, javax.management.ListenerNotFoundException
    procedure removeNotificationListener(para1: JMObjectName; para2: JMObjectName; para3: JSASubject); overload; virtual;  // throws java.io.IOException, javax.management.InstanceNotFoundException, javax.management.ListenerNotFoundException
    procedure removeNotificationListeners(para1: JMObjectName; para2: Arr1JLInteger; para3: JSASubject); overload; virtual;  // throws java.io.IOException, javax.management.InstanceNotFoundException, javax.management.ListenerNotFoundException
    procedure removeNotificationListeners(para1: JMObjectName; var para2: array of JLInteger; para3: JSASubject); overload; virtual;  // throws java.io.IOException, javax.management.InstanceNotFoundException, javax.management.ListenerNotFoundException
    procedure setAttribute(para1: JMObjectName; para2: JRMarshalledObject; para3: JSASubject); overload; virtual;  // throws java.io.IOException, javax.management.AttributeNotFoundException, javax.management.InstanceNotFoundException, javax.management.InvalidAttributeValueException, javax.management.MBeanException, javax.management.ReflectionException
    function setAttributes(para1: JMObjectName; para2: JRMarshalledObject; para3: JSASubject): JMAttributeList; overload; virtual;  // throws java.io.IOException, javax.management.InstanceNotFoundException, javax.management.ReflectionException
    procedure unregisterMBean(para1: JMObjectName; para2: JSASubject); overload; virtual;  // throws java.io.IOException, javax.management.InstanceNotFoundException, javax.management.MBeanRegistrationException
  end;

  JMRRRMIServerImpl_Stub = class sealed external 'javax.management.remote.rmi' name 'RMIServerImpl_Stub' (JRSRemoteStub, JMRRRMIServer)
  public
    constructor create(para1: JRSRemoteRef); overload;
    function getVersion(): JLString; overload; virtual;  // throws java.rmi.RemoteException
    function newClient(para1: JLObject): JMRRRMIConnection; overload; virtual;  // throws java.io.IOException
  end;

  JMRRRMIIIOPServerImpl = class external 'javax.management.remote.rmi' name 'RMIIIOPServerImpl' (JMRRRMIServerImpl)
  public
    constructor create(para1: JUMap); overload;  // throws java.io.IOException
  strict protected
    procedure export(); overload; virtual;  // throws java.io.IOException
    function getProtocol(): JLString; overload; virtual;
  public
    function toStub(): JRRemote; overload; virtual;  // throws java.io.IOException
  strict protected
    function makeClient(para1: JLString; para2: JSASubject): JMRRRMIConnection; overload; virtual;  // throws java.io.IOException
    procedure closeClient(para1: JMRRRMIConnection); overload; virtual;  // throws java.io.IOException
    procedure closeServer(); overload; virtual;  // throws java.io.IOException
  end;

  JMRRRMIJRMPServerImpl = class external 'javax.management.remote.rmi' name 'RMIJRMPServerImpl' (JMRRRMIServerImpl)
  public
    constructor create(para1: jint; para2: JRSRMIClientSocketFactory; para3: JRSRMIServerSocketFactory; para4: JUMap); overload;  // throws java.io.IOException
  strict protected
    procedure export(); overload; virtual;  // throws java.io.IOException
    function getProtocol(): JLString; overload; virtual;
  public
    function toStub(): JRRemote; overload; virtual;  // throws java.io.IOException
  strict protected
    function makeClient(para1: JLString; para2: JSASubject): JMRRRMIConnection; overload; virtual;  // throws java.io.IOException
    procedure closeClient(para1: JMRRRMIConnection); overload; virtual;  // throws java.io.IOException
    procedure closeServer(); overload; virtual;  // throws java.io.IOException
  end;

  JAAWTPermission = class sealed external 'java.awt' name 'AWTPermission' (JSBasicPermission)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
  end;

  JISerializablePermission = class sealed external 'java.io' name 'SerializablePermission' (JSBasicPermission)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
  end;

  JLRuntimePermission = class sealed external 'java.lang' name 'RuntimePermission' (JSBasicPermission)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
  end;

  JLMManagementPermission = class sealed external 'java.lang.management' name 'ManagementPermission' (JSBasicPermission)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;  // throws java.lang.IllegalArgumentException
  end;

  JLRReflectPermission = class sealed external 'java.lang.reflect' name 'ReflectPermission' (JSBasicPermission)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
  end;

  JNNetPermission = class sealed external 'java.net' name 'NetPermission' (JSBasicPermission)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
  end;

  JSSecurityPermission = class sealed external 'java.security' name 'SecurityPermission' (JSBasicPermission)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
  end;

  JSSQLPermission = class sealed external 'java.sql' name 'SQLPermission' (JSBasicPermission)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
  end;

  JUPropertyPermission = class sealed external 'java.util' name 'PropertyPermission' (JSBasicPermission)
  public
    constructor create(para1: JLString; para2: JLString); overload;
    function implies(para1: JSPermission): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function getActions(): JLString; overload; virtual;
    function newPermissionCollection(): JSPermissionCollection; overload; virtual;
  end;

  JULLoggingPermission = class sealed external 'java.util.logging' name 'LoggingPermission' (JSBasicPermission)
  public
    constructor create(para1: JLString; para2: JLString); overload;  // throws java.lang.IllegalArgumentException
  end;

  JMMBeanServerPermission = class external 'javax.management' name 'MBeanServerPermission' (JSBasicPermission)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    function hashCode(): jint; overload; virtual;
    function implies(para1: JSPermission): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function newPermissionCollection(): JSPermissionCollection; overload; virtual;
  end;

  JMMBeanTrustPermission = class external 'javax.management' name 'MBeanTrustPermission' (JSBasicPermission)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
  end;

  JMRSubjectDelegationPermission = class sealed external 'javax.management.remote' name 'SubjectDelegationPermission' (JSBasicPermission)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
  end;

  JNSSSLPermission = class sealed external 'javax.net.ssl' name 'SSLPermission' (JSBasicPermission)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
  end;

  JSAAuthPermission = class sealed external 'javax.security.auth' name 'AuthPermission' (JSBasicPermission)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
  end;

  JSAKDelegationPermission = class sealed external 'javax.security.auth.kerberos' name 'DelegationPermission' (JSBasicPermission, JISerializable)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
    function implies(para1: JSPermission): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function newPermissionCollection(): JSPermissionCollection; overload; virtual;
  end;

  JSSAudioPermission = class external 'javax.sound.sampled' name 'AudioPermission' (JSBasicPermission)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
  end;

  JXWWebServicePermission = class sealed external 'javax.xml.ws' name 'WebServicePermission' (JSBasicPermission)
  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JLString); overload;
  end;

  JCSunJCE_k = class sealed external 'javax.crypto' name 'SunJCE_k' (JCSunJCE_f)
  public
    function implies(para1: JSPermission): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function newPermissionCollection(): JSPermissionCollection; overload; virtual;
  end;

  JXCDSExcC14NParameterSpec = class sealed external 'javax.xml.crypto.dsig.spec' name 'ExcC14NParameterSpec' (JLObject, JXCDSC14NMethodParameterSpec)
  public
    const
      DEFAULT = '#default';
  public
    constructor create(); overload;
    constructor create(para1: JUList); overload;
    function getPrefixList(): JUList; overload; virtual;
  end;

  JSRCachedRowSet = interface external 'javax.sql.rowset' name 'CachedRowSet' (JSRowSet, JSRJoinable)
    const
      COMMIT_ON_ACCEPT_CHANGES = 1;
    procedure populate(para1: JSResultSet); overload;  // throws java.sql.SQLException
    procedure execute(para1: JSConnection); overload;  // throws java.sql.SQLException
    procedure acceptChanges(); overload;  // throws javax.sql.rowset.spi.SyncProviderException
    procedure acceptChanges(para1: JSConnection); overload;  // throws javax.sql.rowset.spi.SyncProviderException
    procedure restoreOriginal(); overload;  // throws java.sql.SQLException
    procedure release(); overload;  // throws java.sql.SQLException
    procedure undoDelete(); overload;  // throws java.sql.SQLException
    procedure undoInsert(); overload;  // throws java.sql.SQLException
    procedure undoUpdate(); overload;  // throws java.sql.SQLException
    function columnUpdated(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function columnUpdated(para1: JLString): jboolean; overload;  // throws java.sql.SQLException
    function toCollection(): JUCollection; overload;  // throws java.sql.SQLException
    function toCollection(para1: jint): JUCollection; overload;  // throws java.sql.SQLException
    function toCollection(para1: JLString): JUCollection; overload;  // throws java.sql.SQLException
    function getSyncProvider(): JSRSSyncProvider; overload;  // throws java.sql.SQLException
    procedure setSyncProvider(para1: JLString); overload;  // throws java.sql.SQLException
    function size(): jint; overload;
    procedure setMetaData(para1: JSRowSetMetaData); overload;  // throws java.sql.SQLException
    function getOriginal(): JSResultSet; overload;  // throws java.sql.SQLException
    function getOriginalRow(): JSResultSet; overload;  // throws java.sql.SQLException
    procedure setOriginalRow(); overload;  // throws java.sql.SQLException
    function getTableName(): JLString; overload;  // throws java.sql.SQLException
    procedure setTableName(para1: JLString); overload;  // throws java.sql.SQLException
    function getKeyColumns(): Arr1jint; overload;  // throws java.sql.SQLException
    procedure setKeyColumns(para1: Arr1jint); overload;  // throws java.sql.SQLException
    procedure setKeyColumns(var para1: array of jint); overload;  // throws java.sql.SQLException
    function createShared(): JSRowSet; overload;  // throws java.sql.SQLException
    function createCopy(): JSRCachedRowSet; overload;  // throws java.sql.SQLException
    function createCopySchema(): JSRCachedRowSet; overload;  // throws java.sql.SQLException
    function createCopyNoConstraints(): JSRCachedRowSet; overload;  // throws java.sql.SQLException
    function getRowSetWarnings(): JSRRowSetWarning; overload;  // throws java.sql.SQLException
    function getShowDeleted(): jboolean; overload;  // throws java.sql.SQLException
    procedure setShowDeleted(para1: jboolean); overload;  // throws java.sql.SQLException
    procedure commit(); overload;  // throws java.sql.SQLException
    procedure rollback(); overload;  // throws java.sql.SQLException
    procedure rollback(para1: JSSavepoint); overload;  // throws java.sql.SQLException
    procedure rowSetPopulated(para1: JSRowSetEvent; para2: jint); overload;  // throws java.sql.SQLException
    procedure populate(para1: JSResultSet; para2: jint); overload;  // throws java.sql.SQLException
    procedure setPageSize(para1: jint); overload;  // throws java.sql.SQLException
    function getPageSize(): jint; overload;
    function nextPage(): jboolean; overload;  // throws java.sql.SQLException
    function previousPage(): jboolean; overload;  // throws java.sql.SQLException
  end;

  JSRJdbcRowSet = interface external 'javax.sql.rowset' name 'JdbcRowSet' (JSRowSet, JSRJoinable)
    function getShowDeleted(): jboolean; overload;  // throws java.sql.SQLException
    procedure setShowDeleted(para1: jboolean); overload;  // throws java.sql.SQLException
    function getRowSetWarnings(): JSRRowSetWarning; overload;  // throws java.sql.SQLException
    procedure commit(); overload;  // throws java.sql.SQLException
    function getAutoCommit(): jboolean; overload;  // throws java.sql.SQLException
    procedure setAutoCommit(para1: jboolean); overload;  // throws java.sql.SQLException
    procedure rollback(); overload;  // throws java.sql.SQLException
    procedure rollback(para1: JSSavepoint); overload;  // throws java.sql.SQLException
  end;

  JSRSSyncResolver = interface external 'javax.sql.rowset.spi' name 'SyncResolver' (JSRowSet)
    const
      UPDATE_ROW_CONFLICT = 0;
      DELETE_ROW_CONFLICT = 1;
      INSERT_ROW_CONFLICT = 2;
      NO_ROW_CONFLICT = 3;
    function getStatus(): jint; overload;
    function getConflictValue(para1: jint): JLObject; overload;  // throws java.sql.SQLException
    function getConflictValue(para1: JLString): JLObject; overload;  // throws java.sql.SQLException
    procedure setResolvedValue(para1: jint; para2: JLObject); overload;  // throws java.sql.SQLException
    procedure setResolvedValue(para1: JLString; para2: JLObject); overload;  // throws java.sql.SQLException
    function nextConflict(): jboolean; overload;  // throws java.sql.SQLException
    function previousConflict(): jboolean; overload;  // throws java.sql.SQLException
  end;

  JSRRowSetMetaDataImpl = class external 'javax.sql.rowset' name 'RowSetMetaDataImpl' (JLObject, JSRowSetMetaData, JISerializable)
  public
    type
      InnerColInfo = class;
      Arr1InnerColInfo = array of InnerColInfo;
      Arr2InnerColInfo = array of Arr1InnerColInfo;
      Arr3InnerColInfo = array of Arr2InnerColInfo;
      InnerColInfo = class external 'javax.sql.rowset' name 'ColInfo' 
      end;

  public
    constructor create(); overload;
    procedure setColumnCount(para1: jint); overload; virtual;  // throws java.sql.SQLException
    procedure setAutoIncrement(para1: jint; para2: jboolean); overload; virtual;  // throws java.sql.SQLException
    procedure setCaseSensitive(para1: jint; para2: jboolean); overload; virtual;  // throws java.sql.SQLException
    procedure setSearchable(para1: jint; para2: jboolean); overload; virtual;  // throws java.sql.SQLException
    procedure setCurrency(para1: jint; para2: jboolean); overload; virtual;  // throws java.sql.SQLException
    procedure setNullable(para1: jint; para2: jint); overload; virtual;  // throws java.sql.SQLException
    procedure setSigned(para1: jint; para2: jboolean); overload; virtual;  // throws java.sql.SQLException
    procedure setColumnDisplaySize(para1: jint; para2: jint); overload; virtual;  // throws java.sql.SQLException
    procedure setColumnLabel(para1: jint; para2: JLString); overload; virtual;  // throws java.sql.SQLException
    procedure setColumnName(para1: jint; para2: JLString); overload; virtual;  // throws java.sql.SQLException
    procedure setSchemaName(para1: jint; para2: JLString); overload; virtual;  // throws java.sql.SQLException
    procedure setPrecision(para1: jint; para2: jint); overload; virtual;  // throws java.sql.SQLException
    procedure setScale(para1: jint; para2: jint); overload; virtual;  // throws java.sql.SQLException
    procedure setTableName(para1: jint; para2: JLString); overload; virtual;  // throws java.sql.SQLException
    procedure setCatalogName(para1: jint; para2: JLString); overload; virtual;  // throws java.sql.SQLException
    procedure setColumnType(para1: jint; para2: jint); overload; virtual;  // throws java.sql.SQLException
    procedure setColumnTypeName(para1: jint; para2: JLString); overload; virtual;  // throws java.sql.SQLException
    function getColumnCount(): jint; overload; virtual;  // throws java.sql.SQLException
    function isAutoIncrement(para1: jint): jboolean; overload; virtual;  // throws java.sql.SQLException
    function isCaseSensitive(para1: jint): jboolean; overload; virtual;  // throws java.sql.SQLException
    function isSearchable(para1: jint): jboolean; overload; virtual;  // throws java.sql.SQLException
    function isCurrency(para1: jint): jboolean; overload; virtual;  // throws java.sql.SQLException
    function isNullable(para1: jint): jint; overload; virtual;  // throws java.sql.SQLException
    function isSigned(para1: jint): jboolean; overload; virtual;  // throws java.sql.SQLException
    function getColumnDisplaySize(para1: jint): jint; overload; virtual;  // throws java.sql.SQLException
    function getColumnLabel(para1: jint): JLString; overload; virtual;  // throws java.sql.SQLException
    function getColumnName(para1: jint): JLString; overload; virtual;  // throws java.sql.SQLException
    function getSchemaName(para1: jint): JLString; overload; virtual;  // throws java.sql.SQLException
    function getPrecision(para1: jint): jint; overload; virtual;  // throws java.sql.SQLException
    function getScale(para1: jint): jint; overload; virtual;  // throws java.sql.SQLException
    function getTableName(para1: jint): JLString; overload; virtual;  // throws java.sql.SQLException
    function getCatalogName(para1: jint): JLString; overload; virtual;  // throws java.sql.SQLException
    function getColumnType(para1: jint): jint; overload; virtual;  // throws java.sql.SQLException
    function getColumnTypeName(para1: jint): JLString; overload; virtual;  // throws java.sql.SQLException
    function isReadOnly(para1: jint): jboolean; overload; virtual;  // throws java.sql.SQLException
    function isWritable(para1: jint): jboolean; overload; virtual;  // throws java.sql.SQLException
    function isDefinitelyWritable(para1: jint): jboolean; overload; virtual;  // throws java.sql.SQLException
    function getColumnClassName(para1: jint): JLString; overload; virtual;  // throws java.sql.SQLException
    function unwrap(para1: JLClass): JLObject; overload; virtual;  // throws java.sql.SQLException
    function isWrapperFor(para1: JLClass): jboolean; overload; virtual;  // throws java.sql.SQLException
  end;

  JSCallableStatement = interface external 'java.sql' name 'CallableStatement' (JSPreparedStatement)
    procedure registerOutParameter(para1: jint; para2: jint); overload;  // throws java.sql.SQLException
    procedure registerOutParameter(para1: jint; para2: jint; para3: jint); overload;  // throws java.sql.SQLException
    function wasNull(): jboolean; overload;  // throws java.sql.SQLException
    function getString(para1: jint): JLString; overload;  // throws java.sql.SQLException
    function getBoolean(para1: jint): jboolean; overload;  // throws java.sql.SQLException
    function getByte(para1: jint): jbyte; overload;  // throws java.sql.SQLException
    function getShort(para1: jint): jshort; overload;  // throws java.sql.SQLException
    function getInt(para1: jint): jint; overload;  // throws java.sql.SQLException
    function getLong(para1: jint): jlong; overload;  // throws java.sql.SQLException
    function getFloat(para1: jint): jfloat; overload;  // throws java.sql.SQLException
    function getDouble(para1: jint): jdouble; overload;  // throws java.sql.SQLException
    function getBigDecimal(para1: jint; para2: jint): JMBigDecimal; overload;  // throws java.sql.SQLException
    function getBytes(para1: jint): Arr1jbyte; overload;  // throws java.sql.SQLException
    function getDate(para1: jint): JSDate; overload;  // throws java.sql.SQLException
    function getTime(para1: jint): JSTime; overload;  // throws java.sql.SQLException
    function getTimestamp(para1: jint): JSqlTimestamp; overload;  // throws java.sql.SQLException
    function getObject(para1: jint): JLObject; overload;  // throws java.sql.SQLException
    function getBigDecimal(para1: jint): JMBigDecimal; overload;  // throws java.sql.SQLException
    function getObject(para1: jint; para2: JUMap): JLObject; overload;  // throws java.sql.SQLException
    function getRef(para1: jint): JSRef; overload;  // throws java.sql.SQLException
    function getBlob(para1: jint): JSBlob; overload;  // throws java.sql.SQLException
    function getClob(para1: jint): JSClob; overload;  // throws java.sql.SQLException
    function getArray(para1: jint): JSArray; overload;  // throws java.sql.SQLException
    function getDate(para1: jint; para2: JUCalendar): JSDate; overload;  // throws java.sql.SQLException
    function getTime(para1: jint; para2: JUCalendar): JSTime; overload;  // throws java.sql.SQLException
    function getTimestamp(para1: jint; para2: JUCalendar): JSqlTimestamp; overload;  // throws java.sql.SQLException
    procedure registerOutParameter(para1: jint; para2: jint; para3: JLString); overload;  // throws java.sql.SQLException
    procedure registerOutParameter(para1: JLString; para2: jint); overload;  // throws java.sql.SQLException
    procedure registerOutParameter(para1: JLString; para2: jint; para3: jint); overload;  // throws java.sql.SQLException
    procedure registerOutParameter(para1: JLString; para2: jint; para3: JLString); overload;  // throws java.sql.SQLException
    function getURL(para1: jint): JNURL; overload;  // throws java.sql.SQLException
    procedure setURL(para1: JLString; para2: JNURL); overload;  // throws java.sql.SQLException
    procedure setNull(para1: JLString; para2: jint); overload;  // throws java.sql.SQLException
    procedure setBoolean(para1: JLString; para2: jboolean); overload;  // throws java.sql.SQLException
    procedure setByte(para1: JLString; para2: jbyte); overload;  // throws java.sql.SQLException
    procedure setShort(para1: JLString; para2: jshort); overload;  // throws java.sql.SQLException
    procedure setInt(para1: JLString; para2: jint); overload;  // throws java.sql.SQLException
    procedure setLong(para1: JLString; para2: jlong); overload;  // throws java.sql.SQLException
    procedure setFloat(para1: JLString; para2: jfloat); overload;  // throws java.sql.SQLException
    procedure setDouble(para1: JLString; para2: jdouble); overload;  // throws java.sql.SQLException
    procedure setBigDecimal(para1: JLString; para2: JMBigDecimal); overload;  // throws java.sql.SQLException
    procedure setString(para1: JLString; para2: JLString); overload;  // throws java.sql.SQLException
    procedure setBytes(para1: JLString; para2: Arr1jbyte); overload;  // throws java.sql.SQLException
    procedure setBytes(para1: JLString; var para2: array of jbyte); overload;  // throws java.sql.SQLException
    procedure setDate(para1: JLString; para2: JSDate); overload;  // throws java.sql.SQLException
    procedure setTime(para1: JLString; para2: JSTime); overload;  // throws java.sql.SQLException
    procedure setTimestamp(para1: JLString; para2: JSqlTimestamp); overload;  // throws java.sql.SQLException
    procedure setAsciiStream(para1: JLString; para2: JIInputStream; para3: jint); overload;  // throws java.sql.SQLException
    procedure setBinaryStream(para1: JLString; para2: JIInputStream; para3: jint); overload;  // throws java.sql.SQLException
    procedure setObject(para1: JLString; para2: JLObject; para3: jint; para4: jint); overload;  // throws java.sql.SQLException
    procedure setObject(para1: JLString; para2: JLObject; para3: jint); overload;  // throws java.sql.SQLException
    procedure setObject(para1: JLString; para2: JLObject); overload;  // throws java.sql.SQLException
    procedure setCharacterStream(para1: JLString; para2: JIReader; para3: jint); overload;  // throws java.sql.SQLException
    procedure setDate(para1: JLString; para2: JSDate; para3: JUCalendar); overload;  // throws java.sql.SQLException
    procedure setTime(para1: JLString; para2: JSTime; para3: JUCalendar); overload;  // throws java.sql.SQLException
    procedure setTimestamp(para1: JLString; para2: JSqlTimestamp; para3: JUCalendar); overload;  // throws java.sql.SQLException
    procedure setNull(para1: JLString; para2: jint; para3: JLString); overload;  // throws java.sql.SQLException
    function getString(para1: JLString): JLString; overload;  // throws java.sql.SQLException
    function getBoolean(para1: JLString): jboolean; overload;  // throws java.sql.SQLException
    function getByte(para1: JLString): jbyte; overload;  // throws java.sql.SQLException
    function getShort(para1: JLString): jshort; overload;  // throws java.sql.SQLException
    function getInt(para1: JLString): jint; overload;  // throws java.sql.SQLException
    function getLong(para1: JLString): jlong; overload;  // throws java.sql.SQLException
    function getFloat(para1: JLString): jfloat; overload;  // throws java.sql.SQLException
    function getDouble(para1: JLString): jdouble; overload;  // throws java.sql.SQLException
    function getBytes(para1: JLString): Arr1jbyte; overload;  // throws java.sql.SQLException
    function getDate(para1: JLString): JSDate; overload;  // throws java.sql.SQLException
    function getTime(para1: JLString): JSTime; overload;  // throws java.sql.SQLException
    function getTimestamp(para1: JLString): JSqlTimestamp; overload;  // throws java.sql.SQLException
    function getObject(para1: JLString): JLObject; overload;  // throws java.sql.SQLException
    function getBigDecimal(para1: JLString): JMBigDecimal; overload;  // throws java.sql.SQLException
    function getObject(para1: JLString; para2: JUMap): JLObject; overload;  // throws java.sql.SQLException
    function getRef(para1: JLString): JSRef; overload;  // throws java.sql.SQLException
    function getBlob(para1: JLString): JSBlob; overload;  // throws java.sql.SQLException
    function getClob(para1: JLString): JSClob; overload;  // throws java.sql.SQLException
    function getArray(para1: JLString): JSArray; overload;  // throws java.sql.SQLException
    function getDate(para1: JLString; para2: JUCalendar): JSDate; overload;  // throws java.sql.SQLException
    function getTime(para1: JLString; para2: JUCalendar): JSTime; overload;  // throws java.sql.SQLException
    function getTimestamp(para1: JLString; para2: JUCalendar): JSqlTimestamp; overload;  // throws java.sql.SQLException
    function getURL(para1: JLString): JNURL; overload;  // throws java.sql.SQLException
    function getRowId(para1: jint): JSRowId; overload;  // throws java.sql.SQLException
    function getRowId(para1: JLString): JSRowId; overload;  // throws java.sql.SQLException
    procedure setRowId(para1: JLString; para2: JSRowId); overload;  // throws java.sql.SQLException
    procedure setNString(para1: JLString; para2: JLString); overload;  // throws java.sql.SQLException
    procedure setNCharacterStream(para1: JLString; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setNClob(para1: JLString; para2: JSNClob); overload;  // throws java.sql.SQLException
    procedure setClob(para1: JLString; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setBlob(para1: JLString; para2: JIInputStream; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setNClob(para1: JLString; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    function getNClob(para1: jint): JSNClob; overload;  // throws java.sql.SQLException
    function getNClob(para1: JLString): JSNClob; overload;  // throws java.sql.SQLException
    procedure setSQLXML(para1: JLString; para2: JSSQLXML); overload;  // throws java.sql.SQLException
    function getSQLXML(para1: jint): JSSQLXML; overload;  // throws java.sql.SQLException
    function getSQLXML(para1: JLString): JSSQLXML; overload;  // throws java.sql.SQLException
    function getNString(para1: jint): JLString; overload;  // throws java.sql.SQLException
    function getNString(para1: JLString): JLString; overload;  // throws java.sql.SQLException
    function getNCharacterStream(para1: jint): JIReader; overload;  // throws java.sql.SQLException
    function getNCharacterStream(para1: JLString): JIReader; overload;  // throws java.sql.SQLException
    function getCharacterStream(para1: jint): JIReader; overload;  // throws java.sql.SQLException
    function getCharacterStream(para1: JLString): JIReader; overload;  // throws java.sql.SQLException
    procedure setBlob(para1: JLString; para2: JSBlob); overload;  // throws java.sql.SQLException
    procedure setClob(para1: JLString; para2: JSClob); overload;  // throws java.sql.SQLException
    procedure setAsciiStream(para1: JLString; para2: JIInputStream; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setBinaryStream(para1: JLString; para2: JIInputStream; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setCharacterStream(para1: JLString; para2: JIReader; para3: jlong); overload;  // throws java.sql.SQLException
    procedure setAsciiStream(para1: JLString; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure setBinaryStream(para1: JLString; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure setCharacterStream(para1: JLString; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure setNCharacterStream(para1: JLString; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure setClob(para1: JLString; para2: JIReader); overload;  // throws java.sql.SQLException
    procedure setBlob(para1: JLString; para2: JIInputStream); overload;  // throws java.sql.SQLException
    procedure setNClob(para1: JLString; para2: JIReader); overload;  // throws java.sql.SQLException
  end;

  JSProvider = class abstract external 'java.security' name 'Provider' (JUProperties)
  public
    type
      InnerEngineDescription = class;
      Arr1InnerEngineDescription = array of InnerEngineDescription;
      Arr2InnerEngineDescription = array of Arr1InnerEngineDescription;
      Arr3InnerEngineDescription = array of Arr2InnerEngineDescription;
      InnerServiceKey = class;
      Arr1InnerServiceKey = array of InnerServiceKey;
      Arr2InnerServiceKey = array of Arr1InnerServiceKey;
      Arr3InnerServiceKey = array of Arr2InnerServiceKey;
      InnerUString = class;
      Arr1InnerUString = array of InnerUString;
      Arr2InnerUString = array of Arr1InnerUString;
      Arr3InnerUString = array of Arr2InnerUString;
      InnerEngineDescription = class external 'java.security' name 'EngineDescription' 
      end;

      InnerServiceKey = class external 'java.security' name 'ServiceKey' 
      end;

      InnerUString = class external 'java.security' name 'UString' 
      end;

  public
    type
      InnerService = class;
      Arr1InnerService = array of InnerService;
      Arr2InnerService = array of Arr1InnerService;
      Arr3InnerService = array of Arr2InnerService;
      InnerService = class external 'java.security' name 'Service' (JLObject)
      public
        constructor create(para1: JSProvider; para2: JLString; para3: JLString; para4: JLString; para5: JUList; para6: JUMap); overload;
        function getType(): JLString; overload; virtual; final;
        function getAlgorithm(): JLString; overload; virtual; final;
        function getProvider(): JSProvider; overload; virtual; final;
        function getClassName(): JLString; overload; virtual; final;
        function getAttribute(para1: JLString): JLString; overload; virtual; final;
        function newInstance(para1: JLObject): JLObject; overload; virtual;  // throws java.security.NoSuchAlgorithmException
        function supportsParameter(para1: JLObject): jboolean; overload; virtual;
        function toString(): JLString; overload; virtual;
      end;

  strict protected
    constructor create(para1: JLString; para2: jdouble; para3: JLString); overload;
  public
    function getName(): JLString; overload; virtual;
    function getVersion(): jdouble; overload; virtual;
    function getInfo(): JLString; overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure clear(); overload; virtual;
    procedure load(para1: JIInputStream); overload; virtual;  // throws java.io.IOException
    procedure putAll(para1: JUMap); overload; virtual;
    function entrySet(): JUSet; overload; virtual;
    function keySet(): JUSet; overload; virtual;
    function values(): JUCollection; overload; virtual;
    function put(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
    function remove(para1: JLObject): JLObject; overload; virtual;
    function get(para1: JLObject): JLObject; overload; virtual;
    function keys(): JUEnumeration; overload; virtual;
    function elements(): JUEnumeration; overload; virtual;
    function getProperty(para1: JLString): JLString; overload; virtual;
    function getService(para1: JLString; para2: JLString): JSProvider.InnerService; overload; virtual;
    function getServices(): JUSet; overload; virtual;
  strict protected
    procedure putService(para1: JSProvider.InnerService); overload; virtual;
    procedure removeService(para1: JSProvider.InnerService); overload; virtual;
  end;

  JSMultiUIDefaults = class external 'javax.swing' name 'MultiUIDefaults' (JSUIDefaults)
  public
    type
      InnerMultiUIDefaultsEnumerator = class;
      Arr1InnerMultiUIDefaultsEnumerator = array of InnerMultiUIDefaultsEnumerator;
      Arr2InnerMultiUIDefaultsEnumerator = array of Arr1InnerMultiUIDefaultsEnumerator;
      Arr3InnerMultiUIDefaultsEnumerator = array of Arr2InnerMultiUIDefaultsEnumerator;
      InnerMultiUIDefaultsEnumerator = class external 'javax.swing' name 'MultiUIDefaultsEnumerator' 
      end;

  public
    constructor create(para1: Arr1JSUIDefaults); overload;
    constructor create(const para1: array of JSUIDefaults); overload;
    constructor create(); overload;
    function get(para1: JLObject): JLObject; overload; virtual;
    function get(para1: JLObject; para2: JULocale): JLObject; overload; virtual;
    function size(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function keys(): JUEnumeration; overload; virtual;
    function elements(): JUEnumeration; overload; virtual;
    function entrySet(): JUSet; overload; virtual;
  strict protected
    procedure getUIError(para1: JLString); overload; virtual;
  public
    function remove(para1: JLObject): JLObject; overload; virtual;
    procedure clear(); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSPMMultiUIDefaults = class external 'javax.swing.plaf.multi' name 'MultiUIDefaults' (JSUIDefaults)
  strict protected
    procedure getUIError(para1: JLString); overload; virtual;
  end;

  JSAbstractAction = class abstract external 'javax.swing' name 'AbstractAction' (JLObject, JSAction, JLCloneable, JISerializable)
  strict protected
    var
      fenabled: jboolean; external name 'enabled';
      fchangeSupport: JSESwingPropertyChangeSupport; external name 'changeSupport';
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JSIcon); overload;
    function getValue(para1: JLString): JLObject; overload; virtual;
    procedure putValue(para1: JLString; para2: JLObject); overload; virtual;
    function isEnabled(): jboolean; overload; virtual;
    procedure setEnabled(para1: jboolean); overload; virtual;
    function getKeys(): Arr1JLObject; overload; virtual;
  strict protected
    procedure firePropertyChange(para1: JLString; para2: JLObject; para3: JLObject); overload; virtual;
  public
    procedure addPropertyChangeListener(para1: JBPropertyChangeListener); overload; virtual;
    procedure removePropertyChangeListener(para1: JBPropertyChangeListener); overload; virtual;
    function getPropertyChangeListeners(): Arr1JBPropertyChangeListener; overload; virtual;
  strict protected
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  JSPMMetalComboBoxEditor = class external 'javax.swing.plaf.metal' name 'MetalComboBoxEditor' (JSPBBasicComboBoxEditor)
  public
    type
      InnerEditorBorder = class;
      Arr1InnerEditorBorder = array of InnerEditorBorder;
      Arr2InnerEditorBorder = array of Arr1InnerEditorBorder;
      Arr3InnerEditorBorder = array of Arr2InnerEditorBorder;
      InnerEditorBorder = class external 'javax.swing.plaf.metal' name 'EditorBorder' 
      end;

  public
    type
      InnerUIResource = class;
      Arr1InnerUIResource = array of InnerUIResource;
      Arr2InnerUIResource = array of Arr1InnerUIResource;
      Arr3InnerUIResource = array of Arr2InnerUIResource;
      InnerUIResource = class external 'javax.swing.plaf.metal' name 'UIResource' (JSPMMetalComboBoxEditor, JSPUIResource)
      public
        constructor create(); overload;
      end;

  strict protected
    class var
      feditorBorderInsets: JAInsets; external name 'editorBorderInsets';
  public
    constructor create(); overload;
  end;

  JSToolTipManager = class external 'javax.swing' name 'ToolTipManager' (JAEMouseAdapter, JAEMouseMotionListener)
  public
    type
      InnerActions = class;
      Arr1InnerActions = array of InnerActions;
      Arr2InnerActions = array of Arr1InnerActions;
      Arr3InnerActions = array of Arr2InnerActions;
      InnerMoveBeforeEnterListener = class;
      Arr1InnerMoveBeforeEnterListener = array of InnerMoveBeforeEnterListener;
      Arr2InnerMoveBeforeEnterListener = array of Arr1InnerMoveBeforeEnterListener;
      Arr3InnerMoveBeforeEnterListener = array of Arr2InnerMoveBeforeEnterListener;
      InnerActions = class external 'javax.swing' name 'Actions' 
      end;

      InnerMoveBeforeEnterListener = class external 'javax.swing' name 'MoveBeforeEnterListener' 
      end;

  public
    type
      InnerinsideTimerAction = class;
      Arr1InnerinsideTimerAction = array of InnerinsideTimerAction;
      Arr2InnerinsideTimerAction = array of Arr1InnerinsideTimerAction;
      Arr3InnerinsideTimerAction = array of Arr2InnerinsideTimerAction;
      InneroutsideTimerAction = class;
      Arr1InneroutsideTimerAction = array of InneroutsideTimerAction;
      Arr2InneroutsideTimerAction = array of Arr1InneroutsideTimerAction;
      Arr3InneroutsideTimerAction = array of Arr2InneroutsideTimerAction;
      InnerstillInsideTimerAction = class;
      Arr1InnerstillInsideTimerAction = array of InnerstillInsideTimerAction;
      Arr2InnerstillInsideTimerAction = array of Arr1InnerstillInsideTimerAction;
      Arr3InnerstillInsideTimerAction = array of Arr2InnerstillInsideTimerAction;
      InnerinsideTimerAction = class external 'javax.swing' name 'insideTimerAction' 
      end;

      InneroutsideTimerAction = class external 'javax.swing' name 'outsideTimerAction' 
      end;

      InnerstillInsideTimerAction = class external 'javax.swing' name 'stillInsideTimerAction' 
      end;

  strict protected
    var
      flightWeightPopupEnabled: jboolean; external name 'lightWeightPopupEnabled';
      fheavyWeightPopupEnabled: jboolean; external name 'heavyWeightPopupEnabled';
  public
    procedure setEnabled(para1: jboolean); overload; virtual;
    function isEnabled(): jboolean; overload; virtual;
    procedure setLightWeightPopupEnabled(para1: jboolean); overload; virtual;
    function isLightWeightPopupEnabled(): jboolean; overload; virtual;
    procedure setInitialDelay(para1: jint); overload; virtual;
    function getInitialDelay(): jint; overload; virtual;
    procedure setDismissDelay(para1: jint); overload; virtual;
    function getDismissDelay(): jint; overload; virtual;
    procedure setReshowDelay(para1: jint); overload; virtual;
    function getReshowDelay(): jint; overload; virtual;
    class function sharedInstance(): JSToolTipManager; static; overload;
    procedure registerComponent(para1: JSJComponent); overload; virtual;
    procedure unregisterComponent(para1: JSJComponent); overload; virtual;
    procedure mouseEntered(para1: JAEMouseEvent); overload; virtual;
    procedure mouseExited(para1: JAEMouseEvent); overload; virtual;
    procedure mousePressed(para1: JAEMouseEvent); overload; virtual;
    procedure mouseDragged(para1: JAEMouseEvent); overload; virtual;
    procedure mouseMoved(para1: JAEMouseEvent); overload; virtual;
  end;

  JSEMouseInputAdapter = class abstract external 'javax.swing.event' name 'MouseInputAdapter' (JAEMouseAdapter, JSEMouseInputListener)
  public
    constructor create(); overload;
  end;

  JADDnDEventMulticaster = class external 'java.awt.dnd' name 'DnDEventMulticaster' (JAAWTEventMulticaster, JADDragSourceListener, JADDragSourceMotionListener)
  strict protected
    constructor create(para1: JUEventListener; para2: JUEventListener); overload;
  public
    procedure dragEnter(para1: JADDragSourceDragEvent); overload; virtual;
    procedure dragOver(para1: JADDragSourceDragEvent); overload; virtual;
    procedure dropActionChanged(para1: JADDragSourceDragEvent); overload; virtual;
    procedure dragExit(para1: JADDragSourceEvent); overload; virtual;
    procedure dragDropEnd(para1: JADDragSourceDropEvent); overload; virtual;
    procedure dragMouseMoved(para1: JADDragSourceDragEvent); overload; virtual;
    class function add(para1: JADDragSourceListener; para2: JADDragSourceListener): JADDragSourceListener; static; overload;
    class function add(para1: JADDragSourceMotionListener; para2: JADDragSourceMotionListener): JADDragSourceMotionListener; static; overload;
    class function remove(para1: JADDragSourceListener; para2: JADDragSourceListener): JADDragSourceListener; static; overload;
    class function remove(para1: JADDragSourceMotionListener; para2: JADDragSourceMotionListener): JADDragSourceMotionListener; static; overload;
  strict protected
    class function addInternal(para1: JUEventListener; para2: JUEventListener): JUEventListener; static; overload;
    function remove(para1: JUEventListener): JUEventListener; overload; virtual;
    class function removeInternal(para1: JUEventListener; para2: JUEventListener): JUEventListener; static; overload;
    class procedure save(para1: JIObjectOutputStream; para2: JLString; para3: JUEventListener); static; overload;  // throws java.io.IOException
  end;

  JBBBeanContextChildSupport = class external 'java.beans.beancontext' name 'BeanContextChildSupport' (JLObject, JBBBeanContextChild, JBBBeanContextServicesListener, JISerializable)
  public
    var
      fbeanContextChildPeer: JBBBeanContextChild; external name 'beanContextChildPeer';
  strict protected
    var
      fpcSupport: JBPropertyChangeSupport; external name 'pcSupport';
      fvcSupport: JBVetoableChangeSupport; external name 'vcSupport';
      fbeanContext: JBBBeanContext; external name 'beanContext';
      frejectedSetBCOnce: jboolean; external name 'rejectedSetBCOnce';
  public
    constructor create(); overload;
    constructor create(para1: JBBBeanContextChild); overload;
    procedure setBeanContext(para1: JBBBeanContext); overload; virtual;  // throws java.beans.PropertyVetoException
    function getBeanContext(): JBBBeanContext; overload; virtual;
    procedure addPropertyChangeListener(para1: JLString; para2: JBPropertyChangeListener); overload; virtual;
    procedure removePropertyChangeListener(para1: JLString; para2: JBPropertyChangeListener); overload; virtual;
    procedure addVetoableChangeListener(para1: JLString; para2: JBVetoableChangeListener); overload; virtual;
    procedure removeVetoableChangeListener(para1: JLString; para2: JBVetoableChangeListener); overload; virtual;
    procedure serviceRevoked(para1: JBBBeanContextServiceRevokedEvent); overload; virtual;
    procedure serviceAvailable(para1: JBBBeanContextServiceAvailableEvent); overload; virtual;
    function getBeanContextChildPeer(): JBBBeanContextChild; overload; virtual;
    function isDelegated(): jboolean; overload; virtual;
    procedure firePropertyChange(para1: JLString; para2: JLObject; para3: JLObject); overload; virtual;
    procedure fireVetoableChange(para1: JLString; para2: JLObject; para3: JLObject); overload; virtual;  // throws java.beans.PropertyVetoException
    function validatePendingSetBeanContext(para1: JBBBeanContext): jboolean; overload; virtual;
  strict protected
    procedure releaseBeanContextResources(); overload; virtual;
    procedure initializeBeanContextResources(); overload; virtual;
  end;

  JBBBeanContextServices = interface external 'java.beans.beancontext' name 'BeanContextServices' (JBBBeanContext, JBBBeanContextServicesListener)
    function addService(para1: JLClass; para2: JBBBeanContextServiceProvider): jboolean; overload;
    procedure revokeService(para1: JLClass; para2: JBBBeanContextServiceProvider; para3: jboolean); overload;
    function hasService(para1: JLClass): jboolean; overload;
    function getService(para1: JBBBeanContextChild; para2: JLObject; para3: JLClass; para4: JLObject; para5: JBBBeanContextServiceRevokedListener): JLObject; overload;  // throws java.util.TooManyListenersException
    procedure releaseService(para1: JBBBeanContextChild; para2: JLObject; para3: JLObject); overload;
    function getCurrentServiceClasses(): JUIterator; overload;
    function getCurrentServiceSelectors(para1: JLClass): JUIterator; overload;
    procedure addBeanContextServicesListener(para1: JBBBeanContextServicesListener); overload;
    procedure removeBeanContextServicesListener(para1: JBBBeanContextServicesListener); overload;
  end;

  JUCThreadPoolExecutor = class external 'java.util.concurrent' name 'ThreadPoolExecutor' (JUCAbstractExecutorService)
  public
    type
      InnerWorker = class;
      Arr1InnerWorker = array of InnerWorker;
      Arr2InnerWorker = array of Arr1InnerWorker;
      Arr3InnerWorker = array of Arr2InnerWorker;
      InnerWorker = class sealed external 'java.util.concurrent' name 'Worker' 
      end;

  public
    type
      InnerAbortPolicy = class;
      Arr1InnerAbortPolicy = array of InnerAbortPolicy;
      Arr2InnerAbortPolicy = array of Arr1InnerAbortPolicy;
      Arr3InnerAbortPolicy = array of Arr2InnerAbortPolicy;
      InnerCallerRunsPolicy = class;
      Arr1InnerCallerRunsPolicy = array of InnerCallerRunsPolicy;
      Arr2InnerCallerRunsPolicy = array of Arr1InnerCallerRunsPolicy;
      Arr3InnerCallerRunsPolicy = array of Arr2InnerCallerRunsPolicy;
      InnerDiscardOldestPolicy = class;
      Arr1InnerDiscardOldestPolicy = array of InnerDiscardOldestPolicy;
      Arr2InnerDiscardOldestPolicy = array of Arr1InnerDiscardOldestPolicy;
      Arr3InnerDiscardOldestPolicy = array of Arr2InnerDiscardOldestPolicy;
      InnerDiscardPolicy = class;
      Arr1InnerDiscardPolicy = array of InnerDiscardPolicy;
      Arr2InnerDiscardPolicy = array of Arr1InnerDiscardPolicy;
      Arr3InnerDiscardPolicy = array of Arr2InnerDiscardPolicy;
      InnerAbortPolicy = class external 'java.util.concurrent' name 'AbortPolicy' (JLObject, JUCRejectedExecutionHandler)
      public
        constructor create(); overload;
        procedure rejectedExecution(para1: JLRunnable; para2: JUCThreadPoolExecutor); overload; virtual;
      end;

      InnerCallerRunsPolicy = class external 'java.util.concurrent' name 'CallerRunsPolicy' (JLObject, JUCRejectedExecutionHandler)
      public
        constructor create(); overload;
        procedure rejectedExecution(para1: JLRunnable; para2: JUCThreadPoolExecutor); overload; virtual;
      end;

      InnerDiscardOldestPolicy = class external 'java.util.concurrent' name 'DiscardOldestPolicy' (JLObject, JUCRejectedExecutionHandler)
      public
        constructor create(); overload;
        procedure rejectedExecution(para1: JLRunnable; para2: JUCThreadPoolExecutor); overload; virtual;
      end;

      InnerDiscardPolicy = class external 'java.util.concurrent' name 'DiscardPolicy' (JLObject, JUCRejectedExecutionHandler)
      public
        constructor create(); overload;
        procedure rejectedExecution(para1: JLRunnable; para2: JUCThreadPoolExecutor); overload; virtual;
      end;

  public
    constructor create(para1: jint; para2: jint; para3: jlong; para4: JUCTimeUnit; para5: JUCBlockingQueue); overload;
    constructor create(para1: jint; para2: jint; para3: jlong; para4: JUCTimeUnit; para5: JUCBlockingQueue; para6: JUCThreadFactory); overload;
    constructor create(para1: jint; para2: jint; para3: jlong; para4: JUCTimeUnit; para5: JUCBlockingQueue; para6: JUCRejectedExecutionHandler); overload;
    constructor create(para1: jint; para2: jint; para3: jlong; para4: JUCTimeUnit; para5: JUCBlockingQueue; para6: JUCThreadFactory; para7: JUCRejectedExecutionHandler); overload;
    procedure execute(para1: JLRunnable); overload; virtual;
    procedure shutdown(); overload; virtual;
    function shutdownNow(): JUList; overload; virtual;
    function isShutdown(): jboolean; overload; virtual;
    function isTerminating(): jboolean; overload; virtual;
    function isTerminated(): jboolean; overload; virtual;
    function awaitTermination(para1: jlong; para2: JUCTimeUnit): jboolean; overload; virtual;  // throws java.lang.InterruptedException
  strict protected
    procedure finalize(); overload; virtual;
  public
    procedure setThreadFactory(para1: JUCThreadFactory); overload; virtual;
    function getThreadFactory(): JUCThreadFactory; overload; virtual;
    procedure setRejectedExecutionHandler(para1: JUCRejectedExecutionHandler); overload; virtual;
    function getRejectedExecutionHandler(): JUCRejectedExecutionHandler; overload; virtual;
    procedure setCorePoolSize(para1: jint); overload; virtual;
    function getCorePoolSize(): jint; overload; virtual;
    function prestartCoreThread(): jboolean; overload; virtual;
    function prestartAllCoreThreads(): jint; overload; virtual;
    function allowsCoreThreadTimeOut(): jboolean; overload; virtual;
    procedure allowCoreThreadTimeOut(para1: jboolean); overload; virtual;
    procedure setMaximumPoolSize(para1: jint); overload; virtual;
    function getMaximumPoolSize(): jint; overload; virtual;
    procedure setKeepAliveTime(para1: jlong; para2: JUCTimeUnit); overload; virtual;
    function getKeepAliveTime(para1: JUCTimeUnit): jlong; overload; virtual;
    function getQueue(): JUCBlockingQueue; overload; virtual;
    function remove(para1: JLRunnable): jboolean; overload; virtual;
    procedure purge(); overload; virtual;
    function getPoolSize(): jint; overload; virtual;
    function getActiveCount(): jint; overload; virtual;
    function getLargestPoolSize(): jint; overload; virtual;
    function getTaskCount(): jlong; overload; virtual;
    function getCompletedTaskCount(): jlong; overload; virtual;
  strict protected
    procedure beforeExecute(para1: JLThread; para2: JLRunnable); overload; virtual;
    procedure afterExecute(para1: JLRunnable; para2: JLThrowable); overload; virtual;
    procedure terminated(); overload; virtual;
  end;

  JISImageReaderSpi = class abstract external 'javax.imageio.spi' name 'ImageReaderSpi' (JISImageReaderWriterSpi)
  public
    final class var
      fSTANDARD_INPUT_TYPE: Arr1JLClass; external name 'STANDARD_INPUT_TYPE';
  strict protected
    var
      finputTypes: Arr1JLClass; external name 'inputTypes';
      fwriterSpiNames: Arr1JLString; external name 'writerSpiNames';
  strict protected
    constructor create(); overload;
  public
    constructor create(para1: JLString; para2: JLString; para3: Arr1JLString; para4: Arr1JLString; para5: Arr1JLString; para6: JLString; para7: Arr1JLClass; para8: Arr1JLString; para9: jboolean; para10: JLString; para11: JLString; para12: Arr1JLString; para13: Arr1JLString; para14: jboolean; para15: JLString; para16: JLString; para17: Arr1JLString; para18: Arr1JLString); overload;
    constructor create(para1: JLString; para2: JLString; const para3: array of JLString; const para4: array of JLString; const para5: array of JLString; para6: JLString; const para7: array of JLClass; const para8: array of JLString; para9: jboolean; para10: JLString; para11: JLString; const para12: array of JLString; const para13: array of JLString; para14: jboolean; para15: JLString; para16: JLString; const para17: array of JLString; const para18: array of JLString); overload;
    function getInputTypes(): Arr1JLClass; overload; virtual;
    function canDecodeInput(para1: JLObject): jboolean; overload; virtual; abstract;  // throws java.io.IOException
    function createReaderInstance(): JIImageReader; overload; virtual;  // throws java.io.IOException
    function createReaderInstance(para1: JLObject): JIImageReader; overload; virtual; abstract;  // throws java.io.IOException
    function isOwnReader(para1: JIImageReader): jboolean; overload; virtual;
    function getImageWriterSpiNames(): Arr1JLString; overload; virtual;
  end;

  JISImageWriterSpi = class abstract external 'javax.imageio.spi' name 'ImageWriterSpi' (JISImageReaderWriterSpi)
  public
    final class var
      fSTANDARD_OUTPUT_TYPE: Arr1JLClass; external name 'STANDARD_OUTPUT_TYPE';
  strict protected
    var
      foutputTypes: Arr1JLClass; external name 'outputTypes';
      freaderSpiNames: Arr1JLString; external name 'readerSpiNames';
  strict protected
    constructor create(); overload;
  public
    constructor create(para1: JLString; para2: JLString; para3: Arr1JLString; para4: Arr1JLString; para5: Arr1JLString; para6: JLString; para7: Arr1JLClass; para8: Arr1JLString; para9: jboolean; para10: JLString; para11: JLString; para12: Arr1JLString; para13: Arr1JLString; para14: jboolean; para15: JLString; para16: JLString; para17: Arr1JLString; para18: Arr1JLString); overload;
    constructor create(para1: JLString; para2: JLString; const para3: array of JLString; const para4: array of JLString; const para5: array of JLString; para6: JLString; const para7: array of JLClass; const para8: array of JLString; para9: jboolean; para10: JLString; para11: JLString; const para12: array of JLString; const para13: array of JLString; para14: jboolean; para15: JLString; para16: JLString; const para17: array of JLString; const para18: array of JLString); overload;
    function isFormatLossless(): jboolean; overload; virtual;
    function getOutputTypes(): Arr1JLClass; overload; virtual;
    function canEncodeImage(para1: JIImageTypeSpecifier): jboolean; overload; virtual; abstract;
    function canEncodeImage(para1: JAIRenderedImage): jboolean; overload; virtual;
    function createWriterInstance(): JIImageWriter; overload; virtual;  // throws java.io.IOException
    function createWriterInstance(para1: JLObject): JIImageWriter; overload; virtual; abstract;  // throws java.io.IOException
    function isOwnWriter(para1: JIImageWriter): jboolean; overload; virtual;
    function getImageReaderSpiNames(): Arr1JLString; overload; virtual;
  end;

  JLMUElementKindVisitor6 = class external 'javax.lang.model.util' name 'ElementKindVisitor6' (JLMUSimpleElementVisitor6)
  strict protected
    constructor create(); overload;
    constructor create(para1: JLObject); overload;
  public
    function visitPackage(para1: JLMEPackageElement; para2: JLObject): JLObject; overload; virtual;
    function visitType(para1: JLMETypeElement; para2: JLObject): JLObject; overload; virtual;
    function visitTypeAsAnnotationType(para1: JLMETypeElement; para2: JLObject): JLObject; overload; virtual;
    function visitTypeAsClass(para1: JLMETypeElement; para2: JLObject): JLObject; overload; virtual;
    function visitTypeAsEnum(para1: JLMETypeElement; para2: JLObject): JLObject; overload; virtual;
    function visitTypeAsInterface(para1: JLMETypeElement; para2: JLObject): JLObject; overload; virtual;
    function visitVariable(para1: JLMEVariableElement; para2: JLObject): JLObject; overload; virtual;
    function visitVariableAsEnumConstant(para1: JLMEVariableElement; para2: JLObject): JLObject; overload; virtual;
    function visitVariableAsExceptionParameter(para1: JLMEVariableElement; para2: JLObject): JLObject; overload; virtual;
    function visitVariableAsField(para1: JLMEVariableElement; para2: JLObject): JLObject; overload; virtual;
    function visitVariableAsLocalVariable(para1: JLMEVariableElement; para2: JLObject): JLObject; overload; virtual;
    function visitVariableAsParameter(para1: JLMEVariableElement; para2: JLObject): JLObject; overload; virtual;
    function visitExecutable(para1: JLMEExecutableElement; para2: JLObject): JLObject; overload; virtual;
    function visitExecutableAsConstructor(para1: JLMEExecutableElement; para2: JLObject): JLObject; overload; virtual;
    function visitExecutableAsInstanceInit(para1: JLMEExecutableElement; para2: JLObject): JLObject; overload; virtual;
    function visitExecutableAsMethod(para1: JLMEExecutableElement; para2: JLObject): JLObject; overload; virtual;
    function visitExecutableAsStaticInit(para1: JLMEExecutableElement; para2: JLObject): JLObject; overload; virtual;
    function visitTypeParameter(para1: JLMETypeParameterElement; para2: JLObject): JLObject; overload; virtual;
  end;

  JLMTErrorType = interface external 'javax.lang.model.type' name 'ErrorType' (JLMTDeclaredType)
  end;

  JLMUTypeKindVisitor6 = class external 'javax.lang.model.util' name 'TypeKindVisitor6' (JLMUSimpleTypeVisitor6)
  strict protected
    constructor create(); overload;
    constructor create(para1: JLObject); overload;
  public
    function visitPrimitive(para1: JLMTPrimitiveType; para2: JLObject): JLObject; overload; virtual;
    function visitPrimitiveAsBoolean(para1: JLMTPrimitiveType; para2: JLObject): JLObject; overload; virtual;
    function visitPrimitiveAsByte(para1: JLMTPrimitiveType; para2: JLObject): JLObject; overload; virtual;
    function visitPrimitiveAsShort(para1: JLMTPrimitiveType; para2: JLObject): JLObject; overload; virtual;
    function visitPrimitiveAsInt(para1: JLMTPrimitiveType; para2: JLObject): JLObject; overload; virtual;
    function visitPrimitiveAsLong(para1: JLMTPrimitiveType; para2: JLObject): JLObject; overload; virtual;
    function visitPrimitiveAsChar(para1: JLMTPrimitiveType; para2: JLObject): JLObject; overload; virtual;
    function visitPrimitiveAsFloat(para1: JLMTPrimitiveType; para2: JLObject): JLObject; overload; virtual;
    function visitPrimitiveAsDouble(para1: JLMTPrimitiveType; para2: JLObject): JLObject; overload; virtual;
    function visitNoType(para1: JLMTNoType; para2: JLObject): JLObject; overload; virtual;
    function visitNoTypeAsVoid(para1: JLMTNoType; para2: JLObject): JLObject; overload; virtual;
    function visitNoTypeAsPackage(para1: JLMTNoType; para2: JLObject): JLObject; overload; virtual;
    function visitNoTypeAsNone(para1: JLMTNoType; para2: JLObject): JLObject; overload; virtual;
  end;

  JMMModelMBeanAttributeInfo = class external 'javax.management.modelmbean' name 'ModelMBeanAttributeInfo' (JMMBeanAttributeInfo, JMDescriptorAccess)
  public
    constructor create(para1: JLString; para2: JLString; para3: JLRMethod; para4: JLRMethod); overload;  // throws javax.management.IntrospectionException
    constructor create(para1: JLString; para2: JLString; para3: JLRMethod; para4: JLRMethod; para5: JMDescriptor); overload;  // throws javax.management.IntrospectionException
    constructor create(para1: JLString; para2: JLString; para3: JLString; para4: jboolean; para5: jboolean; para6: jboolean); overload;
    constructor create(para1: JLString; para2: JLString; para3: JLString; para4: jboolean; para5: jboolean; para6: jboolean; para7: JMDescriptor); overload;
    constructor create(para1: JMMModelMBeanAttributeInfo); overload;
    function getDescriptor(): JMDescriptor; overload; virtual;
    procedure setDescriptor(para1: JMDescriptor); overload; virtual;
    function clone(): JLObject; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JMOOpenMBeanAttributeInfoSupport = class external 'javax.management.openmbean' name 'OpenMBeanAttributeInfoSupport' (JMMBeanAttributeInfo, JMOOpenMBeanAttributeInfo)
  public
    constructor create(para1: JLString; para2: JLString; para3: JMOOpenType; para4: jboolean; para5: jboolean; para6: jboolean); overload;
    constructor create(para1: JLString; para2: JLString; para3: JMOOpenType; para4: jboolean; para5: jboolean; para6: jboolean; para7: JMDescriptor); overload;
    constructor create(para1: JLString; para2: JLString; para3: JMOOpenType; para4: jboolean; para5: jboolean; para6: jboolean; para7: JLObject); overload;  // throws javax.management.openmbean.OpenDataException
    constructor create(para1: JLString; para2: JLString; para3: JMOOpenType; para4: jboolean; para5: jboolean; para6: jboolean; para7: JLObject; para8: Arr1JLObject); overload;  // throws javax.management.openmbean.OpenDataException
    constructor create(para1: JLString; para2: JLString; para3: JMOOpenType; para4: jboolean; para5: jboolean; para6: jboolean; para7: JLObject; const para8: array of JLObject); overload;  // throws javax.management.openmbean.OpenDataException
    constructor create(para1: JLString; para2: JLString; para3: JMOOpenType; para4: jboolean; para5: jboolean; para6: jboolean; para7: JLObject; para8: JLComparable; para9: JLComparable); overload;  // throws javax.management.openmbean.OpenDataException
    function getOpenType(): JMOOpenType; overload; virtual;
    function getDefaultValue(): JLObject; overload; virtual;
    function getLegalValues(): JUSet; overload; virtual;
    function getMinValue(): JLComparable; overload; virtual;
    function getMaxValue(): JLComparable; overload; virtual;
    function hasDefaultValue(): jboolean; overload; virtual;
    function hasLegalValues(): jboolean; overload; virtual;
    function hasMinValue(): jboolean; overload; virtual;
    function hasMaxValue(): jboolean; overload; virtual;
    function isValue(para1: JLObject): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JMMModelMBeanConstructorInfo = class external 'javax.management.modelmbean' name 'ModelMBeanConstructorInfo' (JMMBeanConstructorInfo, JMDescriptorAccess)
  public
    constructor create(para1: JLString; para2: JLRConstructor); overload;
    constructor create(para1: JLString; para2: JLRConstructor; para3: JMDescriptor); overload;
    constructor create(para1: JLString; para2: JLString; para3: Arr1JMMBeanParameterInfo); overload;
    constructor create(para1: JLString; para2: JLString; const para3: array of JMMBeanParameterInfo); overload;
    constructor create(para1: JLString; para2: JLString; para3: Arr1JMMBeanParameterInfo; para4: JMDescriptor); overload;
    constructor create(para1: JLString; para2: JLString; const para3: array of JMMBeanParameterInfo; para4: JMDescriptor); overload;
    function clone(): JLObject; overload; virtual;
    function getDescriptor(): JMDescriptor; overload; virtual;
    procedure setDescriptor(para1: JMDescriptor); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JMOOpenMBeanConstructorInfoSupport = class external 'javax.management.openmbean' name 'OpenMBeanConstructorInfoSupport' (JMMBeanConstructorInfo, JMOOpenMBeanConstructorInfo)
  public
    constructor create(para1: JLString; para2: JLString; para3: Arr1JMOOpenMBeanParameterInfo); overload;
    constructor create(para1: JLString; para2: JLString; const para3: array of JMOOpenMBeanParameterInfo); overload;
    constructor create(para1: JLString; para2: JLString; para3: Arr1JMOOpenMBeanParameterInfo; para4: JMDescriptor); overload;
    constructor create(para1: JLString; para2: JLString; const para3: array of JMOOpenMBeanParameterInfo; para4: JMDescriptor); overload;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JMMModelMBeanNotificationInfo = class external 'javax.management.modelmbean' name 'ModelMBeanNotificationInfo' (JMMBeanNotificationInfo, JMDescriptorAccess)
  public
    constructor create(para1: Arr1JLString; para2: JLString; para3: JLString); overload;
    constructor create(const para1: array of JLString; para2: JLString; para3: JLString); overload;
    constructor create(para1: Arr1JLString; para2: JLString; para3: JLString; para4: JMDescriptor); overload;
    constructor create(const para1: array of JLString; para2: JLString; para3: JLString; para4: JMDescriptor); overload;
    constructor create(para1: JMMModelMBeanNotificationInfo); overload;
    function clone(): JLObject; overload; virtual;
    function getDescriptor(): JMDescriptor; overload; virtual;
    procedure setDescriptor(para1: JMDescriptor); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JMMModelMBeanOperationInfo = class external 'javax.management.modelmbean' name 'ModelMBeanOperationInfo' (JMMBeanOperationInfo, JMDescriptorAccess)
  public
    constructor create(para1: JLString; para2: JLRMethod); overload;
    constructor create(para1: JLString; para2: JLRMethod; para3: JMDescriptor); overload;
    constructor create(para1: JLString; para2: JLString; para3: Arr1JMMBeanParameterInfo; para4: JLString; para5: jint); overload;
    constructor create(para1: JLString; para2: JLString; const para3: array of JMMBeanParameterInfo; para4: JLString; para5: jint); overload;
    constructor create(para1: JLString; para2: JLString; para3: Arr1JMMBeanParameterInfo; para4: JLString; para5: jint; para6: JMDescriptor); overload;
    constructor create(para1: JLString; para2: JLString; const para3: array of JMMBeanParameterInfo; para4: JLString; para5: jint; para6: JMDescriptor); overload;
    constructor create(para1: JMMModelMBeanOperationInfo); overload;
    function clone(): JLObject; overload; virtual;
    function getDescriptor(): JMDescriptor; overload; virtual;
    procedure setDescriptor(para1: JMDescriptor); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JMOOpenMBeanOperationInfoSupport = class external 'javax.management.openmbean' name 'OpenMBeanOperationInfoSupport' (JMMBeanOperationInfo, JMOOpenMBeanOperationInfo)
  public
    constructor create(para1: JLString; para2: JLString; para3: Arr1JMOOpenMBeanParameterInfo; para4: JMOOpenType; para5: jint); overload;
    constructor create(para1: JLString; para2: JLString; const para3: array of JMOOpenMBeanParameterInfo; para4: JMOOpenType; para5: jint); overload;
    constructor create(para1: JLString; para2: JLString; para3: Arr1JMOOpenMBeanParameterInfo; para4: JMOOpenType; para5: jint; para6: JMDescriptor); overload;
    constructor create(para1: JLString; para2: JLString; const para3: array of JMOOpenMBeanParameterInfo; para4: JMOOpenType; para5: jint; para6: JMDescriptor); overload;
    function getReturnOpenType(): JMOOpenType; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JMOOpenMBeanParameterInfoSupport = class external 'javax.management.openmbean' name 'OpenMBeanParameterInfoSupport' (JMMBeanParameterInfo, JMOOpenMBeanParameterInfo)
  public
    constructor create(para1: JLString; para2: JLString; para3: JMOOpenType); overload;
    constructor create(para1: JLString; para2: JLString; para3: JMOOpenType; para4: JMDescriptor); overload;
    constructor create(para1: JLString; para2: JLString; para3: JMOOpenType; para4: JLObject); overload;  // throws javax.management.openmbean.OpenDataException
    constructor create(para1: JLString; para2: JLString; para3: JMOOpenType; para4: JLObject; para5: Arr1JLObject); overload;  // throws javax.management.openmbean.OpenDataException
    constructor create(para1: JLString; para2: JLString; para3: JMOOpenType; para4: JLObject; const para5: array of JLObject); overload;  // throws javax.management.openmbean.OpenDataException
    constructor create(para1: JLString; para2: JLString; para3: JMOOpenType; para4: JLObject; para5: JLComparable; para6: JLComparable); overload;  // throws javax.management.openmbean.OpenDataException
    function getOpenType(): JMOOpenType; overload; virtual;
    function getDefaultValue(): JLObject; overload; virtual;
    function getLegalValues(): JUSet; overload; virtual;
    function getMinValue(): JLComparable; overload; virtual;
    function getMaxValue(): JLComparable; overload; virtual;
    function hasDefaultValue(): jboolean; overload; virtual;
    function hasLegalValues(): jboolean; overload; virtual;
    function hasMinValue(): jboolean; overload; virtual;
    function hasMaxValue(): jboolean; overload; virtual;
    function isValue(para1: JLObject): jboolean; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JMMMonitor = class abstract external 'javax.management.monitor' name 'Monitor' (JMNotificationBroadcasterSupport, JMMMonitorMBean, JMMBeanRegistration)
  public
    type
      InnerObservedObject = class;
      Arr1InnerObservedObject = array of InnerObservedObject;
      Arr2InnerObservedObject = array of Arr1InnerObservedObject;
      Arr3InnerObservedObject = array of Arr2InnerObservedObject;
      InnerDaemonThreadFactory = class;
      Arr1InnerDaemonThreadFactory = array of InnerDaemonThreadFactory;
      Arr2InnerDaemonThreadFactory = array of Arr1InnerDaemonThreadFactory;
      Arr3InnerDaemonThreadFactory = array of Arr2InnerDaemonThreadFactory;
      InnerMonitorTask = class;
      Arr1InnerMonitorTask = array of InnerMonitorTask;
      Arr2InnerMonitorTask = array of Arr1InnerMonitorTask;
      Arr3InnerMonitorTask = array of Arr2InnerMonitorTask;
      InnerSchedulerTask = class;
      Arr1InnerSchedulerTask = array of InnerSchedulerTask;
      Arr2InnerSchedulerTask = array of Arr1InnerSchedulerTask;
      Arr3InnerSchedulerTask = array of Arr2InnerSchedulerTask;
      InnerNumericalType = class;
      Arr1InnerNumericalType = array of InnerNumericalType;
      Arr2InnerNumericalType = array of Arr1InnerNumericalType;
      Arr3InnerNumericalType = array of Arr2InnerNumericalType;
      InnerObservedObject = class external 'javax.management.monitor' name 'ObservedObject' 
      end;

      InnerDaemonThreadFactory = class external 'javax.management.monitor' name 'DaemonThreadFactory' 
      end;

      InnerMonitorTask = class external 'javax.management.monitor' name 'MonitorTask' 
      end;

      InnerSchedulerTask = class external 'javax.management.monitor' name 'SchedulerTask' 
      end;

      InnerNumericalType = class sealed external 'javax.management.monitor' name 'NumericalType' 
      end;

  strict protected
    const
      capacityIncrement = 16;
  strict protected
    var
      felementCount: jint; external name 'elementCount';
      falreadyNotified: jint deprecated; external name 'alreadyNotified';
      falreadyNotifieds: Arr1jint; external name 'alreadyNotifieds';
      fserver: JMMBeanServer; external name 'server';
  strict protected
    const
      RESET_FLAGS_ALREADY_NOTIFIED = 0;
      OBSERVED_OBJECT_ERROR_NOTIFIED = 1;
      OBSERVED_ATTRIBUTE_ERROR_NOTIFIED = 2;
      OBSERVED_ATTRIBUTE_TYPE_ERROR_NOTIFIED = 4;
      RUNTIME_ERROR_NOTIFIED = 8;
  strict protected
    var
      fdbgTag: JLString deprecated; external name 'dbgTag';
  public
    constructor create(); overload;
    function preRegister(para1: JMMBeanServer; para2: JMObjectName): JMObjectName; overload; virtual;  // throws java.lang.Exception
    procedure postRegister(para1: JLBoolean); overload; virtual;
    procedure preDeregister(); overload; virtual;  // throws java.lang.Exception
    procedure postDeregister(); overload; virtual;
    procedure start(); overload; virtual; abstract;
    procedure stop(); overload; virtual; abstract;
    function getObservedObject(): JMObjectName; overload; virtual;
    procedure setObservedObject(para1: JMObjectName); overload; virtual;  // throws java.lang.IllegalArgumentException
    procedure addObservedObject(para1: JMObjectName); overload; virtual;  // throws java.lang.IllegalArgumentException
    procedure removeObservedObject(para1: JMObjectName); overload; virtual;
    function containsObservedObject(para1: JMObjectName): jboolean; overload; virtual;
    function getObservedObjects(): Arr1JMObjectName; overload; virtual;
    function getObservedAttribute(): JLString; overload; virtual;
    procedure setObservedAttribute(para1: JLString); overload; virtual;  // throws java.lang.IllegalArgumentException
    function getGranularityPeriod(): jlong; overload; virtual;
    procedure setGranularityPeriod(para1: jlong); overload; virtual;  // throws java.lang.IllegalArgumentException
    function isActive(): jboolean; overload; virtual;
  end;

  JMRRelationService = class external 'javax.management.relation' name 'RelationService' (JMNotificationBroadcasterSupport, JMRRelationServiceMBean, JMMBeanRegistration, JMNotificationListener)
  public
    constructor create(para1: jboolean); overload;
    procedure isActive(); overload; virtual;  // throws javax.management.relation.RelationServiceNotRegisteredException
    function preRegister(para1: JMMBeanServer; para2: JMObjectName): JMObjectName; overload; virtual;  // throws java.lang.Exception
    procedure postRegister(para1: JLBoolean); overload; virtual;
    procedure preDeregister(); overload; virtual;  // throws java.lang.Exception
    procedure postDeregister(); overload; virtual;
    function getPurgeFlag(): jboolean; overload; virtual;
    procedure setPurgeFlag(para1: jboolean); overload; virtual;
    procedure createRelationType(para1: JLString; para2: Arr1JMRRoleInfo); overload; virtual;  // throws java.lang.IllegalArgumentException, javax.management.relation.InvalidRelationTypeException
    procedure createRelationType(para1: JLString; var para2: array of JMRRoleInfo); overload; virtual;  // throws java.lang.IllegalArgumentException, javax.management.relation.InvalidRelationTypeException
    procedure addRelationType(para1: JMRRelationType); overload; virtual;  // throws java.lang.IllegalArgumentException, javax.management.relation.InvalidRelationTypeException
    function getAllRelationTypeNames(): JUList; overload; virtual;
    function getRoleInfos(para1: JLString): JUList; overload; virtual;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationTypeNotFoundException
    function getRoleInfo(para1: JLString; para2: JLString): JMRRoleInfo; overload; virtual;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationTypeNotFoundException, javax.management.relation.RoleInfoNotFoundException
    procedure removeRelationType(para1: JLString); overload; virtual;  // throws javax.management.relation.RelationServiceNotRegisteredException, java.lang.IllegalArgumentException, javax.management.relation.RelationTypeNotFoundException
    procedure createRelation(para1: JLString; para2: JLString; para3: JMRRoleList); overload; virtual;  // throws javax.management.relation.RelationServiceNotRegisteredException, java.lang.IllegalArgumentException, javax.management.relation.RoleNotFoundException, javax.management.relation.InvalidRelationIdException, javax.management.relation.RelationTypeNotFoundException, javax.management.relation.InvalidRoleValueException
    procedure addRelation(para1: JMObjectName); overload; virtual;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationServiceNotRegisteredException, java.lang.NoSuchMethodException, javax.management.relation.InvalidRelationIdException, javax.management.InstanceNotFoundException, javax.management.relation.InvalidRelationServiceException, javax.management.relation.RelationTypeNotFoundException, javax.management.relation.RoleNotFoundException, javax.management.relation.InvalidRoleValueException
    function isRelationMBean(para1: JLString): JMObjectName; overload; virtual;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException
    function isRelation(para1: JMObjectName): JLString; overload; virtual;  // throws java.lang.IllegalArgumentException
    function hasRelation(para1: JLString): JLBoolean; overload; virtual;  // throws java.lang.IllegalArgumentException
    function getAllRelationIds(): JUList; overload; virtual;
    function checkRoleReading(para1: JLString; para2: JLString): JLInteger; overload; virtual;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationTypeNotFoundException
    function checkRoleWriting(para1: JMRRole; para2: JLString; para3: JLBoolean): JLInteger; overload; virtual;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationTypeNotFoundException
    procedure sendRelationCreationNotification(para1: JLString); overload; virtual;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException
    procedure sendRoleUpdateNotification(para1: JLString; para2: JMRRole; para3: JUList); overload; virtual;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException
    procedure sendRelationRemovalNotification(para1: JLString; para2: JUList); overload; virtual;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException
    procedure updateRoleMap(para1: JLString; para2: JMRRole; para3: JUList); overload; virtual;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationServiceNotRegisteredException, javax.management.relation.RelationNotFoundException
    procedure removeRelation(para1: JLString); overload; virtual;  // throws javax.management.relation.RelationServiceNotRegisteredException, java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException
    procedure purgeRelations(); overload; virtual;  // throws javax.management.relation.RelationServiceNotRegisteredException
    function findReferencingRelations(para1: JMObjectName; para2: JLString; para3: JLString): JUMap; overload; virtual;  // throws java.lang.IllegalArgumentException
    function findAssociatedMBeans(para1: JMObjectName; para2: JLString; para3: JLString): JUMap; overload; virtual;  // throws java.lang.IllegalArgumentException
    function findRelationsOfType(para1: JLString): JUList; overload; virtual;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationTypeNotFoundException
    function getRole(para1: JLString; para2: JLString): JUList; overload; virtual;  // throws javax.management.relation.RelationServiceNotRegisteredException, java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException, javax.management.relation.RoleNotFoundException
    function getRoles(para1: JLString; para2: Arr1JLString): JMRRoleResult; overload; virtual;  // throws javax.management.relation.RelationServiceNotRegisteredException, java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException
    function getRoles(para1: JLString; var para2: array of JLString): JMRRoleResult; overload; virtual;  // throws javax.management.relation.RelationServiceNotRegisteredException, java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException
    function getAllRoles(para1: JLString): JMRRoleResult; overload; virtual;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException, javax.management.relation.RelationServiceNotRegisteredException
    function getRoleCardinality(para1: JLString; para2: JLString): JLInteger; overload; virtual;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException, javax.management.relation.RoleNotFoundException
    procedure setRole(para1: JLString; para2: JMRRole); overload; virtual;  // throws javax.management.relation.RelationServiceNotRegisteredException, java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException, javax.management.relation.RoleNotFoundException, javax.management.relation.InvalidRoleValueException
    function setRoles(para1: JLString; para2: JMRRoleList): JMRRoleResult; overload; virtual;  // throws javax.management.relation.RelationServiceNotRegisteredException, java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException
    function getReferencedMBeans(para1: JLString): JUMap; overload; virtual;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException
    function getRelationTypeName(para1: JLString): JLString; overload; virtual;  // throws java.lang.IllegalArgumentException, javax.management.relation.RelationNotFoundException
    procedure handleNotification(para1: JMNotification; para2: JLObject); overload; virtual;
    function getNotificationInfo(): Arr1JMMBeanNotificationInfo; overload; virtual;
  end;

  JMRJMXConnectorServer = class abstract external 'javax.management.remote' name 'JMXConnectorServer' (JMNotificationBroadcasterSupport, JMRJMXConnectorServerMBean, JMMBeanRegistration, JMRJMXAddressable)
  public
    const
      AUTHENTICATOR = 'jmx.remote.authenticator';
  public
    constructor create(); overload;
    constructor create(para1: JMMBeanServer); overload;
    function getMBeanServer(): JMMBeanServer; overload; virtual;
    procedure setMBeanServerForwarder(para1: JMRMBeanServerForwarder); overload; virtual;
    function getConnectionIds(): Arr1JLString; overload; virtual;
    function toJMXConnector(para1: JUMap): JMRJMXConnector; overload; virtual;  // throws java.io.IOException
    function getNotificationInfo(): Arr1JMMBeanNotificationInfo; overload; virtual;
  strict protected
    procedure connectionOpened(para1: JLString; para2: JLString; para3: JLObject); overload; virtual;
    procedure connectionClosed(para1: JLString; para2: JLString; para3: JLObject); overload; virtual;
    procedure connectionFailed(para1: JLString; para2: JLString; para3: JLObject); overload; virtual;
  public
    function preRegister(para1: JMMBeanServer; para2: JMObjectName): JMObjectName; overload; virtual;
    procedure postRegister(para1: JLBoolean); overload; virtual;
    procedure preDeregister(); overload; virtual;  // throws java.lang.Exception
    procedure postDeregister(); overload; virtual;
  end;

  JMTTimer = class external 'javax.management.timer' name 'Timer' (JMNotificationBroadcasterSupport, JMTTimerMBean, JMMBeanRegistration)
  public
    const
      ONE_SECOND = jlong(1000);
      ONE_MINUTE = jlong(60000);
      ONE_HOUR = jlong(3600000);
      ONE_DAY = jlong(86400000);
      ONE_WEEK = jlong(604800000);
  public
    constructor create(); overload;
    function preRegister(para1: JMMBeanServer; para2: JMObjectName): JMObjectName; overload; virtual;  // throws java.lang.Exception
    procedure postRegister(para1: JLBoolean); overload; virtual;
    procedure preDeregister(); overload; virtual;  // throws java.lang.Exception
    procedure postDeregister(); overload; virtual;
    function getNotificationInfo(): Arr1JMMBeanNotificationInfo; overload; virtual;
    procedure start(); overload; virtual;
    procedure stop(); overload; virtual;
    function addNotification(para1: JLString; para2: JLString; para3: JLObject; para4: JUDate; para5: jlong; para6: jlong; para7: jboolean): JLInteger; overload; virtual;  // throws java.lang.IllegalArgumentException
    function addNotification(para1: JLString; para2: JLString; para3: JLObject; para4: JUDate; para5: jlong; para6: jlong): JLInteger; overload; virtual;  // throws java.lang.IllegalArgumentException
    function addNotification(para1: JLString; para2: JLString; para3: JLObject; para4: JUDate; para5: jlong): JLInteger; overload; virtual;  // throws java.lang.IllegalArgumentException
    function addNotification(para1: JLString; para2: JLString; para3: JLObject; para4: JUDate): JLInteger; overload; virtual;  // throws java.lang.IllegalArgumentException
    procedure removeNotification(para1: JLInteger); overload; virtual;  // throws javax.management.InstanceNotFoundException
    procedure removeNotifications(para1: JLString); overload; virtual;  // throws javax.management.InstanceNotFoundException
    procedure removeAllNotifications(); overload; virtual;
    function getNbNotifications(): jint; overload; virtual;
    function getAllNotificationIDs(): JUVector; overload; virtual;
    function getNotificationIDs(para1: JLString): JUVector; overload; virtual;
    function getNotificationType(para1: JLInteger): JLString; overload; virtual;
    function getNotificationMessage(para1: JLInteger): JLString; overload; virtual;
    function getNotificationUserData(para1: JLInteger): JLObject; overload; virtual;
    function getDate(para1: JLInteger): JUDate; overload; virtual;
    function getPeriod(para1: JLInteger): JLLong; overload; virtual;
    function getNbOccurences(para1: JLInteger): JLLong; overload; virtual;
    function getFixedRate(para1: JLInteger): JLBoolean; overload; virtual;
    function getSendPastNotifications(): jboolean; overload; virtual;
    procedure setSendPastNotifications(para1: jboolean); overload; virtual;
    function isActive(): jboolean; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
  end;

  JMMRequiredModelMBean = class external 'javax.management.modelmbean' name 'RequiredModelMBean' (JLObject, JMMModelMBean, JMMBeanRegistration, JMNotificationEmitter)
  public
    constructor create(); overload;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
    constructor create(para1: JMMModelMBeanInfo); overload;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
    procedure setModelMBeanInfo(para1: JMMModelMBeanInfo); overload; virtual;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
    procedure setManagedResource(para1: JLObject; para2: JLString); overload; virtual;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException, javax.management.InstanceNotFoundException, javax.management.modelmbean.InvalidTargetObjectTypeException
    procedure load(); overload; virtual;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException, javax.management.InstanceNotFoundException
    procedure store(); overload; virtual;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException, javax.management.InstanceNotFoundException
    function getMBeanInfo(): JMMBeanInfo; overload; virtual;
    function invoke(para1: JLString; para2: Arr1JLObject; para3: Arr1JLString): JLObject; overload; virtual;  // throws javax.management.MBeanException, javax.management.ReflectionException
    function invoke(para1: JLString; var para2: array of JLObject; var para3: array of JLString): JLObject; overload; virtual;  // throws javax.management.MBeanException, javax.management.ReflectionException
    function getAttribute(para1: JLString): JLObject; overload; virtual;  // throws javax.management.AttributeNotFoundException, javax.management.MBeanException, javax.management.ReflectionException
    function getAttributes(para1: Arr1JLString): JMAttributeList; overload; virtual;
    function getAttributes(var para1: array of JLString): JMAttributeList; overload; virtual;
    procedure setAttribute(para1: JMAttribute); overload; virtual;  // throws javax.management.AttributeNotFoundException, javax.management.InvalidAttributeValueException, javax.management.MBeanException, javax.management.ReflectionException
    function setAttributes(para1: JMAttributeList): JMAttributeList; overload; virtual;
    procedure addNotificationListener(para1: JMNotificationListener; para2: JMNotificationFilter; para3: JLObject); overload; virtual;  // throws java.lang.IllegalArgumentException
    procedure removeNotificationListener(para1: JMNotificationListener); overload; virtual;  // throws javax.management.ListenerNotFoundException
    procedure removeNotificationListener(para1: JMNotificationListener; para2: JMNotificationFilter; para3: JLObject); overload; virtual;  // throws javax.management.ListenerNotFoundException
    procedure sendNotification(para1: JMNotification); overload; virtual;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
    procedure sendNotification(para1: JLString); overload; virtual;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
    function getNotificationInfo(): Arr1JMMBeanNotificationInfo; overload; virtual;
    procedure addAttributeChangeNotificationListener(para1: JMNotificationListener; para2: JLString; para3: JLObject); overload; virtual;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException, java.lang.IllegalArgumentException
    procedure removeAttributeChangeNotificationListener(para1: JMNotificationListener; para2: JLString); overload; virtual;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException, javax.management.ListenerNotFoundException
    procedure sendAttributeChangeNotification(para1: JMAttributeChangeNotification); overload; virtual;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
    procedure sendAttributeChangeNotification(para1: JMAttribute; para2: JMAttribute); overload; virtual;  // throws javax.management.MBeanException, javax.management.RuntimeOperationsException
  strict protected
    function getClassLoaderRepository(): JMLClassLoaderRepository; overload; virtual;
  public
    function preRegister(para1: JMMBeanServer; para2: JMObjectName): JMObjectName; overload; virtual;  // throws java.lang.Exception
    procedure postRegister(para1: JLBoolean); overload; virtual;
    procedure preDeregister(); overload; virtual;  // throws java.lang.Exception
    procedure postDeregister(); overload; virtual;
  end;

  JNLInitialLdapContext = class external 'javax.naming.ldap' name 'InitialLdapContext' (JNDInitialDirContext, JNLLdapContext)
  public
    constructor create(); overload;  // throws javax.naming.NamingException
    constructor create(para1: JUHashtable; para2: Arr1JNLControl); overload;  // throws javax.naming.NamingException
    constructor create(para1: JUHashtable; const para2: array of JNLControl); overload;  // throws javax.naming.NamingException
    function extendedOperation(para1: JNLExtendedRequest): JNLExtendedResponse; overload; virtual;  // throws javax.naming.NamingException
    function newInstance(para1: Arr1JNLControl): JNLLdapContext; overload; virtual;  // throws javax.naming.NamingException
    function newInstance(var para1: array of JNLControl): JNLLdapContext; overload; virtual;  // throws javax.naming.NamingException
    procedure reconnect(para1: Arr1JNLControl); overload; virtual;  // throws javax.naming.NamingException
    procedure reconnect(var para1: array of JNLControl); overload; virtual;  // throws javax.naming.NamingException
    function getConnectControls(): Arr1JNLControl; overload; virtual;  // throws javax.naming.NamingException
    procedure setRequestControls(para1: Arr1JNLControl); overload; virtual;  // throws javax.naming.NamingException
    procedure setRequestControls(var para1: array of JNLControl); overload; virtual;  // throws javax.naming.NamingException
    function getRequestControls(): Arr1JNLControl; overload; virtual;  // throws javax.naming.NamingException
    function getResponseControls(): Arr1JNLControl; overload; virtual;  // throws javax.naming.NamingException
  end;

  JSSClip = interface external 'javax.sound.sampled' name 'Clip' (JSSDataLine)
    const
      LOOP_CONTINUOUSLY = -1;
    procedure open(para1: JSSAudioFormat; para2: Arr1jbyte; para3: jint; para4: jint); overload;  // throws javax.sound.sampled.LineUnavailableException
    procedure open(para1: JSSAudioFormat; var para2: array of jbyte; para3: jint; para4: jint); overload;  // throws javax.sound.sampled.LineUnavailableException
    procedure open(para1: JSSAudioInputStream); overload;  // throws javax.sound.sampled.LineUnavailableException, java.io.IOException
    function getFrameLength(): jint; overload;
    function getMicrosecondLength(): jlong; overload;
    procedure setFramePosition(para1: jint); overload;
    procedure setMicrosecondPosition(para1: jlong); overload;
    procedure setLoopPoints(para1: jint; para2: jint); overload;
    procedure loop(para1: jint); overload;
  end;

  JSSSourceDataLine = interface external 'javax.sound.sampled' name 'SourceDataLine' (JSSDataLine)
    procedure open(para1: JSSAudioFormat; para2: jint); overload;  // throws javax.sound.sampled.LineUnavailableException
    procedure open(para1: JSSAudioFormat); overload;  // throws javax.sound.sampled.LineUnavailableException
    function write(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload;
    function write(var para1: array of jbyte; para2: jint; para3: jint): jint; overload;
  end;

  JSSTargetDataLine = interface external 'javax.sound.sampled' name 'TargetDataLine' (JSSDataLine)
    procedure open(para1: JSSAudioFormat; para2: jint); overload;  // throws javax.sound.sampled.LineUnavailableException
    procedure open(para1: JSSAudioFormat); overload;  // throws javax.sound.sampled.LineUnavailableException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload;
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload;
  end;

  JSSAudioSystem = class external 'javax.sound.sampled' name 'AudioSystem' (JLObject)
  public
    const
      NOT_SPECIFIED = -1;
  public
    class function getMixerInfo(): JSSMixer.Arr1InnerInfo; static; overload;
    class function getMixer(para1: JSSMixer.InnerInfo): JSSMixer; static; overload;
    class function getSourceLineInfo(para1: JSSLine.InnerInfo): JSSLine.Arr1InnerInfo; static; overload;
    class function getTargetLineInfo(para1: JSSLine.InnerInfo): JSSLine.Arr1InnerInfo; static; overload;
    class function isLineSupported(para1: JSSLine.InnerInfo): jboolean; static; overload;
    class function getLine(para1: JSSLine.InnerInfo): JSSLine; static; overload;  // throws javax.sound.sampled.LineUnavailableException
    class function getClip(): JSSClip; static; overload;  // throws javax.sound.sampled.LineUnavailableException
    class function getClip(para1: JSSMixer.InnerInfo): JSSClip; static; overload;  // throws javax.sound.sampled.LineUnavailableException
    class function getSourceDataLine(para1: JSSAudioFormat): JSSSourceDataLine; static; overload;  // throws javax.sound.sampled.LineUnavailableException
    class function getSourceDataLine(para1: JSSAudioFormat; para2: JSSMixer.InnerInfo): JSSSourceDataLine; static; overload;  // throws javax.sound.sampled.LineUnavailableException
    class function getTargetDataLine(para1: JSSAudioFormat): JSSTargetDataLine; static; overload;  // throws javax.sound.sampled.LineUnavailableException
    class function getTargetDataLine(para1: JSSAudioFormat; para2: JSSMixer.InnerInfo): JSSTargetDataLine; static; overload;  // throws javax.sound.sampled.LineUnavailableException
    class function getTargetEncodings(para1: JSSAudioFormat.InnerEncoding): JSSAudioFormat.Arr1InnerEncoding; static; overload;
    class function getTargetEncodings(para1: JSSAudioFormat): JSSAudioFormat.Arr1InnerEncoding; static; overload;
    class function isConversionSupported(para1: JSSAudioFormat.InnerEncoding; para2: JSSAudioFormat): jboolean; static; overload;
    class function getAudioInputStream(para1: JSSAudioFormat.InnerEncoding; para2: JSSAudioInputStream): JSSAudioInputStream; static; overload;
    class function getTargetFormats(para1: JSSAudioFormat.InnerEncoding; para2: JSSAudioFormat): Arr1JSSAudioFormat; static; overload;
    class function isConversionSupported(para1: JSSAudioFormat; para2: JSSAudioFormat): jboolean; static; overload;
    class function getAudioInputStream(para1: JSSAudioFormat; para2: JSSAudioInputStream): JSSAudioInputStream; static; overload;
    class function getAudioFileFormat(para1: JIInputStream): JSSAudioFileFormat; static; overload;  // throws javax.sound.sampled.UnsupportedAudioFileException, java.io.IOException
    class function getAudioFileFormat(para1: JNURL): JSSAudioFileFormat; static; overload;  // throws javax.sound.sampled.UnsupportedAudioFileException, java.io.IOException
    class function getAudioFileFormat(para1: JIFile): JSSAudioFileFormat; static; overload;  // throws javax.sound.sampled.UnsupportedAudioFileException, java.io.IOException
    class function getAudioInputStream(para1: JIInputStream): JSSAudioInputStream; static; overload;  // throws javax.sound.sampled.UnsupportedAudioFileException, java.io.IOException
    class function getAudioInputStream(para1: JNURL): JSSAudioInputStream; static; overload;  // throws javax.sound.sampled.UnsupportedAudioFileException, java.io.IOException
    class function getAudioInputStream(para1: JIFile): JSSAudioInputStream; static; overload;  // throws javax.sound.sampled.UnsupportedAudioFileException, java.io.IOException
    class function getAudioFileTypes(): JSSAudioFileFormat.Arr1InnerType; static; overload;
    class function isFileTypeSupported(para1: JSSAudioFileFormat.InnerType): jboolean; static; overload;
    class function getAudioFileTypes(para1: JSSAudioInputStream): JSSAudioFileFormat.Arr1InnerType; static; overload;
    class function isFileTypeSupported(para1: JSSAudioFileFormat.InnerType; para2: JSSAudioInputStream): jboolean; static; overload;
    class function write(para1: JSSAudioInputStream; para2: JSSAudioFileFormat.InnerType; para3: JIOutputStream): jint; static; overload;  // throws java.io.IOException
    class function write(para1: JSSAudioInputStream; para2: JSSAudioFileFormat.InnerType; para3: JIFile): jint; static; overload;  // throws java.io.IOException
  end;

  JSSSMixerProvider = class abstract external 'javax.sound.sampled.spi' name 'MixerProvider' (JLObject)
  public
    constructor create(); overload;
    function isMixerSupported(para1: JSSMixer.InnerInfo): jboolean; overload; virtual;
    function getMixerInfo(): JSSMixer.Arr1InnerInfo; overload; virtual; abstract;
    function getMixer(para1: JSSMixer.InnerInfo): JSSMixer; overload; virtual; abstract;
  end;

  JSTHOptionListModel = class external 'javax.swing.text.html' name 'OptionListModel' (JSDefaultListModel, JSListSelectionModel, JISerializable)
  strict protected
    var
      flistenerList: JSEEventListenerList; external name 'listenerList';
      fleadAnchorNotificationEnabled: jboolean; external name 'leadAnchorNotificationEnabled';
  public
    function getMinSelectionIndex(): jint; overload; virtual;
    function getMaxSelectionIndex(): jint; overload; virtual;
    function getValueIsAdjusting(): jboolean; overload; virtual;
    function getSelectionMode(): jint; overload; virtual;
    procedure setSelectionMode(para1: jint); overload; virtual;
    function isSelectedIndex(para1: jint): jboolean; overload; virtual;
    function isSelectionEmpty(): jboolean; overload; virtual;
    procedure addListSelectionListener(para1: JSEListSelectionListener); overload; virtual;
    procedure removeListSelectionListener(para1: JSEListSelectionListener); overload; virtual;
    function getListSelectionListeners(): Arr1JSEListSelectionListener; overload; virtual;
  strict protected
    procedure fireValueChanged(para1: jboolean); overload; virtual;
    procedure fireValueChanged(para1: jint; para2: jint); overload; virtual;
    procedure fireValueChanged(para1: jint; para2: jint; para3: jboolean); overload; virtual;
  public
    procedure setLeadAnchorNotificationEnabled(para1: jboolean); overload; virtual;
    function isLeadAnchorNotificationEnabled(): jboolean; overload; virtual;
    procedure clearSelection(); overload; virtual;
    procedure setSelectionInterval(para1: jint; para2: jint); overload; virtual;
    procedure addSelectionInterval(para1: jint; para2: jint); overload; virtual;
    procedure removeSelectionInterval(para1: jint; para2: jint); overload; virtual;
    procedure insertIndexInterval(para1: jint; para2: jint; para3: jboolean); overload; virtual;
    procedure removeIndexInterval(para1: jint; para2: jint); overload; virtual;
    procedure setValueIsAdjusting(para1: jboolean); overload; virtual;
    function toString(): JLString; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
    function getAnchorSelectionIndex(): jint; overload; virtual;
    function getLeadSelectionIndex(): jint; overload; virtual;
    procedure setAnchorSelectionIndex(para1: jint); overload; virtual;
    procedure setLeadSelectionIndex(para1: jint); overload; virtual;
    procedure setInitialSelection(para1: jint); overload; virtual;
    function getInitialSelection(): JUBitSet; overload; virtual;
  end;

  JSDefaultComboBoxModel = class external 'javax.swing' name 'DefaultComboBoxModel' (JSAbstractListModel, JSMutableComboBoxModel, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: Arr1JLObject); overload;
    constructor create(const para1: array of JLObject); overload;
    constructor create(para1: JUVector); overload;
    procedure setSelectedItem(para1: JLObject); overload; virtual;
    function getSelectedItem(): JLObject; overload; virtual;
    function getSize(): jint; overload; virtual;
    function getElementAt(para1: jint): JLObject; overload; virtual;
    function getIndexOf(para1: JLObject): jint; overload; virtual;
    procedure addElement(para1: JLObject); overload; virtual;
    procedure insertElementAt(para1: JLObject; para2: jint); overload; virtual;
    procedure removeElementAt(para1: jint); overload; virtual;
    procedure removeElement(para1: JLObject); overload; virtual;
    procedure removeAllElements(); overload; virtual;
  end;

  JSTHEditableView = class external 'javax.swing.text.html' name 'EditableView' (JSTComponentView)
  public
    function getMinimumSpan(para1: jint): jfloat; overload; virtual;
    function getPreferredSpan(para1: jint): jfloat; overload; virtual;
    function getMaximumSpan(para1: jint): jfloat; overload; virtual;
    procedure paint(para1: JAGraphics; para2: JAShape); overload; virtual;
    procedure setParent(para1: JSTView); overload; virtual;
    function isVisible(): jboolean; overload; virtual;
  end;

  JSTHFormView = class external 'javax.swing.text.html' name 'FormView' (JSTComponentView, JAEActionListener)
  public
    type
      InnerBrowseFileAction = class;
      Arr1InnerBrowseFileAction = array of InnerBrowseFileAction;
      Arr2InnerBrowseFileAction = array of Arr1InnerBrowseFileAction;
      Arr3InnerBrowseFileAction = array of Arr2InnerBrowseFileAction;
      InnerBrowseFileAction = class external 'javax.swing.text.html' name 'BrowseFileAction' 
      end;

  public
    type
      InnerMouseEventListener = class;
      Arr1InnerMouseEventListener = array of InnerMouseEventListener;
      Arr2InnerMouseEventListener = array of Arr1InnerMouseEventListener;
      Arr3InnerMouseEventListener = array of Arr2InnerMouseEventListener;
      InnerMouseEventListener = class external 'javax.swing.text.html' name 'MouseEventListener' 
      end;

  public
    final class var
      fSUBMIT: JLString deprecated; external name 'SUBMIT';
      fRESET: JLString deprecated; external name 'RESET';
  public
    constructor create(para1: JSTElement); overload;
  strict protected
    function createComponent(): JAComponent; overload; virtual;
  public
    function getMaximumSpan(para1: jint): jfloat; overload; virtual;
    procedure actionPerformed(para1: JAEActionEvent); overload; virtual;
  strict protected
    procedure submitData(para1: JLString); overload; virtual;
    procedure imageSubmit(para1: JLString); overload; virtual;
  end;

  JSTHFrameView = class external 'javax.swing.text.html' name 'FrameView' (JSTComponentView, JSEHyperlinkListener)
  public
    type
      InnerFrameEditorPane = class;
      Arr1InnerFrameEditorPane = array of InnerFrameEditorPane;
      Arr2InnerFrameEditorPane = array of Arr1InnerFrameEditorPane;
      Arr3InnerFrameEditorPane = array of Arr2InnerFrameEditorPane;
      InnerFrameEditorPane = class external 'javax.swing.text.html' name 'FrameEditorPane' 
      end;

  public
    constructor create(para1: JSTElement); overload;
  strict protected
    function createComponent(): JAComponent; overload; virtual;
  public
    procedure setParent(para1: JSTView); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JAShape); overload; virtual;
    procedure hyperlinkUpdate(para1: JSEHyperlinkEvent); overload; virtual;
    procedure changedUpdate(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
    function getMinimumSpan(para1: jint): jfloat; overload; virtual;
    function getMaximumSpan(para1: jint): jfloat; overload; virtual;
  end;

  JSTHIsindexView = class external 'javax.swing.text.html' name 'IsindexView' (JSTComponentView, JAEActionListener)
  public
    constructor create(para1: JSTElement); overload;
    function createComponent(): JAComponent; overload; virtual;
    procedure actionPerformed(para1: JAEActionEvent); overload; virtual;
  end;

  JSTHObjectView = class external 'javax.swing.text.html' name 'ObjectView' (JSTComponentView)
  public
    constructor create(para1: JSTElement); overload;
  strict protected
    function createComponent(): JAComponent; overload; virtual;
  end;

  JSTBoxView = class external 'javax.swing.text' name 'BoxView' (JSTCompositeView)
  public
    constructor create(para1: JSTElement; para2: jint); overload;
    function getAxis(): jint; overload; virtual;
    procedure setAxis(para1: jint); overload; virtual;
    procedure layoutChanged(para1: jint); overload; virtual;
  strict protected
    function isLayoutValid(para1: jint): jboolean; overload; virtual;
    procedure paintChild(para1: JAGraphics; para2: JARectangle; para3: jint); overload; virtual;
  public
    procedure replace(para1: jint; para2: jint; para3: Arr1JSTView); overload; virtual;
    procedure replace(para1: jint; para2: jint; var para3: array of JSTView); overload; virtual;
  strict protected
    procedure forwardUpdate(para1: JSEDocumentEvent.InnerElementChange; para2: JSEDocumentEvent; para3: JAShape; para4: JSTViewFactory); overload; virtual;
  public
    procedure preferenceChanged(para1: JSTView; para2: jboolean; para3: jboolean); overload; virtual;
    function getResizeWeight(para1: jint): jint; overload; virtual;
    procedure setSize(para1: jfloat; para2: jfloat); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JAShape); overload; virtual;
    function getChildAllocation(para1: jint; para2: JAShape): JAShape; overload; virtual;
    function modelToView(para1: jint; para2: JAShape; para3: JSTPosition.InnerBias): JAShape; overload; virtual;  // throws javax.swing.text.BadLocationException
    function viewToModel(para1: jfloat; para2: jfloat; para3: JAShape; para4: JSTPosition.Arr1InnerBias): jint; overload; virtual;
    function viewToModel(para1: jfloat; para2: jfloat; para3: JAShape; var para4: array of JSTPosition.InnerBias): jint; overload; virtual;
    function getAlignment(para1: jint): jfloat; overload; virtual;
    function getPreferredSpan(para1: jint): jfloat; overload; virtual;
    function getMinimumSpan(para1: jint): jfloat; overload; virtual;
    function getMaximumSpan(para1: jint): jfloat; overload; virtual;
  strict protected
    function isAllocationValid(): jboolean; overload; virtual;
    function isBefore(para1: jint; para2: jint; para3: JARectangle): jboolean; overload; virtual;
    function isAfter(para1: jint; para2: jint; para3: JARectangle): jboolean; overload; virtual;
    function getViewAtPoint(para1: jint; para2: jint; para3: JARectangle): JSTView; overload; virtual;
    procedure childAllocation(para1: jint; para2: JARectangle); overload; virtual;
    procedure layout(para1: jint; para2: jint); overload; virtual;
  public
    function getWidth(): jint; overload; virtual;
    function getHeight(): jint; overload; virtual;
  strict protected
    procedure layoutMajorAxis(para1: jint; para2: jint; para3: Arr1jint; para4: Arr1jint); overload; virtual;
    procedure layoutMajorAxis(para1: jint; para2: jint; var para3: array of jint; var para4: array of jint); overload; virtual;
    procedure layoutMinorAxis(para1: jint; para2: jint; para3: Arr1jint; para4: Arr1jint); overload; virtual;
    procedure layoutMinorAxis(para1: jint; para2: jint; var para3: array of jint; var para4: array of jint); overload; virtual;
    function calculateMajorAxisRequirements(para1: jint; para2: JSSizeRequirements): JSSizeRequirements; overload; virtual;
    function calculateMinorAxisRequirements(para1: jint; para2: JSSizeRequirements): JSSizeRequirements; overload; virtual;
    procedure baselineLayout(para1: jint; para2: jint; para3: Arr1jint; para4: Arr1jint); overload; virtual;
    procedure baselineLayout(para1: jint; para2: jint; var para3: array of jint; var para4: array of jint); overload; virtual;
    function baselineRequirements(para1: jint; para2: JSSizeRequirements): JSSizeRequirements; overload; virtual;
    function getOffset(para1: jint; para2: jint): jint; overload; virtual;
    function getSpan(para1: jint; para2: jint): jint; overload; virtual;
    function flipEastAndWestAtEnds(para1: jint; para2: JSTPosition.InnerBias): jboolean; overload; virtual;
  end;

  JSTGlyphPainter1 = class external 'javax.swing.text' name 'GlyphPainter1' (JSTGlyphView.InnerGlyphPainter)
  public
    function getSpan(para1: JSTGlyphView; para2: jint; para3: jint; para4: JSTTabExpander; para5: jfloat): jfloat; overload; virtual;
    function getHeight(para1: JSTGlyphView): jfloat; overload; virtual;
    function getAscent(para1: JSTGlyphView): jfloat; overload; virtual;
    function getDescent(para1: JSTGlyphView): jfloat; overload; virtual;
    procedure paint(para1: JSTGlyphView; para2: JAGraphics; para3: JAShape; para4: jint; para5: jint); overload; virtual;
    function modelToView(para1: JSTGlyphView; para2: jint; para3: JSTPosition.InnerBias; para4: JAShape): JAShape; overload; virtual;  // throws javax.swing.text.BadLocationException
    function viewToModel(para1: JSTGlyphView; para2: jfloat; para3: jfloat; para4: JAShape; para5: JSTPosition.Arr1InnerBias): jint; overload; virtual;
    function viewToModel(para1: JSTGlyphView; para2: jfloat; para3: jfloat; para4: JAShape; var para5: array of JSTPosition.InnerBias): jint; overload; virtual;
    function getBoundedPosition(para1: JSTGlyphView; para2: jint; para3: jfloat; para4: jfloat): jint; overload; virtual;
  end;

  JSTGlyphPainter2 = class external 'javax.swing.text' name 'GlyphPainter2' (JSTGlyphView.InnerGlyphPainter)
  public
    constructor create(para1: JAFTextLayout); overload;
    function getPainter(para1: JSTGlyphView; para2: jint; para3: jint): JSTGlyphView.InnerGlyphPainter; overload; virtual;
    function getSpan(para1: JSTGlyphView; para2: jint; para3: jint; para4: JSTTabExpander; para5: jfloat): jfloat; overload; virtual;
    function getHeight(para1: JSTGlyphView): jfloat; overload; virtual;
    function getAscent(para1: JSTGlyphView): jfloat; overload; virtual;
    function getDescent(para1: JSTGlyphView): jfloat; overload; virtual;
    procedure paint(para1: JSTGlyphView; para2: JAGraphics; para3: JAShape; para4: jint; para5: jint); overload; virtual;
    function modelToView(para1: JSTGlyphView; para2: jint; para3: JSTPosition.InnerBias; para4: JAShape): JAShape; overload; virtual;  // throws javax.swing.text.BadLocationException
    function viewToModel(para1: JSTGlyphView; para2: jfloat; para3: jfloat; para4: JAShape; para5: JSTPosition.Arr1InnerBias): jint; overload; virtual;
    function viewToModel(para1: JSTGlyphView; para2: jfloat; para3: jfloat; para4: JAShape; var para5: array of JSTPosition.InnerBias): jint; overload; virtual;
    function getBoundedPosition(para1: JSTGlyphView; para2: jint; para3: jfloat; para4: jfloat): jint; overload; virtual;
    function getNextVisualPositionFrom(para1: JSTGlyphView; para2: jint; para3: JSTPosition.InnerBias; para4: JAShape; para5: jint; para6: JSTPosition.Arr1InnerBias): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
    function getNextVisualPositionFrom(para1: JSTGlyphView; para2: jint; para3: JSTPosition.InnerBias; para4: JAShape; para5: jint; var para6: array of JSTPosition.InnerBias): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
  end;

  JSTLabelView = class external 'javax.swing.text' name 'LabelView' (JSTGlyphView, JSTTabableView)
  public
    constructor create(para1: JSTElement); overload;
  strict protected
    procedure setUnderline(para1: jboolean); overload; virtual;
    procedure setStrikeThrough(para1: jboolean); overload; virtual;
    procedure setSuperscript(para1: jboolean); overload; virtual;
    procedure setSubscript(para1: jboolean); overload; virtual;
    procedure setBackground(para1: JAColor); overload; virtual;
    procedure setPropertiesFromAttributes(); overload; virtual;
    function getFontMetrics(): JAFontMetrics; overload; virtual;
  public
    function getBackground(): JAColor; overload; virtual;
    function getForeground(): JAColor; overload; virtual;
    function getFont(): JAFont; overload; virtual;
    function isUnderline(): jboolean; overload; virtual;
    function isStrikeThrough(): jboolean; overload; virtual;
    function isSubscript(): jboolean; overload; virtual;
    function isSuperscript(): jboolean; overload; virtual;
    procedure changedUpdate(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
  end;

  JSTFieldView = class external 'javax.swing.text' name 'FieldView' (JSTPlainView)
  public
    constructor create(para1: JSTElement); overload;
  strict protected
    function getFontMetrics(): JAFontMetrics; overload; virtual;
    function adjustAllocation(para1: JAShape): JAShape; overload; virtual;
  public
    procedure paint(para1: JAGraphics; para2: JAShape); overload; virtual;
    function getPreferredSpan(para1: jint): jfloat; overload; virtual;
    function getResizeWeight(para1: jint): jint; overload; virtual;
    function modelToView(para1: jint; para2: JAShape; para3: JSTPosition.InnerBias): JAShape; overload; virtual;  // throws javax.swing.text.BadLocationException
    function viewToModel(para1: jfloat; para2: jfloat; para3: JAShape; para4: JSTPosition.Arr1InnerBias): jint; overload; virtual;
    function viewToModel(para1: jfloat; para2: jfloat; para3: JAShape; var para4: array of JSTPosition.InnerBias): jint; overload; virtual;
    procedure insertUpdate(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
    procedure removeUpdate(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
  end;

  JSTDefaultStyledDocument = class external 'javax.swing.text' name 'DefaultStyledDocument' (JSTAbstractDocument, JSTStyledDocument)
  public
    type
      InnerAbstractChangeHandler = class;
      Arr1InnerAbstractChangeHandler = array of InnerAbstractChangeHandler;
      Arr2InnerAbstractChangeHandler = array of Arr1InnerAbstractChangeHandler;
      Arr3InnerAbstractChangeHandler = array of Arr2InnerAbstractChangeHandler;
      InnerChangeUpdateRunnable = class;
      Arr1InnerChangeUpdateRunnable = array of InnerChangeUpdateRunnable;
      Arr2InnerChangeUpdateRunnable = array of Arr1InnerChangeUpdateRunnable;
      Arr3InnerChangeUpdateRunnable = array of Arr2InnerChangeUpdateRunnable;
      InnerStyleChangeHandler = class;
      Arr1InnerStyleChangeHandler = array of InnerStyleChangeHandler;
      Arr2InnerStyleChangeHandler = array of Arr1InnerStyleChangeHandler;
      Arr3InnerStyleChangeHandler = array of Arr2InnerStyleChangeHandler;
      InnerStyleContextChangeHandler = class;
      Arr1InnerStyleContextChangeHandler = array of InnerStyleContextChangeHandler;
      Arr2InnerStyleContextChangeHandler = array of Arr1InnerStyleContextChangeHandler;
      Arr3InnerStyleContextChangeHandler = array of Arr2InnerStyleContextChangeHandler;
      InnerStyleChangeUndoableEdit = class;
      Arr1InnerStyleChangeUndoableEdit = array of InnerStyleChangeUndoableEdit;
      Arr2InnerStyleChangeUndoableEdit = array of Arr1InnerStyleChangeUndoableEdit;
      Arr3InnerStyleChangeUndoableEdit = array of Arr2InnerStyleChangeUndoableEdit;
      InnerAbstractChangeHandler = class abstract external 'javax.swing.text' name 'AbstractChangeHandler' 
      public
        type
          InnerDocReference = class;
          Arr1InnerDocReference = array of InnerDocReference;
          Arr2InnerDocReference = array of Arr1InnerDocReference;
          Arr3InnerDocReference = array of Arr2InnerDocReference;
          InnerDocReference = class external 'javax.swing.text' name 'DocReference' 
          end;

      end;

      InnerChangeUpdateRunnable = class external 'javax.swing.text' name 'ChangeUpdateRunnable' 
      end;

      InnerStyleChangeHandler = class external 'javax.swing.text' name 'StyleChangeHandler' 
      end;

      InnerStyleContextChangeHandler = class external 'javax.swing.text' name 'StyleContextChangeHandler' 
      end;

      InnerStyleChangeUndoableEdit = class external 'javax.swing.text' name 'StyleChangeUndoableEdit' 
      end;

  public
    type
      InnerElementSpec = class;
      Arr1InnerElementSpec = array of InnerElementSpec;
      Arr2InnerElementSpec = array of Arr1InnerElementSpec;
      Arr3InnerElementSpec = array of Arr2InnerElementSpec;
      InnerAttributeUndoableEdit = class;
      Arr1InnerAttributeUndoableEdit = array of InnerAttributeUndoableEdit;
      Arr2InnerAttributeUndoableEdit = array of Arr1InnerAttributeUndoableEdit;
      Arr3InnerAttributeUndoableEdit = array of Arr2InnerAttributeUndoableEdit;
      InnerSectionElement = class;
      Arr1InnerSectionElement = array of InnerSectionElement;
      Arr2InnerSectionElement = array of Arr1InnerSectionElement;
      Arr3InnerSectionElement = array of Arr2InnerSectionElement;
      InnerElementBuffer = class;
      Arr1InnerElementBuffer = array of InnerElementBuffer;
      Arr2InnerElementBuffer = array of Arr1InnerElementBuffer;
      Arr3InnerElementBuffer = array of Arr2InnerElementBuffer;
      InnerElementSpec = class external 'javax.swing.text' name 'ElementSpec' (JLObject)
      public
        const
          StartTagType = 1;
          EndTagType = 2;
          ContentType = 3;
          JoinPreviousDirection = 4;
          JoinNextDirection = 5;
          OriginateDirection = 6;
          JoinFractureDirection = 7;
      public
        constructor create(para1: JSTAttributeSet; para2: jshort); overload;
        constructor create(para1: JSTAttributeSet; para2: jshort; para3: jint); overload;
        constructor create(para1: JSTAttributeSet; para2: jshort; para3: Arr1jchar; para4: jint; para5: jint); overload;
        constructor create(para1: JSTAttributeSet; para2: jshort; const para3: array of jchar; para4: jint; para5: jint); overload;
        procedure setType(para1: jshort); overload; virtual;
        function getType(): jshort; overload; virtual;
        procedure setDirection(para1: jshort); overload; virtual;
        function getDirection(): jshort; overload; virtual;
        function getAttributes(): JSTAttributeSet; overload; virtual;
        function getArray(): Arr1jchar; overload; virtual;
        function getOffset(): jint; overload; virtual;
        function getLength(): jint; overload; virtual;
        function toString(): JLString; overload; virtual;
      end;

      InnerAttributeUndoableEdit = class external 'javax.swing.text' name 'AttributeUndoableEdit' (JSUAbstractUndoableEdit)
      strict protected
        var
          fnewAttributes: JSTAttributeSet; external name 'newAttributes';
          fcopy: JSTAttributeSet; external name 'copy';
          fisReplacing: jboolean; external name 'isReplacing';
          felement: JSTElement; external name 'element';
      public
        constructor create(para1: JSTElement; para2: JSTAttributeSet; para3: jboolean); overload;
        procedure redo(); overload; virtual;  // throws javax.swing.undo.CannotRedoException
        procedure undo(); overload; virtual;  // throws javax.swing.undo.CannotUndoException
      end;

      InnerSectionElement = class external 'javax.swing.text' name 'SectionElement' 
      end;

      InnerElementBuffer = class external 'javax.swing.text' name 'ElementBuffer' 
      public
        type
          InnerElemChanges = class;
          Arr1InnerElemChanges = array of InnerElemChanges;
          Arr2InnerElemChanges = array of Arr1InnerElemChanges;
          Arr3InnerElemChanges = array of Arr2InnerElemChanges;
          InnerElemChanges = class external 'javax.swing.text' name 'ElemChanges' 
          end;

      end;

  public
    const
      BUFFER_SIZE_DEFAULT = 4096;
  strict protected
    var
      fbuffer: JSTDefaultStyledDocument.InnerElementBuffer; external name 'buffer';
  public
    constructor create(para1: JSTAbstractDocument.InnerContent; para2: JSTStyleContext); overload;
    constructor create(para1: JSTStyleContext); overload;
    constructor create(); overload;
    function getDefaultRootElement(): JSTElement; overload; virtual;
  strict protected
    procedure create_(para1: JSTDefaultStyledDocument.Arr1InnerElementSpec); external name 'create'; overload; virtual;
    procedure create_(var para1: array of JSTDefaultStyledDocument.InnerElementSpec); external name 'create'; overload; virtual;
    procedure insert(para1: jint; para2: JSTDefaultStyledDocument.Arr1InnerElementSpec); overload; virtual;  // throws javax.swing.text.BadLocationException
    procedure insert(para1: jint; var para2: array of JSTDefaultStyledDocument.InnerElementSpec); overload; virtual;  // throws javax.swing.text.BadLocationException
  public
    function addStyle(para1: JLString; para2: JSTStyle): JSTStyle; overload; virtual;
    procedure removeStyle(para1: JLString); overload; virtual;
    function getStyle(para1: JLString): JSTStyle; overload; virtual;
    function getStyleNames(): JUEnumeration; overload; virtual;
    procedure setLogicalStyle(para1: jint; para2: JSTStyle); overload; virtual;
    function getLogicalStyle(para1: jint): JSTStyle; overload; virtual;
    procedure setCharacterAttributes(para1: jint; para2: jint; para3: JSTAttributeSet; para4: jboolean); overload; virtual;
    procedure setParagraphAttributes(para1: jint; para2: jint; para3: JSTAttributeSet; para4: jboolean); overload; virtual;
    function getParagraphElement(para1: jint): JSTElement; overload; virtual;
    function getCharacterElement(para1: jint): JSTElement; overload; virtual;
  strict protected
    procedure insertUpdate(para1: JSTAbstractDocument.InnerDefaultDocumentEvent; para2: JSTAttributeSet); overload; virtual;
    procedure removeUpdate(para1: JSTAbstractDocument.InnerDefaultDocumentEvent); overload; virtual;
    function createDefaultRoot(): JSTAbstractDocument.InnerAbstractElement; overload; virtual;
  public
    function getForeground(para1: JSTAttributeSet): JAColor; overload; virtual;
    function getBackground(para1: JSTAttributeSet): JAColor; overload; virtual;
    function getFont(para1: JSTAttributeSet): JAFont; overload; virtual;
  strict protected
    procedure styleChanged(para1: JSTStyle); overload; virtual;
  public
    procedure addDocumentListener(para1: JSEDocumentListener); overload; virtual;
    procedure removeDocumentListener(para1: JSEDocumentListener); overload; virtual;
  end;

  JSTGapContent = class external 'javax.swing.text' name 'GapContent' (JSTGapVector, JSTAbstractDocument.InnerContent, JISerializable)
  public
    type
      InnerInsertUndo = class;
      Arr1InnerInsertUndo = array of InnerInsertUndo;
      Arr2InnerInsertUndo = array of Arr1InnerInsertUndo;
      Arr3InnerInsertUndo = array of Arr2InnerInsertUndo;
      InnerRemoveUndo = class;
      Arr1InnerRemoveUndo = array of InnerRemoveUndo;
      Arr2InnerRemoveUndo = array of Arr1InnerRemoveUndo;
      Arr3InnerRemoveUndo = array of Arr2InnerRemoveUndo;
      InnerMarkData = class;
      Arr1InnerMarkData = array of InnerMarkData;
      Arr2InnerMarkData = array of Arr1InnerMarkData;
      Arr3InnerMarkData = array of Arr2InnerMarkData;
      InnerMarkVector = class;
      Arr1InnerMarkVector = array of InnerMarkVector;
      Arr2InnerMarkVector = array of Arr1InnerMarkVector;
      Arr3InnerMarkVector = array of Arr2InnerMarkVector;
      InnerStickyPosition = class;
      Arr1InnerStickyPosition = array of InnerStickyPosition;
      Arr2InnerStickyPosition = array of Arr1InnerStickyPosition;
      Arr3InnerStickyPosition = array of Arr2InnerStickyPosition;
      InnerUndoPosRef = class;
      Arr1InnerUndoPosRef = array of InnerUndoPosRef;
      Arr2InnerUndoPosRef = array of Arr1InnerUndoPosRef;
      Arr3InnerUndoPosRef = array of Arr2InnerUndoPosRef;
      InnerInsertUndo = class external 'javax.swing.text' name 'InsertUndo' 
      end;

      InnerRemoveUndo = class external 'javax.swing.text' name 'RemoveUndo' 
      end;

      InnerMarkData = class sealed external 'javax.swing.text' name 'MarkData' 
      end;

      InnerMarkVector = class external 'javax.swing.text' name 'MarkVector' 
      end;

      InnerStickyPosition = class sealed external 'javax.swing.text' name 'StickyPosition' 
      end;

      InnerUndoPosRef = class sealed external 'javax.swing.text' name 'UndoPosRef' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
  strict protected
    function allocateArray(para1: jint): JLObject; overload; virtual;
    function getArrayLength(): jint; overload; virtual;
  public
    function length(): jint; overload; virtual;
    function insertString(para1: jint; para2: JLString): JSUUndoableEdit; overload; virtual;  // throws javax.swing.text.BadLocationException
    function remove(para1: jint; para2: jint): JSUUndoableEdit; overload; virtual;  // throws javax.swing.text.BadLocationException
    function getString(para1: jint; para2: jint): JLString; overload; virtual;  // throws javax.swing.text.BadLocationException
    procedure getChars(para1: jint; para2: jint; para3: JSTSegment); overload; virtual;  // throws javax.swing.text.BadLocationException
    function createPosition(para1: jint): JSTPosition; overload; virtual;  // throws javax.swing.text.BadLocationException
  strict protected
    procedure shiftEnd(para1: jint); overload; virtual;
    procedure shiftGap(para1: jint); overload; virtual;
    procedure resetMarksAtZero(); overload; virtual;
    procedure shiftGapStartDown(para1: jint); overload; virtual;
    procedure shiftGapEndUp(para1: jint); overload; virtual;
    function getPositionsInRange(para1: JUVector; para2: jint; para3: jint): JUVector; overload; virtual;
    procedure updateUndoPositions(para1: JUVector; para2: jint; para3: jint); overload; virtual;
  end;

  JSTPlainDocument = class external 'javax.swing.text' name 'PlainDocument' (JSTAbstractDocument)
  public
    const
      tabSizeAttribute = 'tabSize';
      lineLimitAttribute = 'lineLimit';
  public
    constructor create(); overload;
    constructor create(para1: JSTAbstractDocument.InnerContent); overload;
    procedure insertString(para1: jint; para2: JLString; para3: JSTAttributeSet); overload; virtual;  // throws javax.swing.text.BadLocationException
    function getDefaultRootElement(): JSTElement; overload; virtual;
  strict protected
    function createDefaultRoot(): JSTAbstractDocument.InnerAbstractElement; overload; virtual;
  public
    function getParagraphElement(para1: jint): JSTElement; overload; virtual;
  strict protected
    procedure insertUpdate(para1: JSTAbstractDocument.InnerDefaultDocumentEvent; para2: JSTAttributeSet); overload; virtual;
    procedure removeUpdate(para1: JSTAbstractDocument.InnerDefaultDocumentEvent); overload; virtual;
  end;

  JSTStringContent = class sealed external 'javax.swing.text' name 'StringContent' (JLObject, JSTAbstractDocument.InnerContent, JISerializable)
  public
    type
      InnerInsertUndo = class;
      Arr1InnerInsertUndo = array of InnerInsertUndo;
      Arr2InnerInsertUndo = array of Arr1InnerInsertUndo;
      Arr3InnerInsertUndo = array of Arr2InnerInsertUndo;
      InnerRemoveUndo = class;
      Arr1InnerRemoveUndo = array of InnerRemoveUndo;
      Arr2InnerRemoveUndo = array of Arr1InnerRemoveUndo;
      Arr3InnerRemoveUndo = array of Arr2InnerRemoveUndo;
      InnerPosRec = class;
      Arr1InnerPosRec = array of InnerPosRec;
      Arr2InnerPosRec = array of Arr1InnerPosRec;
      Arr3InnerPosRec = array of Arr2InnerPosRec;
      InnerStickyPosition = class;
      Arr1InnerStickyPosition = array of InnerStickyPosition;
      Arr2InnerStickyPosition = array of Arr1InnerStickyPosition;
      Arr3InnerStickyPosition = array of Arr2InnerStickyPosition;
      InnerUndoPosRef = class;
      Arr1InnerUndoPosRef = array of InnerUndoPosRef;
      Arr2InnerUndoPosRef = array of Arr1InnerUndoPosRef;
      Arr3InnerUndoPosRef = array of Arr2InnerUndoPosRef;
      InnerInsertUndo = class external 'javax.swing.text' name 'InsertUndo' 
      end;

      InnerRemoveUndo = class external 'javax.swing.text' name 'RemoveUndo' 
      end;

      InnerPosRec = class sealed external 'javax.swing.text' name 'PosRec' 
      end;

      InnerStickyPosition = class sealed external 'javax.swing.text' name 'StickyPosition' 
      end;

      InnerUndoPosRef = class sealed external 'javax.swing.text' name 'UndoPosRef' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    function length(): jint; overload; virtual;
    function insertString(para1: jint; para2: JLString): JSUUndoableEdit; overload; virtual;  // throws javax.swing.text.BadLocationException
    function remove(para1: jint; para2: jint): JSUUndoableEdit; overload; virtual;  // throws javax.swing.text.BadLocationException
    function getString(para1: jint; para2: jint): JLString; overload; virtual;  // throws javax.swing.text.BadLocationException
    procedure getChars(para1: jint; para2: jint; para3: JSTSegment); overload; virtual;  // throws javax.swing.text.BadLocationException
    function createPosition(para1: jint): JSTPosition; overload; virtual;  // throws javax.swing.text.BadLocationException
  strict protected
    function getPositionsInRange(para1: JUVector; para2: jint; para3: jint): JUVector; overload; virtual;
    procedure updateUndoPositions(para1: JUVector); overload; virtual;
  end;

  JSTStyleContext = class external 'javax.swing.text' name 'StyleContext' (JLObject, JISerializable, JSTAbstractDocument.InnerAttributeContext)
  public
    type
      InnerFontKey = class;
      Arr1InnerFontKey = array of InnerFontKey;
      Arr2InnerFontKey = array of Arr1InnerFontKey;
      Arr3InnerFontKey = array of Arr2InnerFontKey;
      InnerKeyBuilder = class;
      Arr1InnerKeyBuilder = array of InnerKeyBuilder;
      Arr2InnerKeyBuilder = array of Arr1InnerKeyBuilder;
      Arr3InnerKeyBuilder = array of Arr2InnerKeyBuilder;
      InnerKeyEnumeration = class;
      Arr1InnerKeyEnumeration = array of InnerKeyEnumeration;
      Arr2InnerKeyEnumeration = array of Arr1InnerKeyEnumeration;
      Arr3InnerKeyEnumeration = array of Arr2InnerKeyEnumeration;
      InnerFontKey = class external 'javax.swing.text' name 'FontKey' 
      end;

      InnerKeyBuilder = class external 'javax.swing.text' name 'KeyBuilder' 
      end;

      InnerKeyEnumeration = class external 'javax.swing.text' name 'KeyEnumeration' 
      end;

  public
    type
      InnerNamedStyle = class;
      Arr1InnerNamedStyle = array of InnerNamedStyle;
      Arr2InnerNamedStyle = array of Arr1InnerNamedStyle;
      Arr3InnerNamedStyle = array of Arr2InnerNamedStyle;
      InnerSmallAttributeSet = class;
      Arr1InnerSmallAttributeSet = array of InnerSmallAttributeSet;
      Arr2InnerSmallAttributeSet = array of Arr1InnerSmallAttributeSet;
      Arr3InnerSmallAttributeSet = array of Arr2InnerSmallAttributeSet;
      InnerNamedStyle = class external 'javax.swing.text' name 'NamedStyle' 
      end;

      InnerSmallAttributeSet = class external 'javax.swing.text' name 'SmallAttributeSet' 
      end;

  public
    const
      DEFAULT_STYLE = 'default';
  public
    class function getDefaultStyleContext(): JSTStyleContext; static; overload; final;
    constructor create(); overload;
    function addStyle(para1: JLString; para2: JSTStyle): JSTStyle; overload; virtual;
    procedure removeStyle(para1: JLString); overload; virtual;
    function getStyle(para1: JLString): JSTStyle; overload; virtual;
    function getStyleNames(): JUEnumeration; overload; virtual;
    procedure addChangeListener(para1: JSEChangeListener); overload; virtual;
    procedure removeChangeListener(para1: JSEChangeListener); overload; virtual;
    function getChangeListeners(): Arr1JSEChangeListener; overload; virtual;
    function getFont(para1: JSTAttributeSet): JAFont; overload; virtual;
    function getForeground(para1: JSTAttributeSet): JAColor; overload; virtual;
    function getBackground(para1: JSTAttributeSet): JAColor; overload; virtual;
    function getFont(para1: JLString; para2: jint; para3: jint): JAFont; overload; virtual;
    function getFontMetrics(para1: JAFont): JAFontMetrics; overload; virtual;
    function addAttribute(para1: JSTAttributeSet; para2: JLObject; para3: JLObject): JSTAttributeSet; overload; virtual;
    function addAttributes(para1: JSTAttributeSet; para2: JSTAttributeSet): JSTAttributeSet; overload; virtual;
    function removeAttribute(para1: JSTAttributeSet; para2: JLObject): JSTAttributeSet; overload; virtual;
    function removeAttributes(para1: JSTAttributeSet; para2: JUEnumeration): JSTAttributeSet; overload; virtual;
    function removeAttributes(para1: JSTAttributeSet; para2: JSTAttributeSet): JSTAttributeSet; overload; virtual;
    function getEmptySet(): JSTAttributeSet; overload; virtual;
    procedure reclaim(para1: JSTAttributeSet); overload; virtual;
  strict protected
    function getCompressionThreshold(): jint; overload; virtual;
    function createSmallAttributeSet(para1: JSTAttributeSet): JSTStyleContext.InnerSmallAttributeSet; overload; virtual;
    function createLargeAttributeSet(para1: JSTAttributeSet): JSTMutableAttributeSet; overload; virtual;
  public
    function toString(): JLString; overload; virtual;
    procedure writeAttributes(para1: JIObjectOutputStream; para2: JSTAttributeSet); overload; virtual;  // throws java.io.IOException
    procedure readAttributes(para1: JIObjectInputStream; para2: JSTMutableAttributeSet); overload; virtual;  // throws java.lang.ClassNotFoundException, java.io.IOException
    class procedure writeAttributeSet(para1: JIObjectOutputStream; para2: JSTAttributeSet); static; overload;  // throws java.io.IOException
    class procedure readAttributeSet(para1: JIObjectInputStream; para2: JSTMutableAttributeSet); static; overload;  // throws java.lang.ClassNotFoundException, java.io.IOException
    class procedure registerStaticAttributeKey(para1: JLObject); static; overload;
    class function getStaticAttribute(para1: JLObject): JLObject; static; overload;
    class function getStaticAttributeKey(para1: JLObject): JLObject; static; overload;
  end;

  JSUUndoManager = class external 'javax.swing.undo' name 'UndoManager' (JSUCompoundEdit, JSEUndoableEditListener)
  public
    constructor create(); overload;
    function getLimit(): jint; overload; virtual;
    procedure discardAllEdits(); overload; virtual;
  strict protected
    procedure trimForLimit(); overload; virtual;
    procedure trimEdits(para1: jint; para2: jint); overload; virtual;
  public
    procedure setLimit(para1: jint); overload; virtual;
  strict protected
    function editToBeUndone(): JSUUndoableEdit; overload; virtual;
    function editToBeRedone(): JSUUndoableEdit; overload; virtual;
    procedure undoTo(para1: JSUUndoableEdit); overload; virtual;  // throws javax.swing.undo.CannotUndoException
    procedure redoTo(para1: JSUUndoableEdit); overload; virtual;  // throws javax.swing.undo.CannotRedoException
  public
    procedure undoOrRedo(); overload; virtual;  // throws javax.swing.undo.CannotRedoException, javax.swing.undo.CannotUndoException
    function canUndoOrRedo(): jboolean; overload; virtual;
    procedure undo(); overload; virtual;  // throws javax.swing.undo.CannotUndoException
    function canUndo(): jboolean; overload; virtual;
    procedure redo(); overload; virtual;  // throws javax.swing.undo.CannotRedoException
    function canRedo(): jboolean; overload; virtual;
    function addEdit(para1: JSUUndoableEdit): jboolean; overload; virtual;
    procedure &end(); overload; virtual;
    function getUndoOrRedoPresentationName(): JLString; overload; virtual;
    function getUndoPresentationName(): JLString; overload; virtual;
    function getRedoPresentationName(): JLString; overload; virtual;
    procedure undoableEditHappened(para1: JSEUndoableEditEvent); overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JAPFiler = interface external 'javax.annotation.processing' name 'Filer' 
    function createSourceFile(para1: JLCharSequence; para2: Arr1JLMEElement): JTJavaFileObject; overload;  // throws java.io.IOException
    function createSourceFile(para1: JLCharSequence; const para2: array of JLMEElement): JTJavaFileObject; overload;  // throws java.io.IOException
    function createClassFile(para1: JLCharSequence; para2: Arr1JLMEElement): JTJavaFileObject; overload;  // throws java.io.IOException
    function createClassFile(para1: JLCharSequence; const para2: array of JLMEElement): JTJavaFileObject; overload;  // throws java.io.IOException
    function createResource(para1: JTJavaFileManager.InnerLocation; para2: JLCharSequence; para3: JLCharSequence; para4: Arr1JLMEElement): JTFileObject; overload;  // throws java.io.IOException
    function createResource(para1: JTJavaFileManager.InnerLocation; para2: JLCharSequence; para3: JLCharSequence; const para4: array of JLMEElement): JTFileObject; overload;  // throws java.io.IOException
    function getResource(para1: JTJavaFileManager.InnerLocation; para2: JLCharSequence; para3: JLCharSequence): JTFileObject; overload;  // throws java.io.IOException
  end;

  JTForwardingJavaFileManager = class external 'javax.tools' name 'ForwardingJavaFileManager' (JLObject, JTJavaFileManager)
  strict protected
    final var
      ffileManager: JTJavaFileManager; external name 'fileManager';
  strict protected
    constructor create(para1: JTJavaFileManager); overload;
  public
    function getClassLoader(para1: JTJavaFileManager.InnerLocation): JLClassLoader; overload; virtual;
    function list(para1: JTJavaFileManager.InnerLocation; para2: JLString; para3: JUSet; para4: jboolean): JLIterable; overload; virtual;  // throws java.io.IOException
    function inferBinaryName(para1: JTJavaFileManager.InnerLocation; para2: JTJavaFileObject): JLString; overload; virtual;
    function isSameFile(para1: JTFileObject; para2: JTFileObject): jboolean; overload; virtual;
    function handleOption(para1: JLString; para2: JUIterator): jboolean; overload; virtual;
    function hasLocation(para1: JTJavaFileManager.InnerLocation): jboolean; overload; virtual;
    function isSupportedOption(para1: JLString): jint; overload; virtual;
    function getJavaFileForInput(para1: JTJavaFileManager.InnerLocation; para2: JLString; para3: JTJavaFileObject.InnerKind): JTJavaFileObject; overload; virtual;  // throws java.io.IOException
    function getJavaFileForOutput(para1: JTJavaFileManager.InnerLocation; para2: JLString; para3: JTJavaFileObject.InnerKind; para4: JTFileObject): JTJavaFileObject; overload; virtual;  // throws java.io.IOException
    function getFileForInput(para1: JTJavaFileManager.InnerLocation; para2: JLString; para3: JLString): JTFileObject; overload; virtual;  // throws java.io.IOException
    function getFileForOutput(para1: JTJavaFileManager.InnerLocation; para2: JLString; para3: JLString; para4: JTFileObject): JTFileObject; overload; virtual;  // throws java.io.IOException
    procedure flush(); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  JTStandardJavaFileManager = interface external 'javax.tools' name 'StandardJavaFileManager' (JTJavaFileManager)
    function isSameFile(para1: JTFileObject; para2: JTFileObject): jboolean; overload;
    function getJavaFileObjectsFromFiles(para1: JLIterable): JLIterable; overload;
    function getJavaFileObjects(para1: Arr1JIFile): JLIterable; overload;
    function getJavaFileObjects(const para1: array of JIFile): JLIterable; overload;
    function getJavaFileObjectsFromStrings(para1: JLIterable): JLIterable; overload;
    function getJavaFileObjects(para1: Arr1JLString): JLIterable; overload;
    function getJavaFileObjects(const para1: array of JLString): JLIterable; overload;
    procedure setLocation(para1: JTJavaFileManager.InnerLocation; para2: JLIterable); overload;  // throws java.io.IOException
    function getLocation(para1: JTJavaFileManager.InnerLocation): JLIterable; overload;
  end;

  JTStandardLocation = class sealed external 'javax.tools' name 'StandardLocation' (JLEnum, JTJavaFileManager.InnerLocation)
  public
    final class var
      fCLASS_OUTPUT: JTStandardLocation; external name 'CLASS_OUTPUT';
      fSOURCE_OUTPUT: JTStandardLocation; external name 'SOURCE_OUTPUT';
      fCLASS_PATH: JTStandardLocation; external name 'CLASS_PATH';
      fSOURCE_PATH: JTStandardLocation; external name 'SOURCE_PATH';
      fANNOTATION_PROCESSOR_PATH: JTStandardLocation; external name 'ANNOTATION_PROCESSOR_PATH';
      fPLATFORM_CLASS_PATH: JTStandardLocation; external name 'PLATFORM_CLASS_PATH';
  public
    class function values(): Arr1JTStandardLocation; static; overload;
    class function valueOf(para1: JLString): JTStandardLocation; static; overload;
    class function locationFor(para1: JLString): JTJavaFileManager.InnerLocation; static; overload;
    function getName(): JLString; overload; virtual;
    function isOutputLocation(): jboolean; overload; virtual;
  end;

  OJXDIDApacheCanonicalizer = class abstract external 'org.jcp.xml.dsig.internal.dom' name 'ApacheCanonicalizer' (JXCDTransformService)
  strict protected
    var
      fapacheCanonicalizer: CSOAXISCCanonicalizer; external name 'apacheCanonicalizer';
      finclusiveNamespaces: JLString; external name 'inclusiveNamespaces';
      fparams: JXCDSC14NMethodParameterSpec; external name 'params';
      fownerDoc: OWDDocument; external name 'ownerDoc';
      ftransformElem: OWDElement; external name 'transformElem';
  public
    constructor create(); overload;
    function getParameterSpec(): JSSAlgorithmParameterSpec; overload; virtual; final;
    procedure init(para1: JXCXMLStructure; para2: JXCXMLCryptoContext); overload; virtual;  // throws java.security.InvalidAlgorithmParameterException
    procedure marshalParams(para1: JXCXMLStructure; para2: JXCXMLCryptoContext); overload; virtual;  // throws javax.xml.crypto.MarshalException
    function canonicalize(para1: JXCData; para2: JXCXMLCryptoContext): JXCData; overload; virtual;  // throws javax.xml.crypto.dsig.TransformException
    function canonicalize(para1: JXCData; para2: JXCXMLCryptoContext; para3: JIOutputStream): JXCData; overload; virtual;  // throws javax.xml.crypto.dsig.TransformException
    function transform(para1: JXCData; para2: JXCXMLCryptoContext; para3: JIOutputStream): JXCData; overload; virtual;  // throws javax.xml.crypto.dsig.TransformException
    function isFeatureSupported(para1: JLString): jboolean; overload; virtual; final;
  end;

  OJXDIDApacheTransform = class abstract external 'org.jcp.xml.dsig.internal.dom' name 'ApacheTransform' (JXCDTransformService)
  strict protected
    var
      fownerDoc: OWDDocument; external name 'ownerDoc';
      ftransformElem: OWDElement; external name 'transformElem';
      fparams: JXCDSTransformParameterSpec; external name 'params';
  public
    constructor create(); overload;
    function getParameterSpec(): JSSAlgorithmParameterSpec; overload; virtual; final;
    procedure init(para1: JXCXMLStructure; para2: JXCXMLCryptoContext); overload; virtual;  // throws java.security.InvalidAlgorithmParameterException
    procedure marshalParams(para1: JXCXMLStructure; para2: JXCXMLCryptoContext); overload; virtual;  // throws javax.xml.crypto.MarshalException
    function transform(para1: JXCData; para2: JXCXMLCryptoContext): JXCData; overload; virtual;  // throws javax.xml.crypto.dsig.TransformException
    function transform(para1: JXCData; para2: JXCXMLCryptoContext; para3: JIOutputStream): JXCData; overload; virtual;  // throws javax.xml.crypto.dsig.TransformException
    function isFeatureSupported(para1: JLString): jboolean; overload; virtual; final;
  end;

  OJXDIDDOMHMACSignatureMethod = class abstract external 'org.jcp.xml.dsig.internal.dom' name 'DOMHMACSignatureMethod' (OJXDIDDOMSignatureMethod)
  public
    type
      InnerSHA1 = class;
      Arr1InnerSHA1 = array of InnerSHA1;
      Arr2InnerSHA1 = array of Arr1InnerSHA1;
      Arr3InnerSHA1 = array of Arr2InnerSHA1;
      InnerSHA256 = class;
      Arr1InnerSHA256 = array of InnerSHA256;
      Arr2InnerSHA256 = array of Arr1InnerSHA256;
      Arr3InnerSHA256 = array of Arr2InnerSHA256;
      InnerSHA384 = class;
      Arr1InnerSHA384 = array of InnerSHA384;
      Arr2InnerSHA384 = array of Arr1InnerSHA384;
      Arr3InnerSHA384 = array of Arr2InnerSHA384;
      InnerSHA512 = class;
      Arr1InnerSHA512 = array of InnerSHA512;
      Arr2InnerSHA512 = array of Arr1InnerSHA512;
      Arr3InnerSHA512 = array of Arr2InnerSHA512;
      InnerSHA1 = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'SHA1' 
      end;

      InnerSHA256 = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'SHA256' 
      end;

      InnerSHA384 = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'SHA384' 
      end;

      InnerSHA512 = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'SHA512' 
      end;

  public
    function paramsEqual(para1: JSSAlgorithmParameterSpec): jboolean; overload; virtual;
  end;

  OJXDIDDOMCanonicalizationMethod = class external 'org.jcp.xml.dsig.internal.dom' name 'DOMCanonicalizationMethod' (OJXDIDDOMTransform, JXCDCanonicalizationMethod)
  public
    constructor create(para1: JXCDTransformService); overload;  // throws java.security.InvalidAlgorithmParameterException
    constructor create(para1: OWDElement; para2: JXCXMLCryptoContext); overload;  // throws javax.xml.crypto.MarshalException
    function canonicalize(para1: JXCData; para2: JXCXMLCryptoContext): JXCData; overload; virtual;  // throws javax.xml.crypto.dsig.TransformException
    function canonicalize(para1: JXCData; para2: JXCXMLCryptoContext; para3: JIOutputStream): JXCData; overload; virtual;  // throws javax.xml.crypto.dsig.TransformException
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JXSENamespace = interface external 'javax.xml.stream.events' name 'Namespace' (JXSEAttribute)
    function getPrefix(): JLString; overload;
    function getNamespaceURI(): JLString; overload;
    function isDefaultNamespaceDeclaration(): jboolean; overload;
  end;

  OOC_BindingIteratorImplBase = class abstract external 'org.omg.CosNaming' name '_BindingIteratorImplBase' (OOCDynamicImplementation, OOCBindingIterator)
  public
    constructor create(); overload;
    function _ids(): Arr1JLString; overload; virtual;
    procedure invoke(para1: OOCServerRequest); overload; virtual;
  end;

  OOC_NamingContextImplBase = class abstract external 'org.omg.CosNaming' name '_NamingContextImplBase' (OOCDynamicImplementation, OOCNamingContext)
  public
    constructor create(); overload;
    function _ids(): Arr1JLString; overload; virtual;
    procedure invoke(para1: OOCServerRequest); overload; virtual;
  end;

  JMRR_RMIConnectionImpl_Tie = class external 'javax.management.remote.rmi' name '_RMIConnectionImpl_Tie' (OOC_2_3PObjectImpl, JRCTie)
  public
    constructor create(); overload;
    function _ids(): Arr1JLString; overload; virtual;
    function _invoke(para1: JLString; para2: OOCPInputStream; para3: OOCPResponseHandler): OOCPOutputStream; overload; virtual;  // throws org.omg.CORBA.SystemException
    procedure deactivate(); overload; virtual;
    function getTarget(): JRRemote; overload; virtual;
    function orb(): OOCORB; overload; virtual;
    procedure orb(para1: OOCORB); overload; virtual;
    procedure setTarget(para1: JRRemote); overload; virtual;
    function thisObject(): OOCObject; overload; virtual;
  end;

  JMRR_RMIServerImpl_Tie = class external 'javax.management.remote.rmi' name '_RMIServerImpl_Tie' (OOC_2_3PObjectImpl, JRCTie)
  public
    constructor create(); overload;
    function _ids(): Arr1JLString; overload; virtual;
    function _invoke(para1: JLString; para2: OOCPInputStream; para3: OOCPResponseHandler): OOCPOutputStream; overload; virtual;  // throws org.omg.CORBA.SystemException
    procedure deactivate(); overload; virtual;
    function getTarget(): JRRemote; overload; virtual;
    function orb(): OOCORB; overload; virtual;
    procedure orb(para1: OOCORB); overload; virtual;
    procedure setTarget(para1: JRRemote); overload; virtual;
    function thisObject(): OOCObject; overload; virtual;
  end;

  JRCStub = class abstract external 'javax.rmi.CORBA' name 'Stub' (OOC_2_3PObjectImpl, JISerializable)
  public
    constructor create(); overload;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure connect(para1: OOCORB); overload; virtual;  // throws java.rmi.RemoteException
  end;

  OOSJMRR_RMIConnectionImpl_Tie = class external 'org.omg.stub.javax.management.remote.rmi' name '_RMIConnectionImpl_Tie' (OOC_2_3PObjectImpl, JRCTie)
  public
    constructor create(); overload;
    function _ids(): Arr1JLString; overload; virtual;
    function _invoke(para1: JLString; para2: OOCPInputStream; para3: OOCPResponseHandler): OOCPOutputStream; overload; virtual;  // throws org.omg.CORBA.SystemException
    procedure deactivate(); overload; virtual;
    function getTarget(): JRRemote; overload; virtual;
    function orb(): OOCORB; overload; virtual;
    procedure orb(para1: OOCORB); overload; virtual;
    procedure setTarget(para1: JRRemote); overload; virtual;
    function thisObject(): OOCObject; overload; virtual;
  end;

  OOSJMRR_RMIServerImpl_Tie = class external 'org.omg.stub.javax.management.remote.rmi' name '_RMIServerImpl_Tie' (OOC_2_3PObjectImpl, JRCTie)
  public
    constructor create(); overload;
    function _ids(): Arr1JLString; overload; virtual;
    function _invoke(para1: JLString; para2: OOCPInputStream; para3: OOCPResponseHandler): OOCPOutputStream; overload; virtual;  // throws org.omg.CORBA.SystemException
    procedure deactivate(); overload; virtual;
    function getTarget(): JRRemote; overload; virtual;
    function orb(): OOCORB; overload; virtual;
    procedure orb(para1: OOCORB); overload; virtual;
    procedure setTarget(para1: JRRemote); overload; virtual;
    function thisObject(): OOCObject; overload; virtual;
  end;

  JXSText = interface external 'javax.xml.soap' name 'Text' (JXSNode, OWDText)
    function isComment(): jboolean; overload;
  end;

  OWDCDATASection = interface external 'org.w3c.dom' name 'CDATASection' (OWDText)
  end;

  JIMIIOAttr = class external 'javax.imageio.metadata' name 'IIOAttr' (JIMIIOMetadataNode, OWDAttr)
  public
    constructor create(para1: OWDElement; para2: JLString; para3: JLString); overload;
    function getName(): JLString; overload; virtual;
    function getNodeName(): JLString; overload; virtual;
    function getNodeType(): jshort; overload; virtual;
    function getSpecified(): jboolean; overload; virtual;
    function getValue(): JLString; overload; virtual;
    function getNodeValue(): JLString; overload; virtual;
    procedure setValue(para1: JLString); overload; virtual;
    procedure setNodeValue(para1: JLString); overload; virtual;
    function getOwnerElement(): OWDElement; overload; virtual;
    procedure setOwnerElement(para1: OWDElement); overload; virtual;
    function isId(): jboolean; overload; virtual;
    function getSchemaTypeInfo(): OWDTypeInfo; overload; virtual;
    function setUserData(para1: JLString; para2: JLObject; para3: OWDUserDataHandler): JLObject; overload; virtual;
    function getUserData(para1: JLString): JLObject; overload; virtual;
    function getFeature(para1: JLString; para2: JLString): JLObject; overload; virtual;
    function isEqualNode(para1: OWDNode): jboolean; overload; virtual;
    function isSameNode(para1: OWDNode): jboolean; overload; virtual;
    function lookupNamespaceURI(para1: JLString): JLString; overload; virtual;
    function isDefaultNamespace(para1: JLString): jboolean; overload; virtual;
    function lookupPrefix(para1: JLString): JLString; overload; virtual;
    function getTextContent(): JLString; overload; virtual;  // throws org.w3c.dom.DOMException
    procedure setTextContent(para1: JLString); overload; virtual;  // throws org.w3c.dom.DOMException
    function compareDocumentPosition(para1: OWDNode): jshort; overload; virtual;  // throws org.w3c.dom.DOMException
    function getBaseURI(): JLString; overload; virtual;
  end;

  JXSDetailEntry = interface external 'javax.xml.soap' name 'DetailEntry' (JXSSOAPElement)
  end;

  JXSSOAPBody = interface external 'javax.xml.soap' name 'SOAPBody' (JXSSOAPElement)
    function addFault(): JXSSOAPFault; overload;  // throws javax.xml.soap.SOAPException
    function addFault(para1: JXSName; para2: JLString; para3: JULocale): JXSSOAPFault; overload;  // throws javax.xml.soap.SOAPException
    function addFault(para1: JXNQName; para2: JLString; para3: JULocale): JXSSOAPFault; overload;  // throws javax.xml.soap.SOAPException
    function addFault(para1: JXSName; para2: JLString): JXSSOAPFault; overload;  // throws javax.xml.soap.SOAPException
    function addFault(para1: JXNQName; para2: JLString): JXSSOAPFault; overload;  // throws javax.xml.soap.SOAPException
    function hasFault(): jboolean; overload;
    function getFault(): JXSSOAPFault; overload;
    function addBodyElement(para1: JXSName): JXSSOAPBodyElement; overload;  // throws javax.xml.soap.SOAPException
    function addBodyElement(para1: JXNQName): JXSSOAPBodyElement; overload;  // throws javax.xml.soap.SOAPException
    function addDocument(para1: OWDDocument): JXSSOAPBodyElement; overload;  // throws javax.xml.soap.SOAPException
    function extractContentAsDocument(): OWDDocument; overload;  // throws javax.xml.soap.SOAPException
  end;

  JXSSOAPBodyElement = interface external 'javax.xml.soap' name 'SOAPBodyElement' (JXSSOAPElement)
  end;

  JXSSOAPEnvelope = interface external 'javax.xml.soap' name 'SOAPEnvelope' (JXSSOAPElement)
    function createName(para1: JLString; para2: JLString; para3: JLString): JXSName; overload;  // throws javax.xml.soap.SOAPException
    function createName(para1: JLString): JXSName; overload;  // throws javax.xml.soap.SOAPException
    function getHeader(): JXSSOAPHeader; overload;  // throws javax.xml.soap.SOAPException
    function getBody(): JXSSOAPBody; overload;  // throws javax.xml.soap.SOAPException
    function addHeader(): JXSSOAPHeader; overload;  // throws javax.xml.soap.SOAPException
    function addBody(): JXSSOAPBody; overload;  // throws javax.xml.soap.SOAPException
  end;

  JXSSOAPFaultElement = interface external 'javax.xml.soap' name 'SOAPFaultElement' (JXSSOAPElement)
  end;

  JXSSOAPHeader = interface external 'javax.xml.soap' name 'SOAPHeader' (JXSSOAPElement)
    function addHeaderElement(para1: JXSName): JXSSOAPHeaderElement; overload;  // throws javax.xml.soap.SOAPException
    function addHeaderElement(para1: JXNQName): JXSSOAPHeaderElement; overload;  // throws javax.xml.soap.SOAPException
    function examineMustUnderstandHeaderElements(para1: JLString): JUIterator; overload;
    function examineHeaderElements(para1: JLString): JUIterator; overload;
    function extractHeaderElements(para1: JLString): JUIterator; overload;
    function addNotUnderstoodHeaderElement(para1: JXNQName): JXSSOAPHeaderElement; overload;  // throws javax.xml.soap.SOAPException
    function addUpgradeHeaderElement(para1: JUIterator): JXSSOAPHeaderElement; overload;  // throws javax.xml.soap.SOAPException
    function addUpgradeHeaderElement(para1: Arr1JLString): JXSSOAPHeaderElement; overload;  // throws javax.xml.soap.SOAPException
    function addUpgradeHeaderElement(var para1: array of JLString): JXSSOAPHeaderElement; overload;  // throws javax.xml.soap.SOAPException
    function addUpgradeHeaderElement(para1: JLString): JXSSOAPHeaderElement; overload;  // throws javax.xml.soap.SOAPException
    function examineAllHeaderElements(): JUIterator; overload;
    function extractAllHeaderElements(): JUIterator; overload;
  end;

  JXSSOAPHeaderElement = interface external 'javax.xml.soap' name 'SOAPHeaderElement' (JXSSOAPElement)
    procedure setActor(para1: JLString); overload;
    procedure setRole(para1: JLString); overload;  // throws javax.xml.soap.SOAPException
    function getActor(): JLString; overload;
    function getRole(): JLString; overload;
    procedure setMustUnderstand(para1: jboolean); overload;
    function getMustUnderstand(): jboolean; overload;
    procedure setRelay(para1: jboolean); overload;  // throws javax.xml.soap.SOAPException
    function getRelay(): jboolean; overload;
  end;

  OWDHHTMLAnchorElement = interface external 'org.w3c.dom.html' name 'HTMLAnchorElement' (OWDHHTMLElement)
    function getAccessKey(): JLString; overload;
    procedure setAccessKey(para1: JLString); overload;
    function getCharset(): JLString; overload;
    procedure setCharset(para1: JLString); overload;
    function getCoords(): JLString; overload;
    procedure setCoords(para1: JLString); overload;
    function getHref(): JLString; overload;
    procedure setHref(para1: JLString); overload;
    function getHreflang(): JLString; overload;
    procedure setHreflang(para1: JLString); overload;
    function getName(): JLString; overload;
    procedure setName(para1: JLString); overload;
    function getRel(): JLString; overload;
    procedure setRel(para1: JLString); overload;
    function getRev(): JLString; overload;
    procedure setRev(para1: JLString); overload;
    function getShape(): JLString; overload;
    procedure setShape(para1: JLString); overload;
    function getTabIndex(): jint; overload;
    procedure setTabIndex(para1: jint); overload;
    function getTarget(): JLString; overload;
    procedure setTarget(para1: JLString); overload;
    function getType(): JLString; overload;
    procedure setType(para1: JLString); overload;
    procedure blur(); overload;
    procedure focus(); overload;
  end;

  OWDHHTMLAppletElement = interface external 'org.w3c.dom.html' name 'HTMLAppletElement' (OWDHHTMLElement)
    function getAlign(): JLString; overload;
    procedure setAlign(para1: JLString); overload;
    function getAlt(): JLString; overload;
    procedure setAlt(para1: JLString); overload;
    function getArchive(): JLString; overload;
    procedure setArchive(para1: JLString); overload;
    function getCode(): JLString; overload;
    procedure setCode(para1: JLString); overload;
    function getCodeBase(): JLString; overload;
    procedure setCodeBase(para1: JLString); overload;
    function getHeight(): JLString; overload;
    procedure setHeight(para1: JLString); overload;
    function getHspace(): JLString; overload;
    procedure setHspace(para1: JLString); overload;
    function getName(): JLString; overload;
    procedure setName(para1: JLString); overload;
    function getObject(): JLString; overload;
    procedure setObject(para1: JLString); overload;
    function getVspace(): JLString; overload;
    procedure setVspace(para1: JLString); overload;
    function getWidth(): JLString; overload;
    procedure setWidth(para1: JLString); overload;
  end;

  OWDHHTMLAreaElement = interface external 'org.w3c.dom.html' name 'HTMLAreaElement' (OWDHHTMLElement)
    function getAccessKey(): JLString; overload;
    procedure setAccessKey(para1: JLString); overload;
    function getAlt(): JLString; overload;
    procedure setAlt(para1: JLString); overload;
    function getCoords(): JLString; overload;
    procedure setCoords(para1: JLString); overload;
    function getHref(): JLString; overload;
    procedure setHref(para1: JLString); overload;
    function getNoHref(): jboolean; overload;
    procedure setNoHref(para1: jboolean); overload;
    function getShape(): JLString; overload;
    procedure setShape(para1: JLString); overload;
    function getTabIndex(): jint; overload;
    procedure setTabIndex(para1: jint); overload;
    function getTarget(): JLString; overload;
    procedure setTarget(para1: JLString); overload;
  end;

  OWDHHTMLBRElement = interface external 'org.w3c.dom.html' name 'HTMLBRElement' (OWDHHTMLElement)
    function getClear(): JLString; overload;
    procedure setClear(para1: JLString); overload;
  end;

  OWDHHTMLBaseElement = interface external 'org.w3c.dom.html' name 'HTMLBaseElement' (OWDHHTMLElement)
    function getHref(): JLString; overload;
    procedure setHref(para1: JLString); overload;
    function getTarget(): JLString; overload;
    procedure setTarget(para1: JLString); overload;
  end;

  OWDHHTMLBaseFontElement = interface external 'org.w3c.dom.html' name 'HTMLBaseFontElement' (OWDHHTMLElement)
    function getColor(): JLString; overload;
    procedure setColor(para1: JLString); overload;
    function getFace(): JLString; overload;
    procedure setFace(para1: JLString); overload;
    function getSize(): JLString; overload;
    procedure setSize(para1: JLString); overload;
  end;

  OWDHHTMLBodyElement = interface external 'org.w3c.dom.html' name 'HTMLBodyElement' (OWDHHTMLElement)
    function getALink(): JLString; overload;
    procedure setALink(para1: JLString); overload;
    function getBackground(): JLString; overload;
    procedure setBackground(para1: JLString); overload;
    function getBgColor(): JLString; overload;
    procedure setBgColor(para1: JLString); overload;
    function getLink(): JLString; overload;
    procedure setLink(para1: JLString); overload;
    function getText(): JLString; overload;
    procedure setText(para1: JLString); overload;
    function getVLink(): JLString; overload;
    procedure setVLink(para1: JLString); overload;
  end;

  OWDHHTMLButtonElement = interface external 'org.w3c.dom.html' name 'HTMLButtonElement' (OWDHHTMLElement)
    function getForm(): OWDHHTMLFormElement; overload;
    function getAccessKey(): JLString; overload;
    procedure setAccessKey(para1: JLString); overload;
    function getDisabled(): jboolean; overload;
    procedure setDisabled(para1: jboolean); overload;
    function getName(): JLString; overload;
    procedure setName(para1: JLString); overload;
    function getTabIndex(): jint; overload;
    procedure setTabIndex(para1: jint); overload;
    function getType(): JLString; overload;
    function getValue(): JLString; overload;
    procedure setValue(para1: JLString); overload;
  end;

  OWDHHTMLDListElement = interface external 'org.w3c.dom.html' name 'HTMLDListElement' (OWDHHTMLElement)
    function getCompact(): jboolean; overload;
    procedure setCompact(para1: jboolean); overload;
  end;

  OWDHHTMLDirectoryElement = interface external 'org.w3c.dom.html' name 'HTMLDirectoryElement' (OWDHHTMLElement)
    function getCompact(): jboolean; overload;
    procedure setCompact(para1: jboolean); overload;
  end;

  OWDHHTMLDivElement = interface external 'org.w3c.dom.html' name 'HTMLDivElement' (OWDHHTMLElement)
    function getAlign(): JLString; overload;
    procedure setAlign(para1: JLString); overload;
  end;

  OWDHHTMLFieldSetElement = interface external 'org.w3c.dom.html' name 'HTMLFieldSetElement' (OWDHHTMLElement)
    function getForm(): OWDHHTMLFormElement; overload;
  end;

  OWDHHTMLFontElement = interface external 'org.w3c.dom.html' name 'HTMLFontElement' (OWDHHTMLElement)
    function getColor(): JLString; overload;
    procedure setColor(para1: JLString); overload;
    function getFace(): JLString; overload;
    procedure setFace(para1: JLString); overload;
    function getSize(): JLString; overload;
    procedure setSize(para1: JLString); overload;
  end;

  OWDHHTMLFormElement = interface external 'org.w3c.dom.html' name 'HTMLFormElement' (OWDHHTMLElement)
    function getElements(): OWDHHTMLCollection; overload;
    function getLength(): jint; overload;
    function getName(): JLString; overload;
    procedure setName(para1: JLString); overload;
    function getAcceptCharset(): JLString; overload;
    procedure setAcceptCharset(para1: JLString); overload;
    function getAction(): JLString; overload;
    procedure setAction(para1: JLString); overload;
    function getEnctype(): JLString; overload;
    procedure setEnctype(para1: JLString); overload;
    function getMethod(): JLString; overload;
    procedure setMethod(para1: JLString); overload;
    function getTarget(): JLString; overload;
    procedure setTarget(para1: JLString); overload;
    procedure submit(); overload;
    procedure reset(); overload;
  end;

  OWDHHTMLFrameElement = interface external 'org.w3c.dom.html' name 'HTMLFrameElement' (OWDHHTMLElement)
    function getFrameBorder(): JLString; overload;
    procedure setFrameBorder(para1: JLString); overload;
    function getLongDesc(): JLString; overload;
    procedure setLongDesc(para1: JLString); overload;
    function getMarginHeight(): JLString; overload;
    procedure setMarginHeight(para1: JLString); overload;
    function getMarginWidth(): JLString; overload;
    procedure setMarginWidth(para1: JLString); overload;
    function getName(): JLString; overload;
    procedure setName(para1: JLString); overload;
    function getNoResize(): jboolean; overload;
    procedure setNoResize(para1: jboolean); overload;
    function getScrolling(): JLString; overload;
    procedure setScrolling(para1: JLString); overload;
    function getSrc(): JLString; overload;
    procedure setSrc(para1: JLString); overload;
    function getContentDocument(): OWDDocument; overload;
  end;

  OWDHHTMLFrameSetElement = interface external 'org.w3c.dom.html' name 'HTMLFrameSetElement' (OWDHHTMLElement)
    function getCols(): JLString; overload;
    procedure setCols(para1: JLString); overload;
    function getRows(): JLString; overload;
    procedure setRows(para1: JLString); overload;
  end;

  OWDHHTMLHRElement = interface external 'org.w3c.dom.html' name 'HTMLHRElement' (OWDHHTMLElement)
    function getAlign(): JLString; overload;
    procedure setAlign(para1: JLString); overload;
    function getNoShade(): jboolean; overload;
    procedure setNoShade(para1: jboolean); overload;
    function getSize(): JLString; overload;
    procedure setSize(para1: JLString); overload;
    function getWidth(): JLString; overload;
    procedure setWidth(para1: JLString); overload;
  end;

  OWDHHTMLHeadElement = interface external 'org.w3c.dom.html' name 'HTMLHeadElement' (OWDHHTMLElement)
    function getProfile(): JLString; overload;
    procedure setProfile(para1: JLString); overload;
  end;

  OWDHHTMLHeadingElement = interface external 'org.w3c.dom.html' name 'HTMLHeadingElement' (OWDHHTMLElement)
    function getAlign(): JLString; overload;
    procedure setAlign(para1: JLString); overload;
  end;

  OWDHHTMLHtmlElement = interface external 'org.w3c.dom.html' name 'HTMLHtmlElement' (OWDHHTMLElement)
    function getVersion(): JLString; overload;
    procedure setVersion(para1: JLString); overload;
  end;

  OWDHHTMLIFrameElement = interface external 'org.w3c.dom.html' name 'HTMLIFrameElement' (OWDHHTMLElement)
    function getAlign(): JLString; overload;
    procedure setAlign(para1: JLString); overload;
    function getFrameBorder(): JLString; overload;
    procedure setFrameBorder(para1: JLString); overload;
    function getHeight(): JLString; overload;
    procedure setHeight(para1: JLString); overload;
    function getLongDesc(): JLString; overload;
    procedure setLongDesc(para1: JLString); overload;
    function getMarginHeight(): JLString; overload;
    procedure setMarginHeight(para1: JLString); overload;
    function getMarginWidth(): JLString; overload;
    procedure setMarginWidth(para1: JLString); overload;
    function getName(): JLString; overload;
    procedure setName(para1: JLString); overload;
    function getScrolling(): JLString; overload;
    procedure setScrolling(para1: JLString); overload;
    function getSrc(): JLString; overload;
    procedure setSrc(para1: JLString); overload;
    function getWidth(): JLString; overload;
    procedure setWidth(para1: JLString); overload;
    function getContentDocument(): OWDDocument; overload;
  end;

  OWDHHTMLImageElement = interface external 'org.w3c.dom.html' name 'HTMLImageElement' (OWDHHTMLElement)
    function getLowSrc(): JLString; overload;
    procedure setLowSrc(para1: JLString); overload;
    function getName(): JLString; overload;
    procedure setName(para1: JLString); overload;
    function getAlign(): JLString; overload;
    procedure setAlign(para1: JLString); overload;
    function getAlt(): JLString; overload;
    procedure setAlt(para1: JLString); overload;
    function getBorder(): JLString; overload;
    procedure setBorder(para1: JLString); overload;
    function getHeight(): JLString; overload;
    procedure setHeight(para1: JLString); overload;
    function getHspace(): JLString; overload;
    procedure setHspace(para1: JLString); overload;
    function getIsMap(): jboolean; overload;
    procedure setIsMap(para1: jboolean); overload;
    function getLongDesc(): JLString; overload;
    procedure setLongDesc(para1: JLString); overload;
    function getSrc(): JLString; overload;
    procedure setSrc(para1: JLString); overload;
    function getUseMap(): JLString; overload;
    procedure setUseMap(para1: JLString); overload;
    function getVspace(): JLString; overload;
    procedure setVspace(para1: JLString); overload;
    function getWidth(): JLString; overload;
    procedure setWidth(para1: JLString); overload;
  end;

  OWDHHTMLInputElement = interface external 'org.w3c.dom.html' name 'HTMLInputElement' (OWDHHTMLElement)
    function getDefaultValue(): JLString; overload;
    procedure setDefaultValue(para1: JLString); overload;
    function getDefaultChecked(): jboolean; overload;
    procedure setDefaultChecked(para1: jboolean); overload;
    function getForm(): OWDHHTMLFormElement; overload;
    function getAccept(): JLString; overload;
    procedure setAccept(para1: JLString); overload;
    function getAccessKey(): JLString; overload;
    procedure setAccessKey(para1: JLString); overload;
    function getAlign(): JLString; overload;
    procedure setAlign(para1: JLString); overload;
    function getAlt(): JLString; overload;
    procedure setAlt(para1: JLString); overload;
    function getChecked(): jboolean; overload;
    procedure setChecked(para1: jboolean); overload;
    function getDisabled(): jboolean; overload;
    procedure setDisabled(para1: jboolean); overload;
    function getMaxLength(): jint; overload;
    procedure setMaxLength(para1: jint); overload;
    function getName(): JLString; overload;
    procedure setName(para1: JLString); overload;
    function getReadOnly(): jboolean; overload;
    procedure setReadOnly(para1: jboolean); overload;
    function getSize(): JLString; overload;
    procedure setSize(para1: JLString); overload;
    function getSrc(): JLString; overload;
    procedure setSrc(para1: JLString); overload;
    function getTabIndex(): jint; overload;
    procedure setTabIndex(para1: jint); overload;
    function getType(): JLString; overload;
    function getUseMap(): JLString; overload;
    procedure setUseMap(para1: JLString); overload;
    function getValue(): JLString; overload;
    procedure setValue(para1: JLString); overload;
    procedure blur(); overload;
    procedure focus(); overload;
    procedure select(); overload;
    procedure click(); overload;
  end;

  OWDHHTMLIsIndexElement = interface external 'org.w3c.dom.html' name 'HTMLIsIndexElement' (OWDHHTMLElement)
    function getForm(): OWDHHTMLFormElement; overload;
    function getPrompt(): JLString; overload;
    procedure setPrompt(para1: JLString); overload;
  end;

  OWDHHTMLLIElement = interface external 'org.w3c.dom.html' name 'HTMLLIElement' (OWDHHTMLElement)
    function getType(): JLString; overload;
    procedure setType(para1: JLString); overload;
    function getValue(): jint; overload;
    procedure setValue(para1: jint); overload;
  end;

  OWDHHTMLLabelElement = interface external 'org.w3c.dom.html' name 'HTMLLabelElement' (OWDHHTMLElement)
    function getForm(): OWDHHTMLFormElement; overload;
    function getAccessKey(): JLString; overload;
    procedure setAccessKey(para1: JLString); overload;
    function getHtmlFor(): JLString; overload;
    procedure setHtmlFor(para1: JLString); overload;
  end;

  OWDHHTMLLegendElement = interface external 'org.w3c.dom.html' name 'HTMLLegendElement' (OWDHHTMLElement)
    function getForm(): OWDHHTMLFormElement; overload;
    function getAccessKey(): JLString; overload;
    procedure setAccessKey(para1: JLString); overload;
    function getAlign(): JLString; overload;
    procedure setAlign(para1: JLString); overload;
  end;

  OWDHHTMLLinkElement = interface external 'org.w3c.dom.html' name 'HTMLLinkElement' (OWDHHTMLElement)
    function getDisabled(): jboolean; overload;
    procedure setDisabled(para1: jboolean); overload;
    function getCharset(): JLString; overload;
    procedure setCharset(para1: JLString); overload;
    function getHref(): JLString; overload;
    procedure setHref(para1: JLString); overload;
    function getHreflang(): JLString; overload;
    procedure setHreflang(para1: JLString); overload;
    function getMedia(): JLString; overload;
    procedure setMedia(para1: JLString); overload;
    function getRel(): JLString; overload;
    procedure setRel(para1: JLString); overload;
    function getRev(): JLString; overload;
    procedure setRev(para1: JLString); overload;
    function getTarget(): JLString; overload;
    procedure setTarget(para1: JLString); overload;
    function getType(): JLString; overload;
    procedure setType(para1: JLString); overload;
  end;

  OWDHHTMLMapElement = interface external 'org.w3c.dom.html' name 'HTMLMapElement' (OWDHHTMLElement)
    function getAreas(): OWDHHTMLCollection; overload;
    function getName(): JLString; overload;
    procedure setName(para1: JLString); overload;
  end;

  OWDHHTMLMenuElement = interface external 'org.w3c.dom.html' name 'HTMLMenuElement' (OWDHHTMLElement)
    function getCompact(): jboolean; overload;
    procedure setCompact(para1: jboolean); overload;
  end;

  OWDHHTMLMetaElement = interface external 'org.w3c.dom.html' name 'HTMLMetaElement' (OWDHHTMLElement)
    function getContent(): JLString; overload;
    procedure setContent(para1: JLString); overload;
    function getHttpEquiv(): JLString; overload;
    procedure setHttpEquiv(para1: JLString); overload;
    function getName(): JLString; overload;
    procedure setName(para1: JLString); overload;
    function getScheme(): JLString; overload;
    procedure setScheme(para1: JLString); overload;
  end;

  OWDHHTMLModElement = interface external 'org.w3c.dom.html' name 'HTMLModElement' (OWDHHTMLElement)
    function getCite(): JLString; overload;
    procedure setCite(para1: JLString); overload;
    function getDateTime(): JLString; overload;
    procedure setDateTime(para1: JLString); overload;
  end;

  OWDHHTMLOListElement = interface external 'org.w3c.dom.html' name 'HTMLOListElement' (OWDHHTMLElement)
    function getCompact(): jboolean; overload;
    procedure setCompact(para1: jboolean); overload;
    function getStart(): jint; overload;
    procedure setStart(para1: jint); overload;
    function getType(): JLString; overload;
    procedure setType(para1: JLString); overload;
  end;

  OWDHHTMLObjectElement = interface external 'org.w3c.dom.html' name 'HTMLObjectElement' (OWDHHTMLElement)
    function getForm(): OWDHHTMLFormElement; overload;
    function getCode(): JLString; overload;
    procedure setCode(para1: JLString); overload;
    function getAlign(): JLString; overload;
    procedure setAlign(para1: JLString); overload;
    function getArchive(): JLString; overload;
    procedure setArchive(para1: JLString); overload;
    function getBorder(): JLString; overload;
    procedure setBorder(para1: JLString); overload;
    function getCodeBase(): JLString; overload;
    procedure setCodeBase(para1: JLString); overload;
    function getCodeType(): JLString; overload;
    procedure setCodeType(para1: JLString); overload;
    function getData(): JLString; overload;
    procedure setData(para1: JLString); overload;
    function getDeclare(): jboolean; overload;
    procedure setDeclare(para1: jboolean); overload;
    function getHeight(): JLString; overload;
    procedure setHeight(para1: JLString); overload;
    function getHspace(): JLString; overload;
    procedure setHspace(para1: JLString); overload;
    function getName(): JLString; overload;
    procedure setName(para1: JLString); overload;
    function getStandby(): JLString; overload;
    procedure setStandby(para1: JLString); overload;
    function getTabIndex(): jint; overload;
    procedure setTabIndex(para1: jint); overload;
    function getType(): JLString; overload;
    procedure setType(para1: JLString); overload;
    function getUseMap(): JLString; overload;
    procedure setUseMap(para1: JLString); overload;
    function getVspace(): JLString; overload;
    procedure setVspace(para1: JLString); overload;
    function getWidth(): JLString; overload;
    procedure setWidth(para1: JLString); overload;
    function getContentDocument(): OWDDocument; overload;
  end;

  OWDHHTMLOptGroupElement = interface external 'org.w3c.dom.html' name 'HTMLOptGroupElement' (OWDHHTMLElement)
    function getDisabled(): jboolean; overload;
    procedure setDisabled(para1: jboolean); overload;
    function getLabel(): JLString; overload;
    procedure setLabel(para1: JLString); overload;
  end;

  OWDHHTMLOptionElement = interface external 'org.w3c.dom.html' name 'HTMLOptionElement' (OWDHHTMLElement)
    function getForm(): OWDHHTMLFormElement; overload;
    function getDefaultSelected(): jboolean; overload;
    procedure setDefaultSelected(para1: jboolean); overload;
    function getText(): JLString; overload;
    function getIndex(): jint; overload;
    function getDisabled(): jboolean; overload;
    procedure setDisabled(para1: jboolean); overload;
    function getLabel(): JLString; overload;
    procedure setLabel(para1: JLString); overload;
    function getSelected(): jboolean; overload;
    procedure setSelected(para1: jboolean); overload;
    function getValue(): JLString; overload;
    procedure setValue(para1: JLString); overload;
  end;

  OWDHHTMLParagraphElement = interface external 'org.w3c.dom.html' name 'HTMLParagraphElement' (OWDHHTMLElement)
    function getAlign(): JLString; overload;
    procedure setAlign(para1: JLString); overload;
  end;

  OWDHHTMLParamElement = interface external 'org.w3c.dom.html' name 'HTMLParamElement' (OWDHHTMLElement)
    function getName(): JLString; overload;
    procedure setName(para1: JLString); overload;
    function getType(): JLString; overload;
    procedure setType(para1: JLString); overload;
    function getValue(): JLString; overload;
    procedure setValue(para1: JLString); overload;
    function getValueType(): JLString; overload;
    procedure setValueType(para1: JLString); overload;
  end;

  OWDHHTMLPreElement = interface external 'org.w3c.dom.html' name 'HTMLPreElement' (OWDHHTMLElement)
    function getWidth(): jint; overload;
    procedure setWidth(para1: jint); overload;
  end;

  OWDHHTMLQuoteElement = interface external 'org.w3c.dom.html' name 'HTMLQuoteElement' (OWDHHTMLElement)
    function getCite(): JLString; overload;
    procedure setCite(para1: JLString); overload;
  end;

  OWDHHTMLScriptElement = interface external 'org.w3c.dom.html' name 'HTMLScriptElement' (OWDHHTMLElement)
    function getText(): JLString; overload;
    procedure setText(para1: JLString); overload;
    function getHtmlFor(): JLString; overload;
    procedure setHtmlFor(para1: JLString); overload;
    function getEvent(): JLString; overload;
    procedure setEvent(para1: JLString); overload;
    function getCharset(): JLString; overload;
    procedure setCharset(para1: JLString); overload;
    function getDefer(): jboolean; overload;
    procedure setDefer(para1: jboolean); overload;
    function getSrc(): JLString; overload;
    procedure setSrc(para1: JLString); overload;
    function getType(): JLString; overload;
    procedure setType(para1: JLString); overload;
  end;

  OWDHHTMLSelectElement = interface external 'org.w3c.dom.html' name 'HTMLSelectElement' (OWDHHTMLElement)
    function getType(): JLString; overload;
    function getSelectedIndex(): jint; overload;
    procedure setSelectedIndex(para1: jint); overload;
    function getValue(): JLString; overload;
    procedure setValue(para1: JLString); overload;
    function getLength(): jint; overload;
    function getForm(): OWDHHTMLFormElement; overload;
    function getOptions(): OWDHHTMLCollection; overload;
    function getDisabled(): jboolean; overload;
    procedure setDisabled(para1: jboolean); overload;
    function getMultiple(): jboolean; overload;
    procedure setMultiple(para1: jboolean); overload;
    function getName(): JLString; overload;
    procedure setName(para1: JLString); overload;
    function getSize(): jint; overload;
    procedure setSize(para1: jint); overload;
    function getTabIndex(): jint; overload;
    procedure setTabIndex(para1: jint); overload;
    procedure add(para1: OWDHHTMLElement; para2: OWDHHTMLElement); overload;  // throws org.w3c.dom.DOMException
    procedure remove(para1: jint); overload;
    procedure blur(); overload;
    procedure focus(); overload;
  end;

  OWDHHTMLStyleElement = interface external 'org.w3c.dom.html' name 'HTMLStyleElement' (OWDHHTMLElement)
    function getDisabled(): jboolean; overload;
    procedure setDisabled(para1: jboolean); overload;
    function getMedia(): JLString; overload;
    procedure setMedia(para1: JLString); overload;
    function getType(): JLString; overload;
    procedure setType(para1: JLString); overload;
  end;

  OWDHHTMLTableCaptionElement = interface external 'org.w3c.dom.html' name 'HTMLTableCaptionElement' (OWDHHTMLElement)
    function getAlign(): JLString; overload;
    procedure setAlign(para1: JLString); overload;
  end;

  OWDHHTMLTableCellElement = interface external 'org.w3c.dom.html' name 'HTMLTableCellElement' (OWDHHTMLElement)
    function getCellIndex(): jint; overload;
    function getAbbr(): JLString; overload;
    procedure setAbbr(para1: JLString); overload;
    function getAlign(): JLString; overload;
    procedure setAlign(para1: JLString); overload;
    function getAxis(): JLString; overload;
    procedure setAxis(para1: JLString); overload;
    function getBgColor(): JLString; overload;
    procedure setBgColor(para1: JLString); overload;
    function getCh(): JLString; overload;
    procedure setCh(para1: JLString); overload;
    function getChOff(): JLString; overload;
    procedure setChOff(para1: JLString); overload;
    function getColSpan(): jint; overload;
    procedure setColSpan(para1: jint); overload;
    function getHeaders(): JLString; overload;
    procedure setHeaders(para1: JLString); overload;
    function getHeight(): JLString; overload;
    procedure setHeight(para1: JLString); overload;
    function getNoWrap(): jboolean; overload;
    procedure setNoWrap(para1: jboolean); overload;
    function getRowSpan(): jint; overload;
    procedure setRowSpan(para1: jint); overload;
    function getScope(): JLString; overload;
    procedure setScope(para1: JLString); overload;
    function getVAlign(): JLString; overload;
    procedure setVAlign(para1: JLString); overload;
    function getWidth(): JLString; overload;
    procedure setWidth(para1: JLString); overload;
  end;

  OWDHHTMLTableColElement = interface external 'org.w3c.dom.html' name 'HTMLTableColElement' (OWDHHTMLElement)
    function getAlign(): JLString; overload;
    procedure setAlign(para1: JLString); overload;
    function getCh(): JLString; overload;
    procedure setCh(para1: JLString); overload;
    function getChOff(): JLString; overload;
    procedure setChOff(para1: JLString); overload;
    function getSpan(): jint; overload;
    procedure setSpan(para1: jint); overload;
    function getVAlign(): JLString; overload;
    procedure setVAlign(para1: JLString); overload;
    function getWidth(): JLString; overload;
    procedure setWidth(para1: JLString); overload;
  end;

  OWDHHTMLTableElement = interface external 'org.w3c.dom.html' name 'HTMLTableElement' (OWDHHTMLElement)
    function getCaption(): OWDHHTMLTableCaptionElement; overload;
    procedure setCaption(para1: OWDHHTMLTableCaptionElement); overload;
    function getTHead(): OWDHHTMLTableSectionElement; overload;
    procedure setTHead(para1: OWDHHTMLTableSectionElement); overload;
    function getTFoot(): OWDHHTMLTableSectionElement; overload;
    procedure setTFoot(para1: OWDHHTMLTableSectionElement); overload;
    function getRows(): OWDHHTMLCollection; overload;
    function getTBodies(): OWDHHTMLCollection; overload;
    function getAlign(): JLString; overload;
    procedure setAlign(para1: JLString); overload;
    function getBgColor(): JLString; overload;
    procedure setBgColor(para1: JLString); overload;
    function getBorder(): JLString; overload;
    procedure setBorder(para1: JLString); overload;
    function getCellPadding(): JLString; overload;
    procedure setCellPadding(para1: JLString); overload;
    function getCellSpacing(): JLString; overload;
    procedure setCellSpacing(para1: JLString); overload;
    function getFrame(): JLString; overload;
    procedure setFrame(para1: JLString); overload;
    function getRules(): JLString; overload;
    procedure setRules(para1: JLString); overload;
    function getSummary(): JLString; overload;
    procedure setSummary(para1: JLString); overload;
    function getWidth(): JLString; overload;
    procedure setWidth(para1: JLString); overload;
    function createTHead(): OWDHHTMLElement; overload;
    procedure deleteTHead(); overload;
    function createTFoot(): OWDHHTMLElement; overload;
    procedure deleteTFoot(); overload;
    function createCaption(): OWDHHTMLElement; overload;
    procedure deleteCaption(); overload;
    function insertRow(para1: jint): OWDHHTMLElement; overload;  // throws org.w3c.dom.DOMException
    procedure deleteRow(para1: jint); overload;  // throws org.w3c.dom.DOMException
  end;

  OWDHHTMLTableRowElement = interface external 'org.w3c.dom.html' name 'HTMLTableRowElement' (OWDHHTMLElement)
    function getRowIndex(): jint; overload;
    function getSectionRowIndex(): jint; overload;
    function getCells(): OWDHHTMLCollection; overload;
    function getAlign(): JLString; overload;
    procedure setAlign(para1: JLString); overload;
    function getBgColor(): JLString; overload;
    procedure setBgColor(para1: JLString); overload;
    function getCh(): JLString; overload;
    procedure setCh(para1: JLString); overload;
    function getChOff(): JLString; overload;
    procedure setChOff(para1: JLString); overload;
    function getVAlign(): JLString; overload;
    procedure setVAlign(para1: JLString); overload;
    function insertCell(para1: jint): OWDHHTMLElement; overload;  // throws org.w3c.dom.DOMException
    procedure deleteCell(para1: jint); overload;  // throws org.w3c.dom.DOMException
  end;

  OWDHHTMLTableSectionElement = interface external 'org.w3c.dom.html' name 'HTMLTableSectionElement' (OWDHHTMLElement)
    function getAlign(): JLString; overload;
    procedure setAlign(para1: JLString); overload;
    function getCh(): JLString; overload;
    procedure setCh(para1: JLString); overload;
    function getChOff(): JLString; overload;
    procedure setChOff(para1: JLString); overload;
    function getVAlign(): JLString; overload;
    procedure setVAlign(para1: JLString); overload;
    function getRows(): OWDHHTMLCollection; overload;
    function insertRow(para1: jint): OWDHHTMLElement; overload;  // throws org.w3c.dom.DOMException
    procedure deleteRow(para1: jint); overload;  // throws org.w3c.dom.DOMException
  end;

  OWDHHTMLTextAreaElement = interface external 'org.w3c.dom.html' name 'HTMLTextAreaElement' (OWDHHTMLElement)
    function getDefaultValue(): JLString; overload;
    procedure setDefaultValue(para1: JLString); overload;
    function getForm(): OWDHHTMLFormElement; overload;
    function getAccessKey(): JLString; overload;
    procedure setAccessKey(para1: JLString); overload;
    function getCols(): jint; overload;
    procedure setCols(para1: jint); overload;
    function getDisabled(): jboolean; overload;
    procedure setDisabled(para1: jboolean); overload;
    function getName(): JLString; overload;
    procedure setName(para1: JLString); overload;
    function getReadOnly(): jboolean; overload;
    procedure setReadOnly(para1: jboolean); overload;
    function getRows(): jint; overload;
    procedure setRows(para1: jint); overload;
    function getTabIndex(): jint; overload;
    procedure setTabIndex(para1: jint); overload;
    function getType(): JLString; overload;
    function getValue(): JLString; overload;
    procedure setValue(para1: JLString); overload;
    procedure blur(); overload;
    procedure focus(); overload;
    procedure select(); overload;
  end;

  OWDHHTMLTitleElement = interface external 'org.w3c.dom.html' name 'HTMLTitleElement' (OWDHHTMLElement)
    function getText(): JLString; overload;
    procedure setText(para1: JLString); overload;
  end;

  OWDHHTMLUListElement = interface external 'org.w3c.dom.html' name 'HTMLUListElement' (OWDHHTMLElement)
    function getCompact(): jboolean; overload;
    procedure setCompact(para1: jboolean); overload;
    function getType(): JLString; overload;
    procedure setType(para1: JLString); overload;
  end;

  JSALAccountExpiredException = class external 'javax.security.auth.login' name 'AccountExpiredException' (JSALAccountException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JSALAccountLockedException = class external 'javax.security.auth.login' name 'AccountLockedException' (JSALAccountException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JSALAccountNotFoundException = class external 'javax.security.auth.login' name 'AccountNotFoundException' (JSALAccountException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JSALCredentialExpiredException = class external 'javax.security.auth.login' name 'CredentialExpiredException' (JSALCredentialException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JSALCredentialNotFoundException = class external 'javax.security.auth.login' name 'CredentialNotFoundException' (JSALCredentialException)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
  end;

  JAPopupMenu = class external 'java.awt' name 'PopupMenu' (JAMenu)
  public
    type
      InnerAccessibleAWTPopupMenu = class;
      Arr1InnerAccessibleAWTPopupMenu = array of InnerAccessibleAWTPopupMenu;
      Arr2InnerAccessibleAWTPopupMenu = array of Arr1InnerAccessibleAWTPopupMenu;
      Arr3InnerAccessibleAWTPopupMenu = array of Arr2InnerAccessibleAWTPopupMenu;
      InnerAccessibleAWTPopupMenu = class external 'java.awt' name 'AccessibleAWTPopupMenu' 
      end;

  public
    constructor create(); overload;  // throws java.awt.HeadlessException
    constructor create(para1: JLString); overload;  // throws java.awt.HeadlessException
    function getParent(): JAMenuContainer; overload; virtual;
    procedure addNotify(); overload; virtual;
    procedure show(para1: JAComponent; para2: jint; para3: jint); overload; virtual;
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSIRSAMultiPrimePrivateCrtKey = interface external 'java.security.interfaces' name 'RSAMultiPrimePrivateCrtKey' (JSIRSAPrivateKey)
    const
      serialVersionUID = jlong(618058533534628008);
    function getPublicExponent(): JMBigInteger; overload;
    function getPrimeP(): JMBigInteger; overload;
    function getPrimeQ(): JMBigInteger; overload;
    function getPrimeExponentP(): JMBigInteger; overload;
    function getPrimeExponentQ(): JMBigInteger; overload;
    function getCrtCoefficient(): JMBigInteger; overload;
    function getOtherPrimeInfo(): Arr1JSSRSAOtherPrimeInfo; overload;
  end;

  JSIRSAPrivateCrtKey = interface external 'java.security.interfaces' name 'RSAPrivateCrtKey' (JSIRSAPrivateKey)
    const
      serialVersionUID = jlong(-5682214253527700368);
    function getPublicExponent(): JMBigInteger; overload;
    function getPrimeP(): JMBigInteger; overload;
    function getPrimeQ(): JMBigInteger; overload;
    function getPrimeExponentP(): JMBigInteger; overload;
    function getPrimeExponentQ(): JMBigInteger; overload;
    function getCrtCoefficient(): JMBigInteger; overload;
  end;

  JAEContainerEvent = class external 'java.awt.event' name 'ContainerEvent' (JAEComponentEvent)
  public
    const
      CONTAINER_FIRST = 300;
      CONTAINER_LAST = 301;
      COMPONENT_ADDED = 300;
      COMPONENT_REMOVED = 301;
  public
    constructor create(para1: JAComponent; para2: jint; para3: JAComponent); overload;
    function getContainer(): JAContainer; overload; virtual;
    function getChild(): JAComponent; overload; virtual;
    function paramString(): JLString; overload; virtual;
  end;

  JAEFocusEvent = class external 'java.awt.event' name 'FocusEvent' (JAEComponentEvent)
  public
    const
      FOCUS_FIRST = 1004;
      FOCUS_LAST = 1005;
      FOCUS_GAINED = 1004;
      FOCUS_LOST = 1005;
  public
    constructor create(para1: JAComponent; para2: jint; para3: jboolean; para4: JAComponent); overload;
    constructor create(para1: JAComponent; para2: jint; para3: jboolean); overload;
    constructor create(para1: JAComponent; para2: jint); overload;
    function isTemporary(): jboolean; overload; virtual;
    function getOppositeComponent(): JAComponent; overload; virtual;
    function paramString(): JLString; overload; virtual;
  end;

  JAEInputEvent = class abstract external 'java.awt.event' name 'InputEvent' (JAEComponentEvent)
  public
    const
      SHIFT_MASK = 1;
      CTRL_MASK = 2;
      META_MASK = 4;
      ALT_MASK = 8;
      ALT_GRAPH_MASK = 32;
      BUTTON1_MASK = 16;
      BUTTON2_MASK = 8;
      BUTTON3_MASK = 4;
      SHIFT_DOWN_MASK = 64;
      CTRL_DOWN_MASK = 128;
      META_DOWN_MASK = 256;
      ALT_DOWN_MASK = 512;
      BUTTON1_DOWN_MASK = 1024;
      BUTTON2_DOWN_MASK = 2048;
      BUTTON3_DOWN_MASK = 4096;
      ALT_GRAPH_DOWN_MASK = 8192;
  public
    function isShiftDown(): jboolean; overload; virtual;
    function isControlDown(): jboolean; overload; virtual;
    function isMetaDown(): jboolean; overload; virtual;
    function isAltDown(): jboolean; overload; virtual;
    function isAltGraphDown(): jboolean; overload; virtual;
    function getWhen(): jlong; overload; virtual;
    function getModifiers(): jint; overload; virtual;
    function getModifiersEx(): jint; overload; virtual;
    procedure consume(); overload; virtual;
    function isConsumed(): jboolean; overload; virtual;
    class function getModifiersExText(para1: jint): JLString; static; overload;
  end;

  JAEPaintEvent = class external 'java.awt.event' name 'PaintEvent' (JAEComponentEvent)
  public
    const
      PAINT_FIRST = 800;
      PAINT_LAST = 801;
      PAINT = 800;
      UPDATE = 801;
  public
    constructor create(para1: JAComponent; para2: jint; para3: JARectangle); overload;
    function getUpdateRect(): JARectangle; overload; virtual;
    procedure setUpdateRect(para1: JARectangle); overload; virtual;
    function paramString(): JLString; overload; virtual;
  end;

  JAEWindowEvent = class external 'java.awt.event' name 'WindowEvent' (JAEComponentEvent)
  public
    const
      WINDOW_FIRST = 200;
      WINDOW_OPENED = 200;
      WINDOW_CLOSING = 201;
      WINDOW_CLOSED = 202;
      WINDOW_ICONIFIED = 203;
      WINDOW_DEICONIFIED = 204;
      WINDOW_ACTIVATED = 205;
      WINDOW_DEACTIVATED = 206;
      WINDOW_GAINED_FOCUS = 207;
      WINDOW_LOST_FOCUS = 208;
      WINDOW_STATE_CHANGED = 209;
      WINDOW_LAST = 209;
  public
    constructor create(para1: JAWindow; para2: jint; para3: JAWindow; para4: jint; para5: jint); overload;
    constructor create(para1: JAWindow; para2: jint; para3: JAWindow); overload;
    constructor create(para1: JAWindow; para2: jint; para3: jint; para4: jint); overload;
    constructor create(para1: JAWindow; para2: jint); overload;
    function getWindow(): JAWindow; overload; virtual;
    function getOppositeWindow(): JAWindow; overload; virtual;
    function getOldState(): jint; overload; virtual;
    function getNewState(): jint; overload; virtual;
    function paramString(): JLString; overload; virtual;
  end;

  JSTHFormSubmitEvent = class external 'javax.swing.text.html' name 'FormSubmitEvent' (JSTHHTMLFrameHyperlinkEvent)
  public
    type
      InnerMethodType = class;
      Arr1InnerMethodType = array of InnerMethodType;
      Arr2InnerMethodType = array of Arr1InnerMethodType;
      Arr3InnerMethodType = array of Arr2InnerMethodType;
      InnerMethodType = class sealed external 'javax.swing.text.html' name 'MethodType' (JLEnum)
      public
        final class var
          fGET: JSTHFormSubmitEvent.InnerMethodType; external name 'GET';
          fPOST: JSTHFormSubmitEvent.InnerMethodType; external name 'POST';
      public
        class function values(): JSTHFormSubmitEvent.Arr1InnerMethodType; static; overload;
        class function valueOf(para1: JLString): JSTHFormSubmitEvent.InnerMethodType; static; overload;
      end;

  public
    function getMethod(): JSTHFormSubmitEvent.InnerMethodType; overload; virtual;
    function getData(): JLString; overload; virtual;
  end;

  JPASMediaName = class external 'javax.print.attribute.standard' name 'MediaName' (JPASMedia, JPAAttribute)
  public
    final class var
      fNA_LETTER_WHITE: JPASMediaName; external name 'NA_LETTER_WHITE';
      fNA_LETTER_TRANSPARENT: JPASMediaName; external name 'NA_LETTER_TRANSPARENT';
      fISO_A4_WHITE: JPASMediaName; external name 'ISO_A4_WHITE';
      fISO_A4_TRANSPARENT: JPASMediaName; external name 'ISO_A4_TRANSPARENT';
  strict protected
    constructor create(para1: jint); overload;
    function getStringTable(): Arr1JLString; overload; virtual;
    function getEnumValueTable(): Arr1JPAEnumSyntax; overload; virtual;
  end;

  JPASMediaSizeName = class external 'javax.print.attribute.standard' name 'MediaSizeName' (JPASMedia)
  public
    final class var
      fISO_A0: JPASMediaSizeName; external name 'ISO_A0';
      fISO_A1: JPASMediaSizeName; external name 'ISO_A1';
      fISO_A2: JPASMediaSizeName; external name 'ISO_A2';
      fISO_A3: JPASMediaSizeName; external name 'ISO_A3';
      fISO_A4: JPASMediaSizeName; external name 'ISO_A4';
      fISO_A5: JPASMediaSizeName; external name 'ISO_A5';
      fISO_A6: JPASMediaSizeName; external name 'ISO_A6';
      fISO_A7: JPASMediaSizeName; external name 'ISO_A7';
      fISO_A8: JPASMediaSizeName; external name 'ISO_A8';
      fISO_A9: JPASMediaSizeName; external name 'ISO_A9';
      fISO_A10: JPASMediaSizeName; external name 'ISO_A10';
      fISO_B0: JPASMediaSizeName; external name 'ISO_B0';
      fISO_B1: JPASMediaSizeName; external name 'ISO_B1';
      fISO_B2: JPASMediaSizeName; external name 'ISO_B2';
      fISO_B3: JPASMediaSizeName; external name 'ISO_B3';
      fISO_B4: JPASMediaSizeName; external name 'ISO_B4';
      fISO_B5: JPASMediaSizeName; external name 'ISO_B5';
      fISO_B6: JPASMediaSizeName; external name 'ISO_B6';
      fISO_B7: JPASMediaSizeName; external name 'ISO_B7';
      fISO_B8: JPASMediaSizeName; external name 'ISO_B8';
      fISO_B9: JPASMediaSizeName; external name 'ISO_B9';
      fISO_B10: JPASMediaSizeName; external name 'ISO_B10';
      fJIS_B0: JPASMediaSizeName; external name 'JIS_B0';
      fJIS_B1: JPASMediaSizeName; external name 'JIS_B1';
      fJIS_B2: JPASMediaSizeName; external name 'JIS_B2';
      fJIS_B3: JPASMediaSizeName; external name 'JIS_B3';
      fJIS_B4: JPASMediaSizeName; external name 'JIS_B4';
      fJIS_B5: JPASMediaSizeName; external name 'JIS_B5';
      fJIS_B6: JPASMediaSizeName; external name 'JIS_B6';
      fJIS_B7: JPASMediaSizeName; external name 'JIS_B7';
      fJIS_B8: JPASMediaSizeName; external name 'JIS_B8';
      fJIS_B9: JPASMediaSizeName; external name 'JIS_B9';
      fJIS_B10: JPASMediaSizeName; external name 'JIS_B10';
      fISO_C0: JPASMediaSizeName; external name 'ISO_C0';
      fISO_C1: JPASMediaSizeName; external name 'ISO_C1';
      fISO_C2: JPASMediaSizeName; external name 'ISO_C2';
      fISO_C3: JPASMediaSizeName; external name 'ISO_C3';
      fISO_C4: JPASMediaSizeName; external name 'ISO_C4';
      fISO_C5: JPASMediaSizeName; external name 'ISO_C5';
      fISO_C6: JPASMediaSizeName; external name 'ISO_C6';
      fNA_LETTER: JPASMediaSizeName; external name 'NA_LETTER';
      fNA_LEGAL: JPASMediaSizeName; external name 'NA_LEGAL';
      fEXECUTIVE: JPASMediaSizeName; external name 'EXECUTIVE';
      fLEDGER: JPASMediaSizeName; external name 'LEDGER';
      fTABLOID: JPASMediaSizeName; external name 'TABLOID';
      fINVOICE: JPASMediaSizeName; external name 'INVOICE';
      fFOLIO: JPASMediaSizeName; external name 'FOLIO';
      fQUARTO: JPASMediaSizeName; external name 'QUARTO';
      fJAPANESE_POSTCARD: JPASMediaSizeName; external name 'JAPANESE_POSTCARD';
      fJAPANESE_DOUBLE_POSTCARD: JPASMediaSizeName; external name 'JAPANESE_DOUBLE_POSTCARD';
      fA: JPASMediaSizeName; external name 'A';
      fB: JPASMediaSizeName; external name 'B';
      fC: JPASMediaSizeName; external name 'C';
      fD: JPASMediaSizeName; external name 'D';
      fE: JPASMediaSizeName; external name 'E';
      fISO_DESIGNATED_LONG: JPASMediaSizeName; external name 'ISO_DESIGNATED_LONG';
      fITALY_ENVELOPE: JPASMediaSizeName; external name 'ITALY_ENVELOPE';
      fMONARCH_ENVELOPE: JPASMediaSizeName; external name 'MONARCH_ENVELOPE';
      fPERSONAL_ENVELOPE: JPASMediaSizeName; external name 'PERSONAL_ENVELOPE';
      fNA_NUMBER_9_ENVELOPE: JPASMediaSizeName; external name 'NA_NUMBER_9_ENVELOPE';
      fNA_NUMBER_10_ENVELOPE: JPASMediaSizeName; external name 'NA_NUMBER_10_ENVELOPE';
      fNA_NUMBER_11_ENVELOPE: JPASMediaSizeName; external name 'NA_NUMBER_11_ENVELOPE';
      fNA_NUMBER_12_ENVELOPE: JPASMediaSizeName; external name 'NA_NUMBER_12_ENVELOPE';
      fNA_NUMBER_14_ENVELOPE: JPASMediaSizeName; external name 'NA_NUMBER_14_ENVELOPE';
      fNA_6X9_ENVELOPE: JPASMediaSizeName; external name 'NA_6X9_ENVELOPE';
      fNA_7X9_ENVELOPE: JPASMediaSizeName; external name 'NA_7X9_ENVELOPE';
      fNA_9X11_ENVELOPE: JPASMediaSizeName; external name 'NA_9X11_ENVELOPE';
      fNA_9X12_ENVELOPE: JPASMediaSizeName; external name 'NA_9X12_ENVELOPE';
      fNA_10X13_ENVELOPE: JPASMediaSizeName; external name 'NA_10X13_ENVELOPE';
      fNA_10X14_ENVELOPE: JPASMediaSizeName; external name 'NA_10X14_ENVELOPE';
      fNA_10X15_ENVELOPE: JPASMediaSizeName; external name 'NA_10X15_ENVELOPE';
      fNA_5X7: JPASMediaSizeName; external name 'NA_5X7';
      fNA_8X10: JPASMediaSizeName; external name 'NA_8X10';
  strict protected
    constructor create(para1: jint); overload;
    function getStringTable(): Arr1JLString; overload; virtual;
    function getEnumValueTable(): Arr1JPAEnumSyntax; overload; virtual;
  end;

  JPASMediaTray = class external 'javax.print.attribute.standard' name 'MediaTray' (JPASMedia, JPAAttribute)
  public
    final class var
      fTOP: JPASMediaTray; external name 'TOP';
      fMIDDLE: JPASMediaTray; external name 'MIDDLE';
      fBOTTOM: JPASMediaTray; external name 'BOTTOM';
      fENVELOPE: JPASMediaTray; external name 'ENVELOPE';
      fMANUAL: JPASMediaTray; external name 'MANUAL';
      fLARGE_CAPACITY: JPASMediaTray; external name 'LARGE_CAPACITY';
      fMAIN: JPASMediaTray; external name 'MAIN';
      fSIDE: JPASMediaTray; external name 'SIDE';
  strict protected
    constructor create(para1: jint); overload;
    function getStringTable(): Arr1JLString; overload; virtual;
    function getEnumValueTable(): Arr1JPAEnumSyntax; overload; virtual;
  end;

  OOC_IDLTypeStub = class external 'org.omg.CORBA' name '_IDLTypeStub' (OOCPObjectImpl, OOCIDLType)
  public
    constructor create(); overload;
    constructor create(para1: OOCPDelegate); overload;
    function &type(): OOCTypeCode; overload; virtual;
    function def_kind(): OOCDefinitionKind; overload; virtual;
    procedure destroy(); overload; virtual;
    function _ids(): Arr1JLString; overload; virtual;
  end;

  OOPObjectReferenceTemplate = interface external 'org.omg.PortableInterceptor' name 'ObjectReferenceTemplate' (OOPObjectReferenceFactory)
    function server_id(): JLString; overload;
    function orb_id(): JLString; overload;
    function adapter_name(): Arr1JLString; overload;
  end;

  OOC_NamingContextExtStub = class external 'org.omg.CosNaming' name '_NamingContextExtStub' (OOCPObjectImpl, OOCNamingContextExt)
  public
    constructor create(); overload;
    function to_string(para1: Arr1OOCNameComponent): JLString; overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.InvalidName
    function to_string(var para1: array of OOCNameComponent): JLString; overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.InvalidName
    function to_name(para1: JLString): Arr1OOCNameComponent; overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.InvalidName
    function to_url(para1: JLString; para2: JLString): JLString; overload; virtual;  // throws org.omg.CosNaming.NamingContextExtPackage.InvalidAddress, org.omg.CosNaming.NamingContextPackage.InvalidName
    function resolve_str(para1: JLString): OOCObject; overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName
    procedure bind(para1: Arr1OOCNameComponent; para2: OOCObject); overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName, org.omg.CosNaming.NamingContextPackage.AlreadyBound
    procedure bind(var para1: array of OOCNameComponent; para2: OOCObject); overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName, org.omg.CosNaming.NamingContextPackage.AlreadyBound
    procedure bind_context(para1: Arr1OOCNameComponent; para2: OOCNamingContext); overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName, org.omg.CosNaming.NamingContextPackage.AlreadyBound
    procedure bind_context(var para1: array of OOCNameComponent; para2: OOCNamingContext); overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName, org.omg.CosNaming.NamingContextPackage.AlreadyBound
    procedure rebind(para1: Arr1OOCNameComponent; para2: OOCObject); overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName
    procedure rebind(var para1: array of OOCNameComponent; para2: OOCObject); overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName
    procedure rebind_context(para1: Arr1OOCNameComponent; para2: OOCNamingContext); overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName
    procedure rebind_context(var para1: array of OOCNameComponent; para2: OOCNamingContext); overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName
    function resolve(para1: Arr1OOCNameComponent): OOCObject; overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName
    function resolve(var para1: array of OOCNameComponent): OOCObject; overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName
    procedure unbind(para1: Arr1OOCNameComponent); overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName
    procedure unbind(var para1: array of OOCNameComponent); overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName
    procedure list(para1: jint; para2: OOCBindingListHolder; para3: OOCBindingIteratorHolder); overload; virtual;
    function new_context(): OOCNamingContext; overload; virtual;
    function bind_new_context(para1: Arr1OOCNameComponent): OOCNamingContext; overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.AlreadyBound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName
    function bind_new_context(var para1: array of OOCNameComponent): OOCNamingContext; overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.NotFound, org.omg.CosNaming.NamingContextPackage.AlreadyBound, org.omg.CosNaming.NamingContextPackage.CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName
    procedure destroy(); overload; virtual;  // throws org.omg.CosNaming.NamingContextPackage.NotEmpty
    function _ids(): Arr1JLString; overload; virtual;
  end;

  OOD_DynArrayStub = class external 'org.omg.DynamicAny' name '_DynArrayStub' (OOCPObjectImpl, OODDynArray)
  public
    final class var
      f_opsClass: JLClass; external name '_opsClass';
  public
    constructor create(); overload;
    function get_elements(): Arr1OOCAny; overload; virtual;
    procedure set_elements(para1: Arr1OOCAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure set_elements(var para1: array of OOCAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_elements_as_dyn_any(): Arr1OODDynAny; overload; virtual;
    procedure set_elements_as_dyn_any(para1: Arr1OODDynAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure set_elements_as_dyn_any(var para1: array of OODDynAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function &type(): OOCTypeCode; overload; virtual;
    procedure assign(para1: OODDynAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch
    procedure from_any(para1: OOCAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function to_any(): OOCAny; overload; virtual;
    function equal(para1: OODDynAny): jboolean; overload; virtual;
    procedure destroy(); overload; virtual;
    function copy(): OODDynAny; overload; virtual;
    procedure insert_boolean(para1: jboolean); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_octet(para1: jbyte); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_char(para1: jchar); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_short(para1: jshort); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_ushort(para1: jshort); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_long(para1: jint); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_ulong(para1: jint); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_float(para1: jfloat); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_double(para1: jdouble); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_string(para1: JLString); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_reference(para1: OOCObject); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_typecode(para1: OOCTypeCode); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_longlong(para1: jlong); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_ulonglong(para1: jlong); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_wchar(para1: jchar); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_wstring(para1: JLString); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_any(para1: OOCAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_dyn_any(para1: OODDynAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_val(para1: JISerializable); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_boolean(): jboolean; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_octet(): jbyte; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_char(): jchar; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_short(): jshort; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_ushort(): jshort; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_long(): jint; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_ulong(): jint; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_float(): jfloat; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_double(): jdouble; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_string(): JLString; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_reference(): OOCObject; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_typecode(): OOCTypeCode; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_longlong(): jlong; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_ulonglong(): jlong; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_wchar(): jchar; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_wstring(): JLString; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_any(): OOCAny; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_dyn_any(): OODDynAny; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_val(): JISerializable; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function seek(para1: jint): jboolean; overload; virtual;
    procedure rewind(); overload; virtual;
    function next(): jboolean; overload; virtual;
    function component_count(): jint; overload; virtual;
    function current_component(): OODDynAny; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch
    function _ids(): Arr1JLString; overload; virtual;
  end;

  OOD_DynEnumStub = class external 'org.omg.DynamicAny' name '_DynEnumStub' (OOCPObjectImpl, OODDynEnum)
  public
    final class var
      f_opsClass: JLClass; external name '_opsClass';
  public
    constructor create(); overload;
    function get_as_string(): JLString; overload; virtual;
    procedure set_as_string(para1: JLString); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_as_ulong(): jint; overload; virtual;
    procedure set_as_ulong(para1: jint); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function &type(): OOCTypeCode; overload; virtual;
    procedure assign(para1: OODDynAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch
    procedure from_any(para1: OOCAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function to_any(): OOCAny; overload; virtual;
    function equal(para1: OODDynAny): jboolean; overload; virtual;
    procedure destroy(); overload; virtual;
    function copy(): OODDynAny; overload; virtual;
    procedure insert_boolean(para1: jboolean); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_octet(para1: jbyte); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_char(para1: jchar); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_short(para1: jshort); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_ushort(para1: jshort); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_long(para1: jint); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_ulong(para1: jint); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_float(para1: jfloat); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_double(para1: jdouble); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_string(para1: JLString); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_reference(para1: OOCObject); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_typecode(para1: OOCTypeCode); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_longlong(para1: jlong); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_ulonglong(para1: jlong); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_wchar(para1: jchar); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_wstring(para1: JLString); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_any(para1: OOCAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_dyn_any(para1: OODDynAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_val(para1: JISerializable); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_boolean(): jboolean; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_octet(): jbyte; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_char(): jchar; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_short(): jshort; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_ushort(): jshort; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_long(): jint; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_ulong(): jint; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_float(): jfloat; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_double(): jdouble; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_string(): JLString; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_reference(): OOCObject; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_typecode(): OOCTypeCode; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_longlong(): jlong; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_ulonglong(): jlong; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_wchar(): jchar; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_wstring(): JLString; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_any(): OOCAny; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_dyn_any(): OODDynAny; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_val(): JISerializable; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function seek(para1: jint): jboolean; overload; virtual;
    procedure rewind(); overload; virtual;
    function next(): jboolean; overload; virtual;
    function component_count(): jint; overload; virtual;
    function current_component(): OODDynAny; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch
    function _ids(): Arr1JLString; overload; virtual;
  end;

  OOD_DynFixedStub = class external 'org.omg.DynamicAny' name '_DynFixedStub' (OOCPObjectImpl, OODDynFixed)
  public
    final class var
      f_opsClass: JLClass; external name '_opsClass';
  public
    constructor create(); overload;
    function get_value(): JLString; overload; virtual;
    function set_value(para1: JLString): jboolean; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function &type(): OOCTypeCode; overload; virtual;
    procedure assign(para1: OODDynAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch
    procedure from_any(para1: OOCAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function to_any(): OOCAny; overload; virtual;
    function equal(para1: OODDynAny): jboolean; overload; virtual;
    procedure destroy(); overload; virtual;
    function copy(): OODDynAny; overload; virtual;
    procedure insert_boolean(para1: jboolean); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_octet(para1: jbyte); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_char(para1: jchar); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_short(para1: jshort); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_ushort(para1: jshort); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_long(para1: jint); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_ulong(para1: jint); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_float(para1: jfloat); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_double(para1: jdouble); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_string(para1: JLString); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_reference(para1: OOCObject); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_typecode(para1: OOCTypeCode); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_longlong(para1: jlong); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_ulonglong(para1: jlong); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_wchar(para1: jchar); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_wstring(para1: JLString); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_any(para1: OOCAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_dyn_any(para1: OODDynAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_val(para1: JISerializable); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_boolean(): jboolean; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_octet(): jbyte; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_char(): jchar; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_short(): jshort; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_ushort(): jshort; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_long(): jint; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_ulong(): jint; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_float(): jfloat; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_double(): jdouble; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_string(): JLString; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_reference(): OOCObject; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_typecode(): OOCTypeCode; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_longlong(): jlong; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_ulonglong(): jlong; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_wchar(): jchar; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_wstring(): JLString; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_any(): OOCAny; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_dyn_any(): OODDynAny; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_val(): JISerializable; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function seek(para1: jint): jboolean; overload; virtual;
    procedure rewind(); overload; virtual;
    function next(): jboolean; overload; virtual;
    function component_count(): jint; overload; virtual;
    function current_component(): OODDynAny; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch
    function _ids(): Arr1JLString; overload; virtual;
  end;

  OOD_DynSequenceStub = class external 'org.omg.DynamicAny' name '_DynSequenceStub' (OOCPObjectImpl, OODDynSequence)
  public
    final class var
      f_opsClass: JLClass; external name '_opsClass';
  public
    constructor create(); overload;
    function get_length(): jint; overload; virtual;
    procedure set_length(para1: jint); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_elements(): Arr1OOCAny; overload; virtual;
    procedure set_elements(para1: Arr1OOCAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure set_elements(var para1: array of OOCAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_elements_as_dyn_any(): Arr1OODDynAny; overload; virtual;
    procedure set_elements_as_dyn_any(para1: Arr1OODDynAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure set_elements_as_dyn_any(var para1: array of OODDynAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function &type(): OOCTypeCode; overload; virtual;
    procedure assign(para1: OODDynAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch
    procedure from_any(para1: OOCAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function to_any(): OOCAny; overload; virtual;
    function equal(para1: OODDynAny): jboolean; overload; virtual;
    procedure destroy(); overload; virtual;
    function copy(): OODDynAny; overload; virtual;
    procedure insert_boolean(para1: jboolean); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_octet(para1: jbyte); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_char(para1: jchar); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_short(para1: jshort); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_ushort(para1: jshort); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_long(para1: jint); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_ulong(para1: jint); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_float(para1: jfloat); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_double(para1: jdouble); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_string(para1: JLString); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_reference(para1: OOCObject); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_typecode(para1: OOCTypeCode); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_longlong(para1: jlong); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_ulonglong(para1: jlong); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_wchar(para1: jchar); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_wstring(para1: JLString); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_any(para1: OOCAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_dyn_any(para1: OODDynAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_val(para1: JISerializable); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_boolean(): jboolean; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_octet(): jbyte; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_char(): jchar; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_short(): jshort; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_ushort(): jshort; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_long(): jint; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_ulong(): jint; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_float(): jfloat; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_double(): jdouble; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_string(): JLString; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_reference(): OOCObject; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_typecode(): OOCTypeCode; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_longlong(): jlong; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_ulonglong(): jlong; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_wchar(): jchar; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_wstring(): JLString; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_any(): OOCAny; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_dyn_any(): OODDynAny; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_val(): JISerializable; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function seek(para1: jint): jboolean; overload; virtual;
    procedure rewind(); overload; virtual;
    function next(): jboolean; overload; virtual;
    function component_count(): jint; overload; virtual;
    function current_component(): OODDynAny; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch
    function _ids(): Arr1JLString; overload; virtual;
  end;

  OOD_DynStructStub = class external 'org.omg.DynamicAny' name '_DynStructStub' (OOCPObjectImpl, OODDynStruct)
  public
    final class var
      f_opsClass: JLClass; external name '_opsClass';
  public
    constructor create(); overload;
    function current_member_name(): JLString; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function current_member_kind(): OOCTCKind; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_members(): Arr1OODNameValuePair; overload; virtual;
    procedure set_members(para1: Arr1OODNameValuePair); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure set_members(var para1: array of OODNameValuePair); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_members_as_dyn_any(): Arr1OODNameDynAnyPair; overload; virtual;
    procedure set_members_as_dyn_any(para1: Arr1OODNameDynAnyPair); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure set_members_as_dyn_any(var para1: array of OODNameDynAnyPair); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function &type(): OOCTypeCode; overload; virtual;
    procedure assign(para1: OODDynAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch
    procedure from_any(para1: OOCAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function to_any(): OOCAny; overload; virtual;
    function equal(para1: OODDynAny): jboolean; overload; virtual;
    procedure destroy(); overload; virtual;
    function copy(): OODDynAny; overload; virtual;
    procedure insert_boolean(para1: jboolean); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_octet(para1: jbyte); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_char(para1: jchar); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_short(para1: jshort); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_ushort(para1: jshort); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_long(para1: jint); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_ulong(para1: jint); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_float(para1: jfloat); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_double(para1: jdouble); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_string(para1: JLString); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_reference(para1: OOCObject); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_typecode(para1: OOCTypeCode); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_longlong(para1: jlong); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_ulonglong(para1: jlong); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_wchar(para1: jchar); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_wstring(para1: JLString); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_any(para1: OOCAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_dyn_any(para1: OODDynAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_val(para1: JISerializable); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_boolean(): jboolean; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_octet(): jbyte; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_char(): jchar; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_short(): jshort; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_ushort(): jshort; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_long(): jint; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_ulong(): jint; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_float(): jfloat; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_double(): jdouble; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_string(): JLString; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_reference(): OOCObject; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_typecode(): OOCTypeCode; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_longlong(): jlong; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_ulonglong(): jlong; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_wchar(): jchar; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_wstring(): JLString; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_any(): OOCAny; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_dyn_any(): OODDynAny; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_val(): JISerializable; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function seek(para1: jint): jboolean; overload; virtual;
    procedure rewind(); overload; virtual;
    function next(): jboolean; overload; virtual;
    function component_count(): jint; overload; virtual;
    function current_component(): OODDynAny; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch
    function _ids(): Arr1JLString; overload; virtual;
  end;

  OOD_DynUnionStub = class external 'org.omg.DynamicAny' name '_DynUnionStub' (OOCPObjectImpl, OODDynUnion)
  public
    final class var
      f_opsClass: JLClass; external name '_opsClass';
  public
    constructor create(); overload;
    function get_discriminator(): OODDynAny; overload; virtual;
    procedure set_discriminator(para1: OODDynAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch
    procedure set_to_default_member(); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch
    procedure set_to_no_active_member(); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch
    function has_no_active_member(): jboolean; overload; virtual;
    function discriminator_kind(): OOCTCKind; overload; virtual;
    function member_kind(): OOCTCKind; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function member(): OODDynAny; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function member_name(): JLString; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function &type(): OOCTypeCode; overload; virtual;
    procedure assign(para1: OODDynAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch
    procedure from_any(para1: OOCAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function to_any(): OOCAny; overload; virtual;
    function equal(para1: OODDynAny): jboolean; overload; virtual;
    procedure destroy(); overload; virtual;
    function copy(): OODDynAny; overload; virtual;
    procedure insert_boolean(para1: jboolean); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_octet(para1: jbyte); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_char(para1: jchar); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_short(para1: jshort); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_ushort(para1: jshort); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_long(para1: jint); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_ulong(para1: jint); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_float(para1: jfloat); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_double(para1: jdouble); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_string(para1: JLString); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_reference(para1: OOCObject); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_typecode(para1: OOCTypeCode); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_longlong(para1: jlong); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_ulonglong(para1: jlong); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_wchar(para1: jchar); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_wstring(para1: JLString); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_any(para1: OOCAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_dyn_any(para1: OODDynAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_val(para1: JISerializable); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_boolean(): jboolean; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_octet(): jbyte; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_char(): jchar; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_short(): jshort; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_ushort(): jshort; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_long(): jint; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_ulong(): jint; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_float(): jfloat; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_double(): jdouble; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_string(): JLString; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_reference(): OOCObject; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_typecode(): OOCTypeCode; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_longlong(): jlong; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_ulonglong(): jlong; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_wchar(): jchar; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_wstring(): JLString; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_any(): OOCAny; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_dyn_any(): OODDynAny; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_val(): JISerializable; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function seek(para1: jint): jboolean; overload; virtual;
    procedure rewind(); overload; virtual;
    function next(): jboolean; overload; virtual;
    function component_count(): jint; overload; virtual;
    function current_component(): OODDynAny; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch
    function _ids(): Arr1JLString; overload; virtual;
  end;

  OODDynValue = interface external 'org.omg.DynamicAny' name 'DynValue' (OODDynValueOperations, OODDynValueCommon, OOCPIDLEntity)
  end;

  OODDynValueBox = interface external 'org.omg.DynamicAny' name 'DynValueBox' (OODDynValueBoxOperations, OODDynValueCommon, OOCPIDLEntity)
  end;

  OOPIORInterceptor_3_0 = interface external 'org.omg.PortableInterceptor' name 'IORInterceptor_3_0' (OOPIORInterceptor_3_0Operations, OOPIORInterceptor, OOCPIDLEntity)
  end;

  OOP_ServantActivatorStub = class external 'org.omg.PortableServer' name '_ServantActivatorStub' (OOCPObjectImpl, OOPServantActivator)
  public
    final class var
      f_opsClass: JLClass; external name '_opsClass';
  public
    constructor create(); overload;
    function incarnate(para1: Arr1jbyte; para2: OOPPOA): OOPServant; overload; virtual;  // throws org.omg.PortableServer.ForwardRequest
    function incarnate(var para1: array of jbyte; para2: OOPPOA): OOPServant; overload; virtual;  // throws org.omg.PortableServer.ForwardRequest
    procedure etherealize(para1: Arr1jbyte; para2: OOPPOA; para3: OOPServant; para4: jboolean; para5: jboolean); overload; virtual;
    procedure etherealize(var para1: array of jbyte; para2: OOPPOA; para3: OOPServant; para4: jboolean; para5: jboolean); overload; virtual;
    function _ids(): Arr1JLString; overload; virtual;
  end;

  OOP_ServantLocatorStub = class external 'org.omg.PortableServer' name '_ServantLocatorStub' (OOCPObjectImpl, OOPServantLocator)
  public
    final class var
      f_opsClass: JLClass; external name '_opsClass';
  public
    constructor create(); overload;
    function preinvoke(para1: Arr1jbyte; para2: OOPPOA; para3: JLString; para4: OOPSCookieHolder): OOPServant; overload; virtual;  // throws org.omg.PortableServer.ForwardRequest
    function preinvoke(var para1: array of jbyte; para2: OOPPOA; para3: JLString; para4: OOPSCookieHolder): OOPServant; overload; virtual;  // throws org.omg.PortableServer.ForwardRequest
    procedure postinvoke(para1: Arr1jbyte; para2: OOPPOA; para3: JLString; para4: JLObject; para5: OOPServant); overload; virtual;
    procedure postinvoke(var para1: array of jbyte; para2: OOPPOA; para3: JLString; para4: JLObject; para5: OOPServant); overload; virtual;
    function _ids(): Arr1JLString; overload; virtual;
  end;

  JSPFontUIResource = class external 'javax.swing.plaf' name 'FontUIResource' (JAFont, JSPUIResource)
  public
    constructor create(para1: JLString; para2: jint; para3: jint); overload;
    constructor create(para1: JAFont); overload;
  end;

  JAISInputMethodContext = interface external 'java.awt.im.spi' name 'InputMethodContext' (JAIInputMethodRequests)
    procedure dispatchInputMethodEvent(para1: jint; para2: JTAttributedCharacterIterator; para3: jint; para4: JAFTextHitInfo; para5: JAFTextHitInfo); overload;
    function createInputMethodWindow(para1: JLString; para2: jboolean): JAWindow; overload;
    function createInputMethodJFrame(para1: JLString; para2: jboolean): JSJFrame; overload;
    procedure enableClientWindowNotification(para1: JAISInputMethod; para2: jboolean); overload;
  end;

  JTCharacterIteratorFieldDelegate = class external 'java.text' name 'CharacterIteratorFieldDelegate' (JLObject, JTFormat.InnerFieldDelegate)
  public
    procedure formatted(para1: JTFormat.InnerField; para2: JLObject; para3: jint; para4: jint; para5: JLStringBuffer); overload; virtual;
    procedure formatted(para1: jint; para2: JTFormat.InnerField; para3: JLObject; para4: jint; para5: jint; para6: JLStringBuffer); overload; virtual;
    function getIterator(para1: JLString): JTAttributedCharacterIterator; overload; virtual;
  end;

  JTDateFormat = class abstract external 'java.text' name 'DateFormat' (JTFormat)
  public
    type
      InnerDateFormatGetter = class;
      Arr1InnerDateFormatGetter = array of InnerDateFormatGetter;
      Arr2InnerDateFormatGetter = array of Arr1InnerDateFormatGetter;
      Arr3InnerDateFormatGetter = array of Arr2InnerDateFormatGetter;
      InnerDateFormatGetter = class external 'java.text' name 'DateFormatGetter' 
      end;

  public
    type
      InnerField = class;
      Arr1InnerField = array of InnerField;
      Arr2InnerField = array of Arr1InnerField;
      Arr3InnerField = array of Arr2InnerField;
      InnerField = class external 'java.text' name 'Field' (JTFormat.InnerField)
      public
        final class var
          fERA: JTDateFormat.InnerField; external name 'ERA';
          fYEAR: JTDateFormat.InnerField; external name 'YEAR';
          fMONTH: JTDateFormat.InnerField; external name 'MONTH';
          fDAY_OF_MONTH: JTDateFormat.InnerField; external name 'DAY_OF_MONTH';
          fHOUR_OF_DAY1: JTDateFormat.InnerField; external name 'HOUR_OF_DAY1';
          fHOUR_OF_DAY0: JTDateFormat.InnerField; external name 'HOUR_OF_DAY0';
          fMINUTE: JTDateFormat.InnerField; external name 'MINUTE';
          fSECOND: JTDateFormat.InnerField; external name 'SECOND';
          fMILLISECOND: JTDateFormat.InnerField; external name 'MILLISECOND';
          fDAY_OF_WEEK: JTDateFormat.InnerField; external name 'DAY_OF_WEEK';
          fDAY_OF_YEAR: JTDateFormat.InnerField; external name 'DAY_OF_YEAR';
          fDAY_OF_WEEK_IN_MONTH: JTDateFormat.InnerField; external name 'DAY_OF_WEEK_IN_MONTH';
          fWEEK_OF_YEAR: JTDateFormat.InnerField; external name 'WEEK_OF_YEAR';
          fWEEK_OF_MONTH: JTDateFormat.InnerField; external name 'WEEK_OF_MONTH';
          fAM_PM: JTDateFormat.InnerField; external name 'AM_PM';
          fHOUR1: JTDateFormat.InnerField; external name 'HOUR1';
          fHOUR0: JTDateFormat.InnerField; external name 'HOUR0';
          fTIME_ZONE: JTDateFormat.InnerField; external name 'TIME_ZONE';
      public
        class function ofCalendarField(para1: jint): JTDateFormat.InnerField; static; overload;
      strict protected
        constructor create(para1: JLString; para2: jint); overload;
      public
        function getCalendarField(): jint; overload; virtual;
      strict protected
        function readResolve(): JLObject; overload; virtual;  // throws java.io.InvalidObjectException
      end;

  strict protected
    var
      fcalendar: JUCalendar; external name 'calendar';
      fnumberFormat: JTNumberFormat; external name 'numberFormat';
  public
    const
      ERA_FIELD = 0;
      YEAR_FIELD = 1;
      MONTH_FIELD = 2;
      DATE_FIELD = 3;
      HOUR_OF_DAY1_FIELD = 4;
      HOUR_OF_DAY0_FIELD = 5;
      MINUTE_FIELD = 6;
      SECOND_FIELD = 7;
      MILLISECOND_FIELD = 8;
      DAY_OF_WEEK_FIELD = 9;
      DAY_OF_YEAR_FIELD = 10;
      DAY_OF_WEEK_IN_MONTH_FIELD = 11;
      WEEK_OF_YEAR_FIELD = 12;
      WEEK_OF_MONTH_FIELD = 13;
      AM_PM_FIELD = 14;
      HOUR1_FIELD = 15;
      HOUR0_FIELD = 16;
      TIMEZONE_FIELD = 17;
      FULL = 0;
      LONG = 1;
      MEDIUM = 2;
      SHORT = 3;
      DEFAULT = 2;
  public
    function format(para1: JLObject; para2: JLStringBuffer; para3: JTFieldPosition): JLStringBuffer; overload; virtual; final;
    function format(para1: JUDate; para2: JLStringBuffer; para3: JTFieldPosition): JLStringBuffer; overload; virtual; abstract;
    function format(para1: JUDate): JLString; overload; virtual; final;
    function parse(para1: JLString): JUDate; overload; virtual;  // throws java.text.ParseException
    function parse(para1: JLString; para2: JTParsePosition): JUDate; overload; virtual; abstract;
    function parseObject(para1: JLString; para2: JTParsePosition): JLObject; overload; virtual;
    class function getTimeInstance(): JTDateFormat; static; overload; final;
    class function getTimeInstance(para1: jint): JTDateFormat; static; overload; final;
    class function getTimeInstance(para1: jint; para2: JULocale): JTDateFormat; static; overload; final;
    class function getDateInstance(): JTDateFormat; static; overload; final;
    class function getDateInstance(para1: jint): JTDateFormat; static; overload; final;
    class function getDateInstance(para1: jint; para2: JULocale): JTDateFormat; static; overload; final;
    class function getDateTimeInstance(): JTDateFormat; static; overload; final;
    class function getDateTimeInstance(para1: jint; para2: jint): JTDateFormat; static; overload; final;
    class function getDateTimeInstance(para1: jint; para2: jint; para3: JULocale): JTDateFormat; static; overload; final;
    class function getInstance(): JTDateFormat; static; overload; final;
    class function getAvailableLocales(): Arr1JULocale; static; overload;
    procedure setCalendar(para1: JUCalendar); overload; virtual;
    function getCalendar(): JUCalendar; overload; virtual;
    procedure setNumberFormat(para1: JTNumberFormat); overload; virtual;
    function getNumberFormat(): JTNumberFormat; overload; virtual;
    procedure setTimeZone(para1: JUTimeZone); overload; virtual;
    function getTimeZone(): JUTimeZone; overload; virtual;
    procedure setLenient(para1: jboolean); overload; virtual;
    function isLenient(): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function clone(): JLObject; overload; virtual;
  strict protected
    constructor create(); overload;
  end;

  JTFieldPosition = class external 'java.text' name 'FieldPosition' (JLObject)
  public
    type
      InnerDelegate = class;
      Arr1InnerDelegate = array of InnerDelegate;
      Arr2InnerDelegate = array of Arr1InnerDelegate;
      Arr3InnerDelegate = array of Arr2InnerDelegate;
      InnerDelegate = class external 'java.text' name 'Delegate' 
      end;

  public
    constructor create(para1: jint); overload;
    constructor create(para1: JTFormat.InnerField); overload;
    constructor create(para1: JTFormat.InnerField; para2: jint); overload;
    function getFieldAttribute(): JTFormat.InnerField; overload; virtual;
    function getField(): jint; overload; virtual;
    function getBeginIndex(): jint; overload; virtual;
    function getEndIndex(): jint; overload; virtual;
    procedure setBeginIndex(para1: jint); overload; virtual;
    procedure setEndIndex(para1: jint); overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JTMessageFormat = class external 'java.text' name 'MessageFormat' (JTFormat)
  public
    type
      InnerField = class;
      Arr1InnerField = array of InnerField;
      Arr2InnerField = array of Arr1InnerField;
      Arr3InnerField = array of Arr2InnerField;
      InnerField = class external 'java.text' name 'Field' (JTFormat.InnerField)
      public
        final class var
          fARGUMENT: JTMessageFormat.InnerField; external name 'ARGUMENT';
      strict protected
        constructor create(para1: JLString); overload;
        function readResolve(): JLObject; overload; virtual;  // throws java.io.InvalidObjectException
      end;

  public
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JULocale); overload;
    procedure setLocale(para1: JULocale); overload; virtual;
    function getLocale(): JULocale; overload; virtual;
    procedure applyPattern(para1: JLString); overload; virtual;
    function toPattern(): JLString; overload; virtual;
    procedure setFormatsByArgumentIndex(para1: Arr1JTFormat); overload; virtual;
    procedure setFormatsByArgumentIndex(var para1: array of JTFormat); overload; virtual;
    procedure setFormats(para1: Arr1JTFormat); overload; virtual;
    procedure setFormats(var para1: array of JTFormat); overload; virtual;
    procedure setFormatByArgumentIndex(para1: jint; para2: JTFormat); overload; virtual;
    procedure setFormat(para1: jint; para2: JTFormat); overload; virtual;
    function getFormatsByArgumentIndex(): Arr1JTFormat; overload; virtual;
    function getFormats(): Arr1JTFormat; overload; virtual;
    function format(para1: Arr1JLObject; para2: JLStringBuffer; para3: JTFieldPosition): JLStringBuffer; overload; virtual; final;
    function format(var para1: array of JLObject; para2: JLStringBuffer; para3: JTFieldPosition): JLStringBuffer; overload; virtual; final;
    class function format(para1: JLString; para2: Arr1JLObject): JLString; static; overload;
    class function format(para1: JLString; const para2: array of JLObject): JLString; static; overload;
    function format(para1: JLObject; para2: JLStringBuffer; para3: JTFieldPosition): JLStringBuffer; overload; virtual; final;
    function formatToCharacterIterator(para1: JLObject): JTAttributedCharacterIterator; overload; virtual;
    function parse(para1: JLString; para2: JTParsePosition): Arr1JLObject; overload; virtual;
    function parse(para1: JLString): Arr1JLObject; overload; virtual;  // throws java.text.ParseException
    function parseObject(para1: JLString; para2: JTParsePosition): JLObject; overload; virtual;
    function clone(): JLObject; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
  end;

  JTNumberFormat = class abstract external 'java.text' name 'NumberFormat' (JTFormat)
  public
    type
      InnerNumberFormatGetter = class;
      Arr1InnerNumberFormatGetter = array of InnerNumberFormatGetter;
      Arr2InnerNumberFormatGetter = array of Arr1InnerNumberFormatGetter;
      Arr3InnerNumberFormatGetter = array of Arr2InnerNumberFormatGetter;
      InnerNumberFormatGetter = class external 'java.text' name 'NumberFormatGetter' 
      end;

  public
    type
      InnerField = class;
      Arr1InnerField = array of InnerField;
      Arr2InnerField = array of Arr1InnerField;
      Arr3InnerField = array of Arr2InnerField;
      InnerField = class external 'java.text' name 'Field' (JTFormat.InnerField)
      public
        final class var
          fINTEGER: JTNumberFormat.InnerField; external name 'INTEGER';
          fFRACTION: JTNumberFormat.InnerField; external name 'FRACTION';
          fEXPONENT: JTNumberFormat.InnerField; external name 'EXPONENT';
          fDECIMAL_SEPARATOR: JTNumberFormat.InnerField; external name 'DECIMAL_SEPARATOR';
          fSIGN: JTNumberFormat.InnerField; external name 'SIGN';
          fGROUPING_SEPARATOR: JTNumberFormat.InnerField; external name 'GROUPING_SEPARATOR';
          fEXPONENT_SYMBOL: JTNumberFormat.InnerField; external name 'EXPONENT_SYMBOL';
          fPERCENT: JTNumberFormat.InnerField; external name 'PERCENT';
          fPERMILLE: JTNumberFormat.InnerField; external name 'PERMILLE';
          fCURRENCY: JTNumberFormat.InnerField; external name 'CURRENCY';
          fEXPONENT_SIGN: JTNumberFormat.InnerField; external name 'EXPONENT_SIGN';
      strict protected
        constructor create(para1: JLString); overload;
        function readResolve(): JLObject; overload; virtual;  // throws java.io.InvalidObjectException
      end;

  public
    const
      INTEGER_FIELD = 0;
      FRACTION_FIELD = 1;
  strict protected
    constructor create(); overload;
  public
    function format(para1: JLObject; para2: JLStringBuffer; para3: JTFieldPosition): JLStringBuffer; overload; virtual;
    function parseObject(para1: JLString; para2: JTParsePosition): JLObject; overload; virtual; final;
    function format(para1: jdouble): JLString; overload; virtual; final;
    function format(para1: jlong): JLString; overload; virtual; final;
    function format(para1: jdouble; para2: JLStringBuffer; para3: JTFieldPosition): JLStringBuffer; overload; virtual; abstract;
    function format(para1: jlong; para2: JLStringBuffer; para3: JTFieldPosition): JLStringBuffer; overload; virtual; abstract;
    function parse(para1: JLString; para2: JTParsePosition): JLNumber; overload; virtual; abstract;
    function parse(para1: JLString): JLNumber; overload; virtual;  // throws java.text.ParseException
    function isParseIntegerOnly(): jboolean; overload; virtual;
    procedure setParseIntegerOnly(para1: jboolean); overload; virtual;
    class function getInstance(): JTNumberFormat; static; overload; final;
    class function getInstance(para1: JULocale): JTNumberFormat; static; overload;
    class function getNumberInstance(): JTNumberFormat; static; overload; final;
    class function getNumberInstance(para1: JULocale): JTNumberFormat; static; overload;
    class function getIntegerInstance(): JTNumberFormat; static; overload; final;
    class function getIntegerInstance(para1: JULocale): JTNumberFormat; static; overload;
    class function getCurrencyInstance(): JTNumberFormat; static; overload; final;
    class function getCurrencyInstance(para1: JULocale): JTNumberFormat; static; overload;
    class function getPercentInstance(): JTNumberFormat; static; overload; final;
    class function getPercentInstance(para1: JULocale): JTNumberFormat; static; overload;
    class function getAvailableLocales(): Arr1JULocale; static; overload;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function clone(): JLObject; overload; virtual;
    function isGroupingUsed(): jboolean; overload; virtual;
    procedure setGroupingUsed(para1: jboolean); overload; virtual;
    function getMaximumIntegerDigits(): jint; overload; virtual;
    procedure setMaximumIntegerDigits(para1: jint); overload; virtual;
    function getMinimumIntegerDigits(): jint; overload; virtual;
    procedure setMinimumIntegerDigits(para1: jint); overload; virtual;
    function getMaximumFractionDigits(): jint; overload; virtual;
    procedure setMaximumFractionDigits(para1: jint); overload; virtual;
    function getMinimumFractionDigits(): jint; overload; virtual;
    procedure setMinimumFractionDigits(para1: jint); overload; virtual;
    function getCurrency(): JUCurrency; overload; virtual;
    procedure setCurrency(para1: JUCurrency); overload; virtual;
    function getRoundingMode(): JMRoundingMode; overload; virtual;
    procedure setRoundingMode(para1: JMRoundingMode); overload; virtual;
  end;

  JUCConcurrentSkipListMap = class external 'java.util.concurrent' name 'ConcurrentSkipListMap' (JUAbstractMap, JUCConcurrentNavigableMap, JLCloneable, JISerializable)
  public
    type
      InnerIndex = class;
      Arr1InnerIndex = array of InnerIndex;
      Arr2InnerIndex = array of Arr1InnerIndex;
      Arr3InnerIndex = array of Arr2InnerIndex;
      InnerNode = class;
      Arr1InnerNode = array of InnerNode;
      Arr2InnerNode = array of Arr1InnerNode;
      Arr3InnerNode = array of Arr2InnerNode;
      InnerComparableUsingComparator = class;
      Arr1InnerComparableUsingComparator = array of InnerComparableUsingComparator;
      Arr2InnerComparableUsingComparator = array of Arr1InnerComparableUsingComparator;
      Arr3InnerComparableUsingComparator = array of Arr2InnerComparableUsingComparator;
      InnerHeadIndex = class;
      Arr1InnerHeadIndex = array of InnerHeadIndex;
      Arr2InnerHeadIndex = array of Arr1InnerHeadIndex;
      Arr3InnerHeadIndex = array of Arr2InnerHeadIndex;
      InnerKeyIterator = class;
      Arr1InnerKeyIterator = array of InnerKeyIterator;
      Arr2InnerKeyIterator = array of Arr1InnerKeyIterator;
      Arr3InnerKeyIterator = array of Arr2InnerKeyIterator;
      InnerValueIterator = class;
      Arr1InnerValueIterator = array of InnerValueIterator;
      Arr2InnerValueIterator = array of Arr1InnerValueIterator;
      Arr3InnerValueIterator = array of Arr2InnerValueIterator;
      InnerEntryIterator = class;
      Arr1InnerEntryIterator = array of InnerEntryIterator;
      Arr2InnerEntryIterator = array of Arr1InnerEntryIterator;
      Arr3InnerEntryIterator = array of Arr2InnerEntryIterator;
      InnerEntrySet = class;
      Arr1InnerEntrySet = array of InnerEntrySet;
      Arr2InnerEntrySet = array of Arr1InnerEntrySet;
      Arr3InnerEntrySet = array of Arr2InnerEntrySet;
      InnerIter = class;
      Arr1InnerIter = array of InnerIter;
      Arr2InnerIter = array of Arr1InnerIter;
      Arr3InnerIter = array of Arr2InnerIter;
      InnerKeySet = class;
      Arr1InnerKeySet = array of InnerKeySet;
      Arr2InnerKeySet = array of Arr1InnerKeySet;
      Arr3InnerKeySet = array of Arr2InnerKeySet;
      InnerSubMap = class;
      Arr1InnerSubMap = array of InnerSubMap;
      Arr2InnerSubMap = array of Arr1InnerSubMap;
      Arr3InnerSubMap = array of Arr2InnerSubMap;
      InnerValues = class;
      Arr1InnerValues = array of InnerValues;
      Arr2InnerValues = array of Arr1InnerValues;
      Arr3InnerValues = array of Arr2InnerValues;
      InnerIndex = class external 'java.util.concurrent' name 'Index' 
      end;

      InnerNode = class sealed external 'java.util.concurrent' name 'Node' 
      end;

      InnerComparableUsingComparator = class sealed external 'java.util.concurrent' name 'ComparableUsingComparator' 
      end;

      InnerHeadIndex = class sealed external 'java.util.concurrent' name 'HeadIndex' 
      end;

      InnerKeyIterator = class sealed external 'java.util.concurrent' name 'KeyIterator' 
      end;

      InnerValueIterator = class sealed external 'java.util.concurrent' name 'ValueIterator' 
      end;

      InnerEntryIterator = class sealed external 'java.util.concurrent' name 'EntryIterator' 
      end;

      InnerEntrySet = class sealed external 'java.util.concurrent' name 'EntrySet' 
      end;

      InnerIter = class abstract external 'java.util.concurrent' name 'Iter' 
      end;

      InnerKeySet = class sealed external 'java.util.concurrent' name 'KeySet' 
      end;

      InnerSubMap = class sealed external 'java.util.concurrent' name 'SubMap' 
      public
        type
          InnerSubMapKeyIterator = class;
          Arr1InnerSubMapKeyIterator = array of InnerSubMapKeyIterator;
          Arr2InnerSubMapKeyIterator = array of Arr1InnerSubMapKeyIterator;
          Arr3InnerSubMapKeyIterator = array of Arr2InnerSubMapKeyIterator;
          InnerSubMapValueIterator = class;
          Arr1InnerSubMapValueIterator = array of InnerSubMapValueIterator;
          Arr2InnerSubMapValueIterator = array of Arr1InnerSubMapValueIterator;
          Arr3InnerSubMapValueIterator = array of Arr2InnerSubMapValueIterator;
          InnerSubMapEntryIterator = class;
          Arr1InnerSubMapEntryIterator = array of InnerSubMapEntryIterator;
          Arr2InnerSubMapEntryIterator = array of Arr1InnerSubMapEntryIterator;
          Arr3InnerSubMapEntryIterator = array of Arr2InnerSubMapEntryIterator;
          InnerSubMapIter = class;
          Arr1InnerSubMapIter = array of InnerSubMapIter;
          Arr2InnerSubMapIter = array of Arr1InnerSubMapIter;
          Arr3InnerSubMapIter = array of Arr2InnerSubMapIter;
          InnerSubMapKeyIterator = class sealed external 'java.util.concurrent' name 'SubMapKeyIterator' 
          end;

          InnerSubMapValueIterator = class sealed external 'java.util.concurrent' name 'SubMapValueIterator' 
          end;

          InnerSubMapEntryIterator = class sealed external 'java.util.concurrent' name 'SubMapEntryIterator' 
          end;

          InnerSubMapIter = class abstract external 'java.util.concurrent' name 'SubMapIter' 
          end;

      end;

      InnerValues = class sealed external 'java.util.concurrent' name 'Values' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: JUComparator); overload;
    constructor create(para1: JUMap); overload;
    constructor create(para1: JUSortedMap); overload;
    function clone(): JUCConcurrentSkipListMap; overload; virtual;
    function containsKey(para1: JLObject): jboolean; overload; virtual;
    function get(para1: JLObject): JLObject; overload; virtual;
    function put(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
    function remove(para1: JLObject): JLObject; overload; virtual;
    function containsValue(para1: JLObject): jboolean; overload; virtual;
    function size(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    procedure clear(); overload; virtual;
    function keySet(): JUNavigableSet; overload; virtual;
    function navigableKeySet(): JUNavigableSet; overload; virtual;
    function values(): JUCollection; overload; virtual;
    function entrySet(): JUSet; overload; virtual;
    function descendingMap(): JUCConcurrentNavigableMap; overload; virtual;
    function descendingKeySet(): JUNavigableSet; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function putIfAbsent(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
    function remove(para1: JLObject; para2: JLObject): jboolean; overload; virtual;
    function replace(para1: JLObject; para2: JLObject; para3: JLObject): jboolean; overload; virtual;
    function replace(para1: JLObject; para2: JLObject): JLObject; overload; virtual;
    function comparator(): JUComparator; overload; virtual;
    function firstKey(): JLObject; overload; virtual;
    function lastKey(): JLObject; overload; virtual;
    function subMap(para1: JLObject; para2: jboolean; para3: JLObject; para4: jboolean): JUCConcurrentNavigableMap; overload; virtual;
    function headMap(para1: JLObject; para2: jboolean): JUCConcurrentNavigableMap; overload; virtual;
    function tailMap(para1: JLObject; para2: jboolean): JUCConcurrentNavigableMap; overload; virtual;
    function subMap(para1: JLObject; para2: JLObject): JUCConcurrentNavigableMap; overload; virtual;
    function headMap(para1: JLObject): JUCConcurrentNavigableMap; overload; virtual;
    function tailMap(para1: JLObject): JUCConcurrentNavigableMap; overload; virtual;
    function lowerEntry(para1: JLObject): JUMap.InnerEntry; overload; virtual;
    function lowerKey(para1: JLObject): JLObject; overload; virtual;
    function floorEntry(para1: JLObject): JUMap.InnerEntry; overload; virtual;
    function floorKey(para1: JLObject): JLObject; overload; virtual;
    function ceilingEntry(para1: JLObject): JUMap.InnerEntry; overload; virtual;
    function ceilingKey(para1: JLObject): JLObject; overload; virtual;
    function higherEntry(para1: JLObject): JUMap.InnerEntry; overload; virtual;
    function higherKey(para1: JLObject): JLObject; overload; virtual;
    function firstEntry(): JUMap.InnerEntry; overload; virtual;
    function lastEntry(): JUMap.InnerEntry; overload; virtual;
    function pollFirstEntry(): JUMap.InnerEntry; overload; virtual;
    function pollLastEntry(): JUMap.InnerEntry; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
    function keySet(): JUSet; overload; virtual;
    function tailMap(para1: JLObject): JUSortedMap; overload; virtual;
    function headMap(para1: JLObject): JUSortedMap; overload; virtual;
    function subMap(para1: JLObject; para2: JLObject): JUSortedMap; overload; virtual;
    function tailMap(para1: JLObject; para2: jboolean): JUNavigableMap; overload; virtual;
    function headMap(para1: JLObject; para2: jboolean): JUNavigableMap; overload; virtual;
    function subMap(para1: JLObject; para2: jboolean; para3: JLObject; para4: jboolean): JUNavigableMap; overload; virtual;
    function descendingMap(): JUNavigableMap; overload; virtual;
  end;

  JULinkedList = class external 'java.util' name 'LinkedList' (JUAbstractSequentialList, JUList, JUDeque, JLCloneable, JISerializable)
  public
    type
      InnerEntry = class;
      Arr1InnerEntry = array of InnerEntry;
      Arr2InnerEntry = array of Arr1InnerEntry;
      Arr3InnerEntry = array of Arr2InnerEntry;
      InnerDescendingIterator = class;
      Arr1InnerDescendingIterator = array of InnerDescendingIterator;
      Arr2InnerDescendingIterator = array of Arr1InnerDescendingIterator;
      Arr3InnerDescendingIterator = array of Arr2InnerDescendingIterator;
      InnerListItr = class;
      Arr1InnerListItr = array of InnerListItr;
      Arr2InnerListItr = array of Arr1InnerListItr;
      Arr3InnerListItr = array of Arr2InnerListItr;
      InnerEntry = class external 'java.util' name 'Entry' 
      end;

      InnerDescendingIterator = class external 'java.util' name 'DescendingIterator' 
      end;

      InnerListItr = class external 'java.util' name 'ListItr' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: JUCollection); overload;
    function getFirst(): JLObject; overload; virtual;
    function getLast(): JLObject; overload; virtual;
    function removeFirst(): JLObject; overload; virtual;
    function removeLast(): JLObject; overload; virtual;
    procedure addFirst(para1: JLObject); overload; virtual;
    procedure addLast(para1: JLObject); overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function size(): jint; overload; virtual;
    function add(para1: JLObject): jboolean; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    function addAll(para1: JUCollection): jboolean; overload; virtual;
    function addAll(para1: jint; para2: JUCollection): jboolean; overload; virtual;
    procedure clear(); overload; virtual;
    function get(para1: jint): JLObject; overload; virtual;
    function &set(para1: jint; para2: JLObject): JLObject; overload; virtual;
    procedure add(para1: jint; para2: JLObject); overload; virtual;
    function remove(para1: jint): JLObject; overload; virtual;
    function indexOf(para1: JLObject): jint; overload; virtual;
    function lastIndexOf(para1: JLObject): jint; overload; virtual;
    function peek(): JLObject; overload; virtual;
    function element(): JLObject; overload; virtual;
    function poll(): JLObject; overload; virtual;
    function remove(): JLObject; overload; virtual;
    function offer(para1: JLObject): jboolean; overload; virtual;
    function offerFirst(para1: JLObject): jboolean; overload; virtual;
    function offerLast(para1: JLObject): jboolean; overload; virtual;
    function peekFirst(): JLObject; overload; virtual;
    function peekLast(): JLObject; overload; virtual;
    function pollFirst(): JLObject; overload; virtual;
    function pollLast(): JLObject; overload; virtual;
    procedure push(para1: JLObject); overload; virtual;
    function pop(): JLObject; overload; virtual;
    function removeFirstOccurrence(para1: JLObject): jboolean; overload; virtual;
    function removeLastOccurrence(para1: JLObject): jboolean; overload; virtual;
    function listIterator(para1: jint): JUListIterator; overload; virtual;
    function descendingIterator(): JUIterator; overload; virtual;
    function clone(): JLObject; overload; virtual;
    function toArray(): Arr1JLObject; overload; virtual;
    function toArray(para1: Arr1JLObject): Arr1JLObject; overload; virtual;
    function toArray(var para1: array of JLObject): Arr1JLObject; overload; virtual;
  end;

  JMAttributeList = class external 'javax.management' name 'AttributeList' (JUArrayList)
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: JMAttributeList); overload;
    constructor create(para1: JUList); overload;
    function asList(): JUList; overload; virtual;
    procedure add(para1: JMAttribute); overload; virtual;
    procedure add(para1: jint; para2: JMAttribute); overload; virtual;
    procedure &set(para1: jint; para2: JMAttribute); overload; virtual;
    function addAll(para1: JMAttributeList): jboolean; overload; virtual;
    function addAll(para1: jint; para2: JMAttributeList): jboolean; overload; virtual;
    function add(para1: JLObject): jboolean; overload; virtual;
    procedure add(para1: jint; para2: JLObject); overload; virtual;
    function addAll(para1: JUCollection): jboolean; overload; virtual;
    function addAll(para1: jint; para2: JUCollection): jboolean; overload; virtual;
    function &set(para1: jint; para2: JLObject): JLObject; overload; virtual;
  end;

  JMRRoleList = class external 'javax.management.relation' name 'RoleList' (JUArrayList)
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: JUList); overload;  // throws java.lang.IllegalArgumentException
    function asList(): JUList; overload; virtual;
    procedure add(para1: JMRRole); overload; virtual;  // throws java.lang.IllegalArgumentException
    procedure add(para1: jint; para2: JMRRole); overload; virtual;  // throws java.lang.IllegalArgumentException, java.lang.IndexOutOfBoundsException
    procedure &set(para1: jint; para2: JMRRole); overload; virtual;  // throws java.lang.IllegalArgumentException, java.lang.IndexOutOfBoundsException
    function addAll(para1: JMRRoleList): jboolean; overload; virtual;  // throws java.lang.IndexOutOfBoundsException
    function addAll(para1: jint; para2: JMRRoleList): jboolean; overload; virtual;  // throws java.lang.IllegalArgumentException, java.lang.IndexOutOfBoundsException
    function add(para1: JLObject): jboolean; overload; virtual;
    procedure add(para1: jint; para2: JLObject); overload; virtual;
    function addAll(para1: JUCollection): jboolean; overload; virtual;
    function addAll(para1: jint; para2: JUCollection): jboolean; overload; virtual;
    function &set(para1: jint; para2: JLObject): JLObject; overload; virtual;
  end;

  JMRRoleUnresolvedList = class external 'javax.management.relation' name 'RoleUnresolvedList' (JUArrayList)
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: JUList); overload;  // throws java.lang.IllegalArgumentException
    function asList(): JUList; overload; virtual;
    procedure add(para1: JMRRoleUnresolved); overload; virtual;  // throws java.lang.IllegalArgumentException
    procedure add(para1: jint; para2: JMRRoleUnresolved); overload; virtual;  // throws java.lang.IllegalArgumentException, java.lang.IndexOutOfBoundsException
    procedure &set(para1: jint; para2: JMRRoleUnresolved); overload; virtual;  // throws java.lang.IllegalArgumentException, java.lang.IndexOutOfBoundsException
    function addAll(para1: JMRRoleUnresolvedList): jboolean; overload; virtual;  // throws java.lang.IndexOutOfBoundsException
    function addAll(para1: jint; para2: JMRRoleUnresolvedList): jboolean; overload; virtual;  // throws java.lang.IllegalArgumentException, java.lang.IndexOutOfBoundsException
    function add(para1: JLObject): jboolean; overload; virtual;
    procedure add(para1: jint; para2: JLObject); overload; virtual;
    function addAll(para1: JUCollection): jboolean; overload; virtual;
    function addAll(para1: jint; para2: JUCollection): jboolean; overload; virtual;
    function &set(para1: jint; para2: JLObject): JLObject; overload; virtual;
  end;

  JURandomAccessSubList = class external 'java.util' name 'RandomAccessSubList' (JUSubList, JURandomAccess)
  public
    function subList(para1: jint; para2: jint): JUList; overload; virtual;
  end;

  JUStack = class external 'java.util' name 'Stack' (JUVector)
  public
    constructor create(); overload;
    function push(para1: JLObject): JLObject; overload; virtual;
    function pop(): JLObject; overload; virtual;
    function peek(): JLObject; overload; virtual;
    function empty(): jboolean; overload; virtual;
    function search(para1: JLObject): jint; overload; virtual;
  end;

  JUCLinkedBlockingDeque = class external 'java.util.concurrent' name 'LinkedBlockingDeque' (JUAbstractQueue, JUCBlockingDeque, JISerializable)
  public
    type
      InnerNode = class;
      Arr1InnerNode = array of InnerNode;
      Arr2InnerNode = array of Arr1InnerNode;
      Arr3InnerNode = array of Arr2InnerNode;
      InnerAbstractItr = class;
      Arr1InnerAbstractItr = array of InnerAbstractItr;
      Arr2InnerAbstractItr = array of Arr1InnerAbstractItr;
      Arr3InnerAbstractItr = array of Arr2InnerAbstractItr;
      InnerDescendingItr = class;
      Arr1InnerDescendingItr = array of InnerDescendingItr;
      Arr2InnerDescendingItr = array of Arr1InnerDescendingItr;
      Arr3InnerDescendingItr = array of Arr2InnerDescendingItr;
      InnerItr = class;
      Arr1InnerItr = array of InnerItr;
      Arr2InnerItr = array of Arr1InnerItr;
      Arr3InnerItr = array of Arr2InnerItr;
      InnerNode = class sealed external 'java.util.concurrent' name 'Node' 
      end;

      InnerAbstractItr = class abstract external 'java.util.concurrent' name 'AbstractItr' 
      end;

      InnerDescendingItr = class external 'java.util.concurrent' name 'DescendingItr' 
      end;

      InnerItr = class external 'java.util.concurrent' name 'Itr' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: JUCollection); overload;
    procedure addFirst(para1: JLObject); overload; virtual;
    procedure addLast(para1: JLObject); overload; virtual;
    function offerFirst(para1: JLObject): jboolean; overload; virtual;
    function offerLast(para1: JLObject): jboolean; overload; virtual;
    procedure putFirst(para1: JLObject); overload; virtual;  // throws java.lang.InterruptedException
    procedure putLast(para1: JLObject); overload; virtual;  // throws java.lang.InterruptedException
    function offerFirst(para1: JLObject; para2: jlong; para3: JUCTimeUnit): jboolean; overload; virtual;  // throws java.lang.InterruptedException
    function offerLast(para1: JLObject; para2: jlong; para3: JUCTimeUnit): jboolean; overload; virtual;  // throws java.lang.InterruptedException
    function removeFirst(): JLObject; overload; virtual;
    function removeLast(): JLObject; overload; virtual;
    function pollFirst(): JLObject; overload; virtual;
    function pollLast(): JLObject; overload; virtual;
    function takeFirst(): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function takeLast(): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function pollFirst(para1: jlong; para2: JUCTimeUnit): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function pollLast(para1: jlong; para2: JUCTimeUnit): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function getFirst(): JLObject; overload; virtual;
    function getLast(): JLObject; overload; virtual;
    function peekFirst(): JLObject; overload; virtual;
    function peekLast(): JLObject; overload; virtual;
    function removeFirstOccurrence(para1: JLObject): jboolean; overload; virtual;
    function removeLastOccurrence(para1: JLObject): jboolean; overload; virtual;
    function add(para1: JLObject): jboolean; overload; virtual;
    function offer(para1: JLObject): jboolean; overload; virtual;
    procedure put(para1: JLObject); overload; virtual;  // throws java.lang.InterruptedException
    function offer(para1: JLObject; para2: jlong; para3: JUCTimeUnit): jboolean; overload; virtual;  // throws java.lang.InterruptedException
    function remove(): JLObject; overload; virtual;
    function poll(): JLObject; overload; virtual;
    function take(): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function poll(para1: jlong; para2: JUCTimeUnit): JLObject; overload; virtual;  // throws java.lang.InterruptedException
    function element(): JLObject; overload; virtual;
    function peek(): JLObject; overload; virtual;
    function remainingCapacity(): jint; overload; virtual;
    function drainTo(para1: JUCollection): jint; overload; virtual;
    function drainTo(para1: JUCollection; para2: jint): jint; overload; virtual;
    procedure push(para1: JLObject); overload; virtual;
    function pop(): JLObject; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
    function size(): jint; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function toArray(): Arr1JLObject; overload; virtual;
    function toArray(para1: Arr1JLObject): Arr1JLObject; overload; virtual;
    function toArray(var para1: array of JLObject): Arr1JLObject; overload; virtual;
    function toString(): JLString; overload; virtual;
    procedure clear(); overload; virtual;
    function iterator(): JUIterator; overload; virtual;
    function descendingIterator(): JUIterator; overload; virtual;
  end;

  JAPPanelPeer = interface external 'java.awt.peer' name 'PanelPeer' (JAPContainerPeer)
  end;

  JAPScrollPanePeer = interface external 'java.awt.peer' name 'ScrollPanePeer' (JAPContainerPeer)
    function getHScrollbarHeight(): jint; overload;
    function getVScrollbarWidth(): jint; overload;
    procedure setScrollPosition(para1: jint; para2: jint); overload;
    procedure childResized(para1: jint; para2: jint); overload;
    procedure setUnitIncrement(para1: JAAdjustable; para2: jint); overload;
    procedure setValue(para1: JAAdjustable; para2: jint); overload;
  end;

  JAPWindowPeer = interface external 'java.awt.peer' name 'WindowPeer' (JAPContainerPeer)
    procedure toFront(); overload;
    procedure toBack(); overload;
    procedure setAlwaysOnTop(para1: jboolean); overload;
    procedure updateFocusableWindowState(); overload;
    function requestWindowFocus(): jboolean; overload;
    procedure setModalBlocked(para1: JADialog; para2: jboolean); overload;
    procedure updateMinimumSize(); overload;
    procedure updateIconImages(); overload;
    procedure setOpacity(para1: jfloat); overload;
    procedure setOpaque(para1: jboolean); overload;
    procedure updateWindow(); overload;
    procedure repositionSecurityWarning(); overload;
  end;

  JAPTextAreaPeer = interface external 'java.awt.peer' name 'TextAreaPeer' (JAPTextComponentPeer)
    procedure insert(para1: JLString; para2: jint); overload;
    procedure replaceRange(para1: JLString; para2: jint; para3: jint); overload;
    function getPreferredSize(para1: jint; para2: jint): JADimension; overload;
    function getMinimumSize(para1: jint; para2: jint): JADimension; overload;
    procedure insertText(para1: JLString; para2: jint); overload;
    procedure replaceText(para1: JLString; para2: jint; para3: jint); overload;
    function preferredSize(para1: jint; para2: jint): JADimension; overload;
    function minimumSize(para1: jint; para2: jint): JADimension; overload;
  end;

  JAPTextFieldPeer = interface external 'java.awt.peer' name 'TextFieldPeer' (JAPTextComponentPeer)
    procedure setEchoChar(para1: jchar); overload;
    function getPreferredSize(para1: jint): JADimension; overload;
    function getMinimumSize(para1: jint): JADimension; overload;
    procedure setEchoCharacter(para1: jchar); overload;
    function preferredSize(para1: jint): JADimension; overload;
    function minimumSize(para1: jint): JADimension; overload;
  end;

  JSLegacyLayoutFocusTraversalPolicy = class sealed external 'javax.swing' name 'LegacyLayoutFocusTraversalPolicy' (JSLayoutFocusTraversalPolicy)
  end;

  JSDefaultFocusManager = class external 'javax.swing' name 'DefaultFocusManager' (JSFocusManager)
  public
    constructor create(); overload;
    function getComponentAfter(para1: JAContainer; para2: JAComponent): JAComponent; overload; virtual;
    function getComponentBefore(para1: JAContainer; para2: JAComponent): JAComponent; overload; virtual;
    function getFirstComponent(para1: JAContainer): JAComponent; overload; virtual;
    function getLastComponent(para1: JAContainer): JAComponent; overload; virtual;
    function compareTabOrder(para1: JAComponent; para2: JAComponent): jboolean; overload; virtual;
  end;

  JSTDefaultCaret = class external 'javax.swing.text' name 'DefaultCaret' (JARectangle, JSTCaret, JAEFocusListener, JAEMouseListener, JAEMouseMotionListener)
  public
    type
      InnerDefaultFilterBypass = class;
      Arr1InnerDefaultFilterBypass = array of InnerDefaultFilterBypass;
      Arr2InnerDefaultFilterBypass = array of Arr1InnerDefaultFilterBypass;
      Arr3InnerDefaultFilterBypass = array of Arr2InnerDefaultFilterBypass;
      InnerHandler = class;
      Arr1InnerHandler = array of InnerHandler;
      Arr2InnerHandler = array of Arr1InnerHandler;
      Arr3InnerHandler = array of Arr2InnerHandler;
      InnerSafeScroller = class;
      Arr1InnerSafeScroller = array of InnerSafeScroller;
      Arr2InnerSafeScroller = array of Arr1InnerSafeScroller;
      Arr3InnerSafeScroller = array of Arr2InnerSafeScroller;
      InnerDefaultFilterBypass = class external 'javax.swing.text' name 'DefaultFilterBypass' 
      end;

      InnerHandler = class external 'javax.swing.text' name 'Handler' 
      end;

      InnerSafeScroller = class external 'javax.swing.text' name 'SafeScroller' 
      end;

  public
    const
      UPDATE_WHEN_ON_EDT = 0;
      NEVER_UPDATE = 1;
      ALWAYS_UPDATE = 2;
  strict protected
    var
      flistenerList: JSEEventListenerList; external name 'listenerList';
      fchangeEvent: JSEChangeEvent; external name 'changeEvent';
  public
    constructor create(); overload;
    procedure setUpdatePolicy(para1: jint); overload; virtual;
    function getUpdatePolicy(): jint; overload; virtual;
  strict protected
    function getComponent(): JSTJTextComponent; overload; virtual; final;
    procedure repaint(); overload; virtual; final;
    procedure damage(para1: JARectangle); overload; virtual;
    procedure adjustVisibility(para1: JARectangle); overload; virtual;
    function getSelectionPainter(): JSTHighlighter.InnerHighlightPainter; overload; virtual;
    procedure positionCaret(para1: JAEMouseEvent); overload; virtual;
    procedure moveCaret(para1: JAEMouseEvent); overload; virtual;
  public
    procedure focusGained(para1: JAEFocusEvent); overload; virtual;
    procedure focusLost(para1: JAEFocusEvent); overload; virtual;
    procedure mouseClicked(para1: JAEMouseEvent); overload; virtual;
    procedure mousePressed(para1: JAEMouseEvent); overload; virtual;
    procedure mouseReleased(para1: JAEMouseEvent); overload; virtual;
    procedure mouseEntered(para1: JAEMouseEvent); overload; virtual;
    procedure mouseExited(para1: JAEMouseEvent); overload; virtual;
    procedure mouseDragged(para1: JAEMouseEvent); overload; virtual;
    procedure mouseMoved(para1: JAEMouseEvent); overload; virtual;
    procedure paint(para1: JAGraphics); overload; virtual;
    procedure install(para1: JSTJTextComponent); overload; virtual;
    procedure deinstall(para1: JSTJTextComponent); overload; virtual;
    procedure addChangeListener(para1: JSEChangeListener); overload; virtual;
    procedure removeChangeListener(para1: JSEChangeListener); overload; virtual;
    function getChangeListeners(): Arr1JSEChangeListener; overload; virtual;
  strict protected
    procedure fireStateChanged(); overload; virtual;
  public
    function getListeners(para1: JLClass): Arr1JUEventListener; overload; virtual;
    procedure setSelectionVisible(para1: jboolean); overload; virtual;
    function isSelectionVisible(): jboolean; overload; virtual;
    function isActive(): jboolean; overload; virtual;
    function isVisible(): jboolean; overload; virtual;
    procedure setVisible(para1: jboolean); overload; virtual;
    procedure setBlinkRate(para1: jint); overload; virtual;
    function getBlinkRate(): jint; overload; virtual;
    function getDot(): jint; overload; virtual;
    function getMark(): jint; overload; virtual;
    procedure setDot(para1: jint); overload; virtual;
    procedure moveDot(para1: jint); overload; virtual;
    procedure moveDot(para1: jint; para2: JSTPosition.InnerBias); overload; virtual;
    procedure setDot(para1: jint; para2: JSTPosition.InnerBias); overload; virtual;
    function getDotBias(): JSTPosition.InnerBias; overload; virtual;
    function getMarkBias(): JSTPosition.InnerBias; overload; virtual;
    procedure setMagicCaretPosition(para1: JAPoint); overload; virtual;
    function getMagicCaretPosition(): JAPoint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JALinearGradientPaintContext = class sealed external 'java.awt' name 'LinearGradientPaintContext' (JAMultipleGradientPaintContext)
  strict protected
    procedure fillRaster(para1: Arr1jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure fillRaster(var para1: array of jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
  end;

  JARadialGradientPaintContext = class sealed external 'java.awt' name 'RadialGradientPaintContext' (JAMultipleGradientPaintContext)
  strict protected
    procedure fillRaster(para1: Arr1jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure fillRaster(var para1: array of jint; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
  end;

  JAApplet = class external 'java.applet' name 'Applet' (JAPanel)
  public
    type
      InnerAccessibleApplet = class;
      Arr1InnerAccessibleApplet = array of InnerAccessibleApplet;
      Arr2InnerAccessibleApplet = array of Arr1InnerAccessibleApplet;
      Arr3InnerAccessibleApplet = array of Arr2InnerAccessibleApplet;
      InnerAccessibleApplet = class external 'java.applet' name 'AccessibleApplet' 
      end;

  public
    constructor create(); overload;  // throws java.awt.HeadlessException
    procedure setStub(para1: JAAppletStub); overload; virtual; final;
    function isActive(): jboolean; overload; virtual;
    function getDocumentBase(): JNURL; overload; virtual;
    function getCodeBase(): JNURL; overload; virtual;
    function getParameter(para1: JLString): JLString; overload; virtual;
    function getAppletContext(): JAAppletContext; overload; virtual;
    procedure resize(para1: jint; para2: jint); overload; virtual;
    procedure resize(para1: JADimension); overload; virtual;
    procedure showStatus(para1: JLString); overload; virtual;
    function getImage(para1: JNURL): JAImage; overload; virtual;
    function getImage(para1: JNURL; para2: JLString): JAImage; overload; virtual;
    class function newAudioClip(para1: JNURL): JAAudioClip; static; overload; final;
    function getAudioClip(para1: JNURL): JAAudioClip; overload; virtual;
    function getAudioClip(para1: JNURL; para2: JLString): JAAudioClip; overload; virtual;
    function getAppletInfo(): JLString; overload; virtual;
    function getLocale(): JULocale; overload; virtual;
    function getParameterInfo(): Arr2JLString; overload; virtual;
    procedure play(para1: JNURL); overload; virtual;
    procedure play(para1: JNURL; para2: JLString); overload; virtual;
    procedure init(); overload; virtual;
    procedure start(); overload; virtual;
    procedure stop(); overload; virtual;
    procedure destroy(); overload; virtual;
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JAFrame = class external 'java.awt' name 'Frame' (JAWindow, JAMenuContainer)
  public
    type
      InnerAccessibleAWTFrame = class;
      Arr1InnerAccessibleAWTFrame = array of InnerAccessibleAWTFrame;
      Arr2InnerAccessibleAWTFrame = array of Arr1InnerAccessibleAWTFrame;
      Arr3InnerAccessibleAWTFrame = array of Arr2InnerAccessibleAWTFrame;
      InnerAccessibleAWTFrame = class external 'java.awt' name 'AccessibleAWTFrame' 
      end;

  public
    const
      DEFAULT_CURSOR = 0 deprecated;
      CROSSHAIR_CURSOR = 1 deprecated;
      TEXT_CURSOR = 2 deprecated;
      WAIT_CURSOR = 3 deprecated;
      SW_RESIZE_CURSOR = 4 deprecated;
      SE_RESIZE_CURSOR = 5 deprecated;
      NW_RESIZE_CURSOR = 6 deprecated;
      NE_RESIZE_CURSOR = 7 deprecated;
      N_RESIZE_CURSOR = 8 deprecated;
      S_RESIZE_CURSOR = 9 deprecated;
      W_RESIZE_CURSOR = 10 deprecated;
      E_RESIZE_CURSOR = 11 deprecated;
      HAND_CURSOR = 12 deprecated;
      MOVE_CURSOR = 13 deprecated;
      NORMAL = 0;
      ICONIFIED = 1;
      MAXIMIZED_HORIZ = 2;
      MAXIMIZED_VERT = 4;
      MAXIMIZED_BOTH = 6;
  public
    constructor create(); overload;  // throws java.awt.HeadlessException
    constructor create(para1: JAGraphicsConfiguration); overload;
    constructor create(para1: JLString); overload;  // throws java.awt.HeadlessException
    constructor create(para1: JLString; para2: JAGraphicsConfiguration); overload;
    procedure addNotify(); overload; virtual;
    function getTitle(): JLString; overload; virtual;
    procedure setTitle(para1: JLString); overload; virtual;
    function getIconImage(): JAImage; overload; virtual;
    procedure setIconImage(para1: JAImage); overload; virtual;
    function getMenuBar(): JAMenuBar; overload; virtual;
    procedure setMenuBar(para1: JAMenuBar); overload; virtual;
    function isResizable(): jboolean; overload; virtual;
    procedure setResizable(para1: jboolean); overload; virtual;
    procedure setState(para1: jint); overload; virtual;
    procedure setExtendedState(para1: jint); overload; virtual;
    function getState(): jint; overload; virtual;
    function getExtendedState(): jint; overload; virtual;
    procedure setMaximizedBounds(para1: JARectangle); overload; virtual;
    function getMaximizedBounds(): JARectangle; overload; virtual;
    procedure setUndecorated(para1: jboolean); overload; virtual;
    function isUndecorated(): jboolean; overload; virtual;
    procedure remove(para1: JAMenuComponent); overload; virtual;
    procedure removeNotify(); overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    procedure setCursor(para1: jint); overload; virtual;
    function getCursorType(): jint; overload; virtual;
    class function getFrames(): Arr1JAFrame; static; overload;
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJWindow = class external 'javax.swing' name 'JWindow' (JAWindow, JAAccessible, JSRootPaneContainer, JSTransferHandler.InnerHasGetTransferHandler)
  public
    type
      InnerAccessibleJWindow = class;
      Arr1InnerAccessibleJWindow = array of InnerAccessibleJWindow;
      Arr2InnerAccessibleJWindow = array of Arr1InnerAccessibleJWindow;
      Arr3InnerAccessibleJWindow = array of Arr2InnerAccessibleJWindow;
      InnerAccessibleJWindow = class external 'javax.swing' name 'AccessibleJWindow' 
      end;

  strict protected
    var
      frootPane: JSJRootPane; external name 'rootPane';
      frootPaneCheckingEnabled: jboolean; external name 'rootPaneCheckingEnabled';
      faccessibleContext: JAAccessibleContext; external name 'accessibleContext';
  public
    constructor create(); overload;
    constructor create(para1: JAGraphicsConfiguration); overload;
    constructor create(para1: JAFrame); overload;
    constructor create(para1: JAWindow); overload;
    constructor create(para1: JAWindow; para2: JAGraphicsConfiguration); overload;
  strict protected
    procedure windowInit(); overload; virtual;
    function createRootPane(): JSJRootPane; overload; virtual;
    function isRootPaneCheckingEnabled(): jboolean; overload; virtual;
  public
    procedure setTransferHandler(para1: JSTransferHandler); overload; virtual;
    function getTransferHandler(): JSTransferHandler; overload; virtual;
    procedure update(para1: JAGraphics); overload; virtual;
  strict protected
    procedure setRootPaneCheckingEnabled(para1: jboolean); overload; virtual;
    procedure addImpl(para1: JAComponent; para2: JLObject; para3: jint); overload; virtual;
  public
    procedure remove(para1: JAComponent); overload; virtual;
    procedure setLayout(para1: JALayoutManager); overload; virtual;
    function getRootPane(): JSJRootPane; overload; virtual;
  strict protected
    procedure setRootPane(para1: JSJRootPane); overload; virtual;
  public
    function getContentPane(): JAContainer; overload; virtual;
    procedure setContentPane(para1: JAContainer); overload; virtual;
    function getLayeredPane(): JSJLayeredPane; overload; virtual;
    procedure setLayeredPane(para1: JSJLayeredPane); overload; virtual;
    function getGlassPane(): JAComponent; overload; virtual;
    procedure setGlassPane(para1: JAComponent); overload; virtual;
    function getGraphics(): JAGraphics; overload; virtual;
    procedure repaint(para1: jlong; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSAbstractButton = class abstract external 'javax.swing' name 'AbstractButton' (JSJComponent, JAItemSelectable, JSSwingConstants)
  public
    type
      InnerButtonActionPropertyChangeListener = class;
      Arr1InnerButtonActionPropertyChangeListener = array of InnerButtonActionPropertyChangeListener;
      Arr2InnerButtonActionPropertyChangeListener = array of Arr1InnerButtonActionPropertyChangeListener;
      Arr3InnerButtonActionPropertyChangeListener = array of Arr2InnerButtonActionPropertyChangeListener;
      InnerHandler = class;
      Arr1InnerHandler = array of InnerHandler;
      Arr2InnerHandler = array of Arr1InnerHandler;
      Arr3InnerHandler = array of Arr2InnerHandler;
      InnerButtonActionPropertyChangeListener = class external 'javax.swing' name 'ButtonActionPropertyChangeListener' 
      end;

      InnerHandler = class external 'javax.swing' name 'Handler' 
      end;

  public
    type
      InnerAccessibleAbstractButton = class;
      Arr1InnerAccessibleAbstractButton = array of InnerAccessibleAbstractButton;
      Arr2InnerAccessibleAbstractButton = array of Arr1InnerAccessibleAbstractButton;
      Arr3InnerAccessibleAbstractButton = array of Arr2InnerAccessibleAbstractButton;
      InnerButtonChangeListener = class;
      Arr1InnerButtonChangeListener = array of InnerButtonChangeListener;
      Arr2InnerButtonChangeListener = array of Arr1InnerButtonChangeListener;
      Arr3InnerButtonChangeListener = array of Arr2InnerButtonChangeListener;
      InnerAccessibleAbstractButton = class abstract external 'javax.swing' name 'AccessibleAbstractButton' 
      public
        type
          InnerButtonKeyBinding = class;
          Arr1InnerButtonKeyBinding = array of InnerButtonKeyBinding;
          Arr2InnerButtonKeyBinding = array of Arr1InnerButtonKeyBinding;
          Arr3InnerButtonKeyBinding = array of Arr2InnerButtonKeyBinding;
          InnerButtonKeyBinding = class external 'javax.swing' name 'ButtonKeyBinding' 
          end;

      end;

      InnerButtonChangeListener = class external 'javax.swing' name 'ButtonChangeListener' 
      end;

  public
    const
      MODEL_CHANGED_PROPERTY = 'model';
      TEXT_CHANGED_PROPERTY = 'text';
      MNEMONIC_CHANGED_PROPERTY = 'mnemonic';
      MARGIN_CHANGED_PROPERTY = 'margin';
      VERTICAL_ALIGNMENT_CHANGED_PROPERTY = 'verticalAlignment';
      HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY = 'horizontalAlignment';
      VERTICAL_TEXT_POSITION_CHANGED_PROPERTY = 'verticalTextPosition';
      HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY = 'horizontalTextPosition';
      BORDER_PAINTED_CHANGED_PROPERTY = 'borderPainted';
      FOCUS_PAINTED_CHANGED_PROPERTY = 'focusPainted';
      ROLLOVER_ENABLED_CHANGED_PROPERTY = 'rolloverEnabled';
      CONTENT_AREA_FILLED_CHANGED_PROPERTY = 'contentAreaFilled';
      ICON_CHANGED_PROPERTY = 'icon';
      PRESSED_ICON_CHANGED_PROPERTY = 'pressedIcon';
      SELECTED_ICON_CHANGED_PROPERTY = 'selectedIcon';
      ROLLOVER_ICON_CHANGED_PROPERTY = 'rolloverIcon';
      ROLLOVER_SELECTED_ICON_CHANGED_PROPERTY = 'rolloverSelectedIcon';
      DISABLED_ICON_CHANGED_PROPERTY = 'disabledIcon';
      DISABLED_SELECTED_ICON_CHANGED_PROPERTY = 'disabledSelectedIcon';
  strict protected
    var
      fmodel: JSButtonModel; external name 'model';
      fchangeListener: JSEChangeListener; external name 'changeListener';
      factionListener: JAEActionListener; external name 'actionListener';
      fitemListener: JAEItemListener; external name 'itemListener';
      fchangeEvent: JSEChangeEvent; external name 'changeEvent';
  public
    constructor create(); overload;
    procedure setHideActionText(para1: jboolean); overload; virtual;
    function getHideActionText(): jboolean; overload; virtual;
    function getText(): JLString; overload; virtual;
    procedure setText(para1: JLString); overload; virtual;
    function isSelected(): jboolean; overload; virtual;
    procedure setSelected(para1: jboolean); overload; virtual;
    procedure doClick(); overload; virtual;
    procedure doClick(para1: jint); overload; virtual;
    procedure setMargin(para1: JAInsets); overload; virtual;
    function getMargin(): JAInsets; overload; virtual;
    function getIcon(): JSIcon; overload; virtual;
    procedure setIcon(para1: JSIcon); overload; virtual;
    function getPressedIcon(): JSIcon; overload; virtual;
    procedure setPressedIcon(para1: JSIcon); overload; virtual;
    function getSelectedIcon(): JSIcon; overload; virtual;
    procedure setSelectedIcon(para1: JSIcon); overload; virtual;
    function getRolloverIcon(): JSIcon; overload; virtual;
    procedure setRolloverIcon(para1: JSIcon); overload; virtual;
    function getRolloverSelectedIcon(): JSIcon; overload; virtual;
    procedure setRolloverSelectedIcon(para1: JSIcon); overload; virtual;
    function getDisabledIcon(): JSIcon; overload; virtual;
    procedure setDisabledIcon(para1: JSIcon); overload; virtual;
    function getDisabledSelectedIcon(): JSIcon; overload; virtual;
    procedure setDisabledSelectedIcon(para1: JSIcon); overload; virtual;
    function getVerticalAlignment(): jint; overload; virtual;
    procedure setVerticalAlignment(para1: jint); overload; virtual;
    function getHorizontalAlignment(): jint; overload; virtual;
    procedure setHorizontalAlignment(para1: jint); overload; virtual;
    function getVerticalTextPosition(): jint; overload; virtual;
    procedure setVerticalTextPosition(para1: jint); overload; virtual;
    function getHorizontalTextPosition(): jint; overload; virtual;
    procedure setHorizontalTextPosition(para1: jint); overload; virtual;
    function getIconTextGap(): jint; overload; virtual;
    procedure setIconTextGap(para1: jint); overload; virtual;
  strict protected
    function checkHorizontalKey(para1: jint; para2: JLString): jint; overload; virtual;
    function checkVerticalKey(para1: jint; para2: JLString): jint; overload; virtual;
  public
    procedure removeNotify(); overload; virtual;
    procedure setActionCommand(para1: JLString); overload; virtual;
    function getActionCommand(): JLString; overload; virtual;
    procedure setAction(para1: JSAction); overload; virtual;
    function getAction(): JSAction; overload; virtual;
  strict protected
    procedure configurePropertiesFromAction(para1: JSAction); overload; virtual;
    procedure actionPropertyChanged(para1: JSAction; para2: JLString); overload; virtual;
    function createActionPropertyChangeListener(para1: JSAction): JBPropertyChangeListener; overload; virtual;
  public
    function isBorderPainted(): jboolean; overload; virtual;
    procedure setBorderPainted(para1: jboolean); overload; virtual;
  strict protected
    procedure paintBorder(para1: JAGraphics); overload; virtual;
  public
    function isFocusPainted(): jboolean; overload; virtual;
    procedure setFocusPainted(para1: jboolean); overload; virtual;
    function isContentAreaFilled(): jboolean; overload; virtual;
    procedure setContentAreaFilled(para1: jboolean); overload; virtual;
    function isRolloverEnabled(): jboolean; overload; virtual;
    procedure setRolloverEnabled(para1: jboolean); overload; virtual;
    function getMnemonic(): jint; overload; virtual;
    procedure setMnemonic(para1: jint); overload; virtual;
    procedure setMnemonic(para1: jchar); overload; virtual;
    procedure setDisplayedMnemonicIndex(para1: jint); overload; virtual;  // throws java.lang.IllegalArgumentException
    function getDisplayedMnemonicIndex(): jint; overload; virtual;
    procedure setMultiClickThreshhold(para1: jlong); overload; virtual;
    function getMultiClickThreshhold(): jlong; overload; virtual;
    function getModel(): JSButtonModel; overload; virtual;
    procedure setModel(para1: JSButtonModel); overload; virtual;
    function getUI(): JSPButtonUI; overload; virtual;
    procedure setUI(para1: JSPButtonUI); overload; virtual;
    procedure updateUI(); overload; virtual;
  strict protected
    procedure addImpl(para1: JAComponent; para2: JLObject; para3: jint); overload; virtual;
  public
    procedure setLayout(para1: JALayoutManager); overload; virtual;
    procedure addChangeListener(para1: JSEChangeListener); overload; virtual;
    procedure removeChangeListener(para1: JSEChangeListener); overload; virtual;
    function getChangeListeners(): Arr1JSEChangeListener; overload; virtual;
  strict protected
    procedure fireStateChanged(); overload; virtual;
  public
    procedure addActionListener(para1: JAEActionListener); overload; virtual;
    procedure removeActionListener(para1: JAEActionListener); overload; virtual;
    function getActionListeners(): Arr1JAEActionListener; overload; virtual;
  strict protected
    function createChangeListener(): JSEChangeListener; overload; virtual;
    procedure fireActionPerformed(para1: JAEActionEvent); overload; virtual;
    procedure fireItemStateChanged(para1: JAEItemEvent); overload; virtual;
    function createActionListener(): JAEActionListener; overload; virtual;
    function createItemListener(): JAEItemListener; overload; virtual;
  public
    procedure setEnabled(para1: jboolean); overload; virtual;
    function getLabel(): JLString; overload; virtual;
    procedure setLabel(para1: JLString); overload; virtual;
    procedure addItemListener(para1: JAEItemListener); overload; virtual;
    procedure removeItemListener(para1: JAEItemListener); overload; virtual;
    function getItemListeners(): Arr1JAEItemListener; overload; virtual;
    function getSelectedObjects(): Arr1JLObject; overload; virtual;
  strict protected
    procedure init(para1: JLString; para2: JSIcon); overload; virtual;
  public
    function imageUpdate(para1: JAImage; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint): jboolean; overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  end;

  JSBox = class external 'javax.swing' name 'Box' (JSJComponent, JAAccessible)
  public
    type
      InnerAccessibleBox = class;
      Arr1InnerAccessibleBox = array of InnerAccessibleBox;
      Arr2InnerAccessibleBox = array of Arr1InnerAccessibleBox;
      Arr3InnerAccessibleBox = array of Arr2InnerAccessibleBox;
      InnerFiller = class;
      Arr1InnerFiller = array of InnerFiller;
      Arr2InnerFiller = array of Arr1InnerFiller;
      Arr3InnerFiller = array of Arr2InnerFiller;
      InnerAccessibleBox = class external 'javax.swing' name 'AccessibleBox' 
      end;

      InnerFiller = class external 'javax.swing' name 'Filler' (JSJComponent, JAAccessible)
      public
        type
          InnerAccessibleBoxFiller = class;
          Arr1InnerAccessibleBoxFiller = array of InnerAccessibleBoxFiller;
          Arr2InnerAccessibleBoxFiller = array of Arr1InnerAccessibleBoxFiller;
          Arr3InnerAccessibleBoxFiller = array of Arr2InnerAccessibleBoxFiller;
          InnerAccessibleBoxFiller = class external 'javax.swing' name 'AccessibleBoxFiller' 
          end;

      public
        constructor create(para1: JADimension; para2: JADimension; para3: JADimension); overload;
        procedure changeShape(para1: JADimension; para2: JADimension; para3: JADimension); overload; virtual;
      strict protected
        procedure paintComponent(para1: JAGraphics); overload; virtual;
      public
        function getAccessibleContext(): JAAccessibleContext; overload; virtual;
      end;

  public
    constructor create(para1: jint); overload;
    class function createHorizontalBox(): JSBox; static; overload;
    class function createVerticalBox(): JSBox; static; overload;
    class function createRigidArea(para1: JADimension): JAComponent; static; overload;
    class function createHorizontalStrut(para1: jint): JAComponent; static; overload;
    class function createVerticalStrut(para1: jint): JAComponent; static; overload;
    class function createGlue(): JAComponent; static; overload;
    class function createHorizontalGlue(): JAComponent; static; overload;
    class function createVerticalGlue(): JAComponent; static; overload;
    procedure setLayout(para1: JALayoutManager); overload; virtual;
  strict protected
    procedure paintComponent(para1: JAGraphics); overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJColorChooser = class external 'javax.swing' name 'JColorChooser' (JSJComponent, JAAccessible)
  public
    type
      InnerAccessibleJColorChooser = class;
      Arr1InnerAccessibleJColorChooser = array of InnerAccessibleJColorChooser;
      Arr2InnerAccessibleJColorChooser = array of Arr1InnerAccessibleJColorChooser;
      Arr3InnerAccessibleJColorChooser = array of Arr2InnerAccessibleJColorChooser;
      InnerAccessibleJColorChooser = class external 'javax.swing' name 'AccessibleJColorChooser' 
      end;

  public
    const
      SELECTION_MODEL_PROPERTY = 'selectionModel';
      PREVIEW_PANEL_PROPERTY = 'previewPanel';
      CHOOSER_PANELS_PROPERTY = 'chooserPanels';
  strict protected
    var
      faccessibleContext: JAAccessibleContext; external name 'accessibleContext';
  public
    class function showDialog(para1: JAComponent; para2: JLString; para3: JAColor): JAColor; static; overload;  // throws java.awt.HeadlessException
    class function createDialog(para1: JAComponent; para2: JLString; para3: jboolean; para4: JSJColorChooser; para5: JAEActionListener; para6: JAEActionListener): JSJDialog; static; overload;  // throws java.awt.HeadlessException
    constructor create(); overload;
    constructor create(para1: JAColor); overload;
    constructor create(para1: JSCColorSelectionModel); overload;
    function getUI(): JSPColorChooserUI; overload; virtual;
    procedure setUI(para1: JSPColorChooserUI); overload; virtual;
    procedure updateUI(); overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
    function getColor(): JAColor; overload; virtual;
    procedure setColor(para1: JAColor); overload; virtual;
    procedure setColor(para1: jint; para2: jint; para3: jint); overload; virtual;
    procedure setColor(para1: jint); overload; virtual;
    procedure setDragEnabled(para1: jboolean); overload; virtual;
    function getDragEnabled(): jboolean; overload; virtual;
    procedure setPreviewPanel(para1: JSJComponent); overload; virtual;
    function getPreviewPanel(): JSJComponent; overload; virtual;
    procedure addChooserPanel(para1: JSCAbstractColorChooserPanel); overload; virtual;
    function removeChooserPanel(para1: JSCAbstractColorChooserPanel): JSCAbstractColorChooserPanel; overload; virtual;
    procedure setChooserPanels(para1: Arr1JSCAbstractColorChooserPanel); overload; virtual;
    procedure setChooserPanels(var para1: array of JSCAbstractColorChooserPanel); overload; virtual;
    function getChooserPanels(): Arr1JSCAbstractColorChooserPanel; overload; virtual;
    function getSelectionModel(): JSCColorSelectionModel; overload; virtual;
    procedure setSelectionModel(para1: JSCColorSelectionModel); overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJComboBox = class external 'javax.swing' name 'JComboBox' (JSJComponent, JAItemSelectable, JSEListDataListener, JAEActionListener, JAAccessible)
  public
    type
      InnerComboBoxActionPropertyChangeListener = class;
      Arr1InnerComboBoxActionPropertyChangeListener = array of InnerComboBoxActionPropertyChangeListener;
      Arr2InnerComboBoxActionPropertyChangeListener = array of Arr1InnerComboBoxActionPropertyChangeListener;
      Arr3InnerComboBoxActionPropertyChangeListener = array of Arr2InnerComboBoxActionPropertyChangeListener;
      InnerDefaultKeySelectionManager = class;
      Arr1InnerDefaultKeySelectionManager = array of InnerDefaultKeySelectionManager;
      Arr2InnerDefaultKeySelectionManager = array of Arr1InnerDefaultKeySelectionManager;
      Arr3InnerDefaultKeySelectionManager = array of Arr2InnerDefaultKeySelectionManager;
      InnerComboBoxActionPropertyChangeListener = class external 'javax.swing' name 'ComboBoxActionPropertyChangeListener' 
      end;

      InnerDefaultKeySelectionManager = class external 'javax.swing' name 'DefaultKeySelectionManager' 
      end;

  public
    type
      InnerAccessibleJComboBox = class;
      Arr1InnerAccessibleJComboBox = array of InnerAccessibleJComboBox;
      Arr2InnerAccessibleJComboBox = array of Arr1InnerAccessibleJComboBox;
      Arr3InnerAccessibleJComboBox = array of Arr2InnerAccessibleJComboBox;
      InnerKeySelectionManager = interface;
      Arr1InnerKeySelectionManager = array of InnerKeySelectionManager;
      Arr2InnerKeySelectionManager = array of Arr1InnerKeySelectionManager;
      Arr3InnerKeySelectionManager = array of Arr2InnerKeySelectionManager;
      InnerAccessibleJComboBox = class external 'javax.swing' name 'AccessibleJComboBox' 
      public
        type
          InnerAccessibleEditor = class;
          Arr1InnerAccessibleEditor = array of InnerAccessibleEditor;
          Arr2InnerAccessibleEditor = array of Arr1InnerAccessibleEditor;
          Arr3InnerAccessibleEditor = array of Arr2InnerAccessibleEditor;
          InnerAccessibleJComboBoxListSelectionListener = class;
          Arr1InnerAccessibleJComboBoxListSelectionListener = array of InnerAccessibleJComboBoxListSelectionListener;
          Arr2InnerAccessibleJComboBoxListSelectionListener = array of Arr1InnerAccessibleJComboBoxListSelectionListener;
          Arr3InnerAccessibleJComboBoxListSelectionListener = array of Arr2InnerAccessibleJComboBoxListSelectionListener;
          InnerAccessibleJComboBoxPopupMenuListener = class;
          Arr1InnerAccessibleJComboBoxPopupMenuListener = array of InnerAccessibleJComboBoxPopupMenuListener;
          Arr2InnerAccessibleJComboBoxPopupMenuListener = array of Arr1InnerAccessibleJComboBoxPopupMenuListener;
          Arr3InnerAccessibleJComboBoxPopupMenuListener = array of Arr2InnerAccessibleJComboBoxPopupMenuListener;
          InnerAccessibleJComboBoxPropertyChangeListener = class;
          Arr1InnerAccessibleJComboBoxPropertyChangeListener = array of InnerAccessibleJComboBoxPropertyChangeListener;
          Arr2InnerAccessibleJComboBoxPropertyChangeListener = array of Arr1InnerAccessibleJComboBoxPropertyChangeListener;
          Arr3InnerAccessibleJComboBoxPropertyChangeListener = array of Arr2InnerAccessibleJComboBoxPropertyChangeListener;
          InnerEditorAccessibleContext = class;
          Arr1InnerEditorAccessibleContext = array of InnerEditorAccessibleContext;
          Arr2InnerEditorAccessibleContext = array of Arr1InnerEditorAccessibleContext;
          Arr3InnerEditorAccessibleContext = array of Arr2InnerEditorAccessibleContext;
          InnerAccessibleEditor = class external 'javax.swing' name 'AccessibleEditor' 
          end;

          InnerAccessibleJComboBoxListSelectionListener = class external 'javax.swing' name 'AccessibleJComboBoxListSelectionListener' 
          end;

          InnerAccessibleJComboBoxPopupMenuListener = class external 'javax.swing' name 'AccessibleJComboBoxPopupMenuListener' 
          end;

          InnerAccessibleJComboBoxPropertyChangeListener = class external 'javax.swing' name 'AccessibleJComboBoxPropertyChangeListener' 
          end;

          InnerEditorAccessibleContext = class external 'javax.swing' name 'EditorAccessibleContext' 
          end;

      end;

      InnerKeySelectionManager = interface external 'javax.swing' name 'KeySelectionManager' 
        function selectionForKey(para1: jchar; para2: JSComboBoxModel): jint; overload;
      end;

  strict protected
    var
      fdataModel: JSComboBoxModel; external name 'dataModel';
      frenderer: JSListCellRenderer; external name 'renderer';
      feditor: JSComboBoxEditor; external name 'editor';
      fmaximumRowCount: jint; external name 'maximumRowCount';
      fisEditable: jboolean; external name 'isEditable';
      fkeySelectionManager: JSJComboBox.InnerKeySelectionManager; external name 'keySelectionManager';
      factionCommand: JLString; external name 'actionCommand';
      flightWeightPopupEnabled: jboolean; external name 'lightWeightPopupEnabled';
      fselectedItemReminder: JLObject; external name 'selectedItemReminder';
  public
    constructor create(para1: JSComboBoxModel); overload;
    constructor create(para1: Arr1JLObject); overload;
    constructor create(const para1: array of JLObject); overload;
    constructor create(para1: JUVector); overload;
    constructor create(); overload;
  strict protected
    procedure installAncestorListener(); overload; virtual;
  public
    procedure setUI(para1: JSPComboBoxUI); overload; virtual;
    procedure updateUI(); overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
    function getUI(): JSPComboBoxUI; overload; virtual;
    procedure setModel(para1: JSComboBoxModel); overload; virtual;
    function getModel(): JSComboBoxModel; overload; virtual;
    procedure setLightWeightPopupEnabled(para1: jboolean); overload; virtual;
    function isLightWeightPopupEnabled(): jboolean; overload; virtual;
    procedure setEditable(para1: jboolean); overload; virtual;
    function isEditable(): jboolean; overload; virtual;
    procedure setMaximumRowCount(para1: jint); overload; virtual;
    function getMaximumRowCount(): jint; overload; virtual;
    procedure setRenderer(para1: JSListCellRenderer); overload; virtual;
    function getRenderer(): JSListCellRenderer; overload; virtual;
    procedure setEditor(para1: JSComboBoxEditor); overload; virtual;
    function getEditor(): JSComboBoxEditor; overload; virtual;
    procedure setSelectedItem(para1: JLObject); overload; virtual;
    function getSelectedItem(): JLObject; overload; virtual;
    procedure setSelectedIndex(para1: jint); overload; virtual;
    function getSelectedIndex(): jint; overload; virtual;
    function getPrototypeDisplayValue(): JLObject; overload; virtual;
    procedure setPrototypeDisplayValue(para1: JLObject); overload; virtual;
    procedure addItem(para1: JLObject); overload; virtual;
    procedure insertItemAt(para1: JLObject; para2: jint); overload; virtual;
    procedure removeItem(para1: JLObject); overload; virtual;
    procedure removeItemAt(para1: jint); overload; virtual;
    procedure removeAllItems(); overload; virtual;
    procedure showPopup(); overload; virtual;
    procedure hidePopup(); overload; virtual;
    procedure setPopupVisible(para1: jboolean); overload; virtual;
    function isPopupVisible(): jboolean; overload; virtual;
    procedure addItemListener(para1: JAEItemListener); overload; virtual;
    procedure removeItemListener(para1: JAEItemListener); overload; virtual;
    function getItemListeners(): Arr1JAEItemListener; overload; virtual;
    procedure addActionListener(para1: JAEActionListener); overload; virtual;
    procedure removeActionListener(para1: JAEActionListener); overload; virtual;
    function getActionListeners(): Arr1JAEActionListener; overload; virtual;
    procedure addPopupMenuListener(para1: JSEPopupMenuListener); overload; virtual;
    procedure removePopupMenuListener(para1: JSEPopupMenuListener); overload; virtual;
    function getPopupMenuListeners(): Arr1JSEPopupMenuListener; overload; virtual;
    procedure firePopupMenuWillBecomeVisible(); overload; virtual;
    procedure firePopupMenuWillBecomeInvisible(); overload; virtual;
    procedure firePopupMenuCanceled(); overload; virtual;
    procedure setActionCommand(para1: JLString); overload; virtual;
    function getActionCommand(): JLString; overload; virtual;
    procedure setAction(para1: JSAction); overload; virtual;
    function getAction(): JSAction; overload; virtual;
  strict protected
    procedure configurePropertiesFromAction(para1: JSAction); overload; virtual;
    function createActionPropertyChangeListener(para1: JSAction): JBPropertyChangeListener; overload; virtual;
    procedure actionPropertyChanged(para1: JSAction; para2: JLString); overload; virtual;
    procedure fireItemStateChanged(para1: JAEItemEvent); overload; virtual;
    procedure fireActionEvent(); overload; virtual;
    procedure selectedItemChanged(); overload; virtual;
  public
    function getSelectedObjects(): Arr1JLObject; overload; virtual;
    procedure actionPerformed(para1: JAEActionEvent); overload; virtual;
    procedure contentsChanged(para1: JSEListDataEvent); overload; virtual;
    procedure intervalAdded(para1: JSEListDataEvent); overload; virtual;
    procedure intervalRemoved(para1: JSEListDataEvent); overload; virtual;
    function selectWithKeyChar(para1: jchar): jboolean; overload; virtual;
    procedure setEnabled(para1: jboolean); overload; virtual;
    procedure configureEditor(para1: JSComboBoxEditor; para2: JLObject); overload; virtual;
    procedure processKeyEvent(para1: JAEKeyEvent); overload; virtual;
    procedure setKeySelectionManager(para1: JSJComboBox.InnerKeySelectionManager); overload; virtual;
    function getKeySelectionManager(): JSJComboBox.InnerKeySelectionManager; overload; virtual;
    function getItemCount(): jint; overload; virtual;
    function getItemAt(para1: jint): JLObject; overload; virtual;
  strict protected
    function createDefaultKeySelectionManager(): JSJComboBox.InnerKeySelectionManager; overload; virtual;
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJFileChooser = class external 'javax.swing' name 'JFileChooser' (JSJComponent, JAAccessible)
  public
    type
      InnerWeakPCL = class;
      Arr1InnerWeakPCL = array of InnerWeakPCL;
      Arr2InnerWeakPCL = array of Arr1InnerWeakPCL;
      Arr3InnerWeakPCL = array of Arr2InnerWeakPCL;
      InnerWeakPCL = class external 'javax.swing' name 'WeakPCL' 
      end;

  public
    type
      InnerAccessibleJFileChooser = class;
      Arr1InnerAccessibleJFileChooser = array of InnerAccessibleJFileChooser;
      Arr2InnerAccessibleJFileChooser = array of Arr1InnerAccessibleJFileChooser;
      Arr3InnerAccessibleJFileChooser = array of Arr2InnerAccessibleJFileChooser;
      InnerAccessibleJFileChooser = class external 'javax.swing' name 'AccessibleJFileChooser' 
      end;

  public
    const
      OPEN_DIALOG = 0;
      SAVE_DIALOG = 1;
      CUSTOM_DIALOG = 2;
      CANCEL_OPTION = 1;
      APPROVE_OPTION = 0;
      ERROR_OPTION = -1;
      FILES_ONLY = 0;
      DIRECTORIES_ONLY = 1;
      FILES_AND_DIRECTORIES = 2;
      CANCEL_SELECTION = 'CancelSelection';
      APPROVE_SELECTION = 'ApproveSelection';
      APPROVE_BUTTON_TEXT_CHANGED_PROPERTY = 'ApproveButtonTextChangedProperty';
      APPROVE_BUTTON_TOOL_TIP_TEXT_CHANGED_PROPERTY = 'ApproveButtonToolTipTextChangedProperty';
      APPROVE_BUTTON_MNEMONIC_CHANGED_PROPERTY = 'ApproveButtonMnemonicChangedProperty';
      CONTROL_BUTTONS_ARE_SHOWN_CHANGED_PROPERTY = 'ControlButtonsAreShownChangedProperty';
      DIRECTORY_CHANGED_PROPERTY = 'directoryChanged';
      SELECTED_FILE_CHANGED_PROPERTY = 'SelectedFileChangedProperty';
      SELECTED_FILES_CHANGED_PROPERTY = 'SelectedFilesChangedProperty';
      MULTI_SELECTION_ENABLED_CHANGED_PROPERTY = 'MultiSelectionEnabledChangedProperty';
      FILE_SYSTEM_VIEW_CHANGED_PROPERTY = 'FileSystemViewChanged';
      FILE_VIEW_CHANGED_PROPERTY = 'fileViewChanged';
      FILE_HIDING_CHANGED_PROPERTY = 'FileHidingChanged';
      FILE_FILTER_CHANGED_PROPERTY = 'fileFilterChanged';
      FILE_SELECTION_MODE_CHANGED_PROPERTY = 'fileSelectionChanged';
      ACCESSORY_CHANGED_PROPERTY = 'AccessoryChangedProperty';
      ACCEPT_ALL_FILE_FILTER_USED_CHANGED_PROPERTY = 'acceptAllFileFilterUsedChanged';
      DIALOG_TITLE_CHANGED_PROPERTY = 'DialogTitleChangedProperty';
      DIALOG_TYPE_CHANGED_PROPERTY = 'DialogTypeChangedProperty';
      CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY = 'ChoosableFileFilterChangedProperty';
  strict protected
    var
      faccessibleContext: JAAccessibleContext; external name 'accessibleContext';
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JIFile); overload;
    constructor create(para1: JSFFileSystemView); overload;
    constructor create(para1: JIFile; para2: JSFFileSystemView); overload;
    constructor create(para1: JLString; para2: JSFFileSystemView); overload;
  strict protected
    procedure setup(para1: JSFFileSystemView); overload; virtual;
  public
    procedure setDragEnabled(para1: jboolean); overload; virtual;
    function getDragEnabled(): jboolean; overload; virtual;
    function getSelectedFile(): JIFile; overload; virtual;
    procedure setSelectedFile(para1: JIFile); overload; virtual;
    function getSelectedFiles(): Arr1JIFile; overload; virtual;
    procedure setSelectedFiles(para1: Arr1JIFile); overload; virtual;
    procedure setSelectedFiles(var para1: array of JIFile); overload; virtual;
    function getCurrentDirectory(): JIFile; overload; virtual;
    procedure setCurrentDirectory(para1: JIFile); overload; virtual;
    procedure changeToParentDirectory(); overload; virtual;
    procedure rescanCurrentDirectory(); overload; virtual;
    procedure ensureFileIsVisible(para1: JIFile); overload; virtual;
    function showOpenDialog(para1: JAComponent): jint; overload; virtual;  // throws java.awt.HeadlessException
    function showSaveDialog(para1: JAComponent): jint; overload; virtual;  // throws java.awt.HeadlessException
    function showDialog(para1: JAComponent; para2: JLString): jint; overload; virtual;  // throws java.awt.HeadlessException
  strict protected
    function createDialog(para1: JAComponent): JSJDialog; overload; virtual;  // throws java.awt.HeadlessException
  public
    function getControlButtonsAreShown(): jboolean; overload; virtual;
    procedure setControlButtonsAreShown(para1: jboolean); overload; virtual;
    function getDialogType(): jint; overload; virtual;
    procedure setDialogType(para1: jint); overload; virtual;
    procedure setDialogTitle(para1: JLString); overload; virtual;
    function getDialogTitle(): JLString; overload; virtual;
    procedure setApproveButtonToolTipText(para1: JLString); overload; virtual;
    function getApproveButtonToolTipText(): JLString; overload; virtual;
    function getApproveButtonMnemonic(): jint; overload; virtual;
    procedure setApproveButtonMnemonic(para1: jint); overload; virtual;
    procedure setApproveButtonMnemonic(para1: jchar); overload; virtual;
    procedure setApproveButtonText(para1: JLString); overload; virtual;
    function getApproveButtonText(): JLString; overload; virtual;
    function getChoosableFileFilters(): Arr1JSFFileFilter; overload; virtual;
    procedure addChoosableFileFilter(para1: JSFFileFilter); overload; virtual;
    function removeChoosableFileFilter(para1: JSFFileFilter): jboolean; overload; virtual;
    procedure resetChoosableFileFilters(); overload; virtual;
    function getAcceptAllFileFilter(): JSFFileFilter; overload; virtual;
    function isAcceptAllFileFilterUsed(): jboolean; overload; virtual;
    procedure setAcceptAllFileFilterUsed(para1: jboolean); overload; virtual;
    function getAccessory(): JSJComponent; overload; virtual;
    procedure setAccessory(para1: JSJComponent); overload; virtual;
    procedure setFileSelectionMode(para1: jint); overload; virtual;
    function getFileSelectionMode(): jint; overload; virtual;
    function isFileSelectionEnabled(): jboolean; overload; virtual;
    function isDirectorySelectionEnabled(): jboolean; overload; virtual;
    procedure setMultiSelectionEnabled(para1: jboolean); overload; virtual;
    function isMultiSelectionEnabled(): jboolean; overload; virtual;
    function isFileHidingEnabled(): jboolean; overload; virtual;
    procedure setFileHidingEnabled(para1: jboolean); overload; virtual;
    procedure setFileFilter(para1: JSFFileFilter); overload; virtual;
    function getFileFilter(): JSFFileFilter; overload; virtual;
    procedure setFileView(para1: JSFFileView); overload; virtual;
    function getFileView(): JSFFileView; overload; virtual;
    function getName(para1: JIFile): JLString; overload; virtual;
    function getDescription(para1: JIFile): JLString; overload; virtual;
    function getTypeDescription(para1: JIFile): JLString; overload; virtual;
    function getIcon(para1: JIFile): JSIcon; overload; virtual;
    function isTraversable(para1: JIFile): jboolean; overload; virtual;
    function accept(para1: JIFile): jboolean; overload; virtual;
    procedure setFileSystemView(para1: JSFFileSystemView); overload; virtual;
    function getFileSystemView(): JSFFileSystemView; overload; virtual;
    procedure approveSelection(); overload; virtual;
    procedure cancelSelection(); overload; virtual;
    procedure addActionListener(para1: JAEActionListener); overload; virtual;
    procedure removeActionListener(para1: JAEActionListener); overload; virtual;
    function getActionListeners(): Arr1JAEActionListener; overload; virtual;
  strict protected
    procedure fireActionPerformed(para1: JLString); overload; virtual;
  public
    procedure updateUI(); overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
    function getUI(): JSPFileChooserUI; overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJInternalFrame = class external 'javax.swing' name 'JInternalFrame' (JSJComponent, JAAccessible, JSWindowConstants, JSRootPaneContainer)
  public
    type
      InnerFocusPropertyChangeListener = class;
      Arr1InnerFocusPropertyChangeListener = array of InnerFocusPropertyChangeListener;
      Arr2InnerFocusPropertyChangeListener = array of Arr1InnerFocusPropertyChangeListener;
      Arr3InnerFocusPropertyChangeListener = array of Arr2InnerFocusPropertyChangeListener;
      InnerFocusPropertyChangeListener = class external 'javax.swing' name 'FocusPropertyChangeListener' 
      end;

  public
    type
      InnerAccessibleJInternalFrame = class;
      Arr1InnerAccessibleJInternalFrame = array of InnerAccessibleJInternalFrame;
      Arr2InnerAccessibleJInternalFrame = array of Arr1InnerAccessibleJInternalFrame;
      Arr3InnerAccessibleJInternalFrame = array of Arr2InnerAccessibleJInternalFrame;
      InnerJDesktopIcon = class;
      Arr1InnerJDesktopIcon = array of InnerJDesktopIcon;
      Arr2InnerJDesktopIcon = array of Arr1InnerJDesktopIcon;
      Arr3InnerJDesktopIcon = array of Arr2InnerJDesktopIcon;
      InnerAccessibleJInternalFrame = class external 'javax.swing' name 'AccessibleJInternalFrame' 
      end;

      InnerJDesktopIcon = class external 'javax.swing' name 'JDesktopIcon' (JSJComponent, JAAccessible)
      public
        type
          InnerAccessibleJDesktopIcon = class;
          Arr1InnerAccessibleJDesktopIcon = array of InnerAccessibleJDesktopIcon;
          Arr2InnerAccessibleJDesktopIcon = array of Arr1InnerAccessibleJDesktopIcon;
          Arr3InnerAccessibleJDesktopIcon = array of Arr2InnerAccessibleJDesktopIcon;
          InnerAccessibleJDesktopIcon = class external 'javax.swing' name 'AccessibleJDesktopIcon' 
          end;

      public
        constructor create(para1: JSJInternalFrame); overload;
        function getUI(): JSPDesktopIconUI; overload; virtual;
        procedure setUI(para1: JSPDesktopIconUI); overload; virtual;
        function getInternalFrame(): JSJInternalFrame; overload; virtual;
        procedure setInternalFrame(para1: JSJInternalFrame); overload; virtual;
        function getDesktopPane(): JSJDesktopPane; overload; virtual;
        procedure updateUI(); overload; virtual;
        function getUIClassID(): JLString; overload; virtual;
        function getAccessibleContext(): JAAccessibleContext; overload; virtual;
      end;

  strict protected
    var
      frootPane: JSJRootPane; external name 'rootPane';
      frootPaneCheckingEnabled: jboolean; external name 'rootPaneCheckingEnabled';
      fclosable: jboolean; external name 'closable';
      fisClosed: jboolean; external name 'isClosed';
      fmaximizable: jboolean; external name 'maximizable';
      fisMaximum: jboolean; external name 'isMaximum';
      ficonable: jboolean; external name 'iconable';
      fisIcon: jboolean; external name 'isIcon';
      fresizable: jboolean; external name 'resizable';
      fisSelected: jboolean; external name 'isSelected';
      fframeIcon: JSIcon; external name 'frameIcon';
      ftitle: JLString; external name 'title';
      fdesktopIcon: JSJInternalFrame.InnerJDesktopIcon; external name 'desktopIcon';
  public
    const
      CONTENT_PANE_PROPERTY = 'contentPane';
      MENU_BAR_PROPERTY = 'JMenuBar';
      TITLE_PROPERTY = 'title';
      LAYERED_PANE_PROPERTY = 'layeredPane';
      ROOT_PANE_PROPERTY = 'rootPane';
      GLASS_PANE_PROPERTY = 'glassPane';
      FRAME_ICON_PROPERTY = 'frameIcon';
      IS_SELECTED_PROPERTY = 'selected';
      IS_CLOSED_PROPERTY = 'closed';
      IS_MAXIMUM_PROPERTY = 'maximum';
      IS_ICON_PROPERTY = 'icon';
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: jboolean); overload;
    constructor create(para1: JLString; para2: jboolean; para3: jboolean); overload;
    constructor create(para1: JLString; para2: jboolean; para3: jboolean; para4: jboolean); overload;
    constructor create(para1: JLString; para2: jboolean; para3: jboolean; para4: jboolean; para5: jboolean); overload;
  strict protected
    function createRootPane(): JSJRootPane; overload; virtual;
  public
    function getUI(): JSPInternalFrameUI; overload; virtual;
    procedure setUI(para1: JSPInternalFrameUI); overload; virtual;
    procedure updateUI(); overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
  strict protected
    function isRootPaneCheckingEnabled(): jboolean; overload; virtual;
    procedure setRootPaneCheckingEnabled(para1: jboolean); overload; virtual;
    procedure addImpl(para1: JAComponent; para2: JLObject; para3: jint); overload; virtual;
  public
    procedure remove(para1: JAComponent); overload; virtual;
    procedure setLayout(para1: JALayoutManager); overload; virtual;
    function getMenuBar(): JSJMenuBar; overload; virtual;
    function getJMenuBar(): JSJMenuBar; overload; virtual;
    procedure setMenuBar(para1: JSJMenuBar); overload; virtual;
    procedure setJMenuBar(para1: JSJMenuBar); overload; virtual;
    function getContentPane(): JAContainer; overload; virtual;
    procedure setContentPane(para1: JAContainer); overload; virtual;
    function getLayeredPane(): JSJLayeredPane; overload; virtual;
    procedure setLayeredPane(para1: JSJLayeredPane); overload; virtual;
    function getGlassPane(): JAComponent; overload; virtual;
    procedure setGlassPane(para1: JAComponent); overload; virtual;
    function getRootPane(): JSJRootPane; overload; virtual;
  strict protected
    procedure setRootPane(para1: JSJRootPane); overload; virtual;
  public
    procedure setClosable(para1: jboolean); overload; virtual;
    function isClosable(): jboolean; overload; virtual;
    function isClosed(): jboolean; overload; virtual;
    procedure setClosed(para1: jboolean); overload; virtual;  // throws java.beans.PropertyVetoException
    procedure setResizable(para1: jboolean); overload; virtual;
    function isResizable(): jboolean; overload; virtual;
    procedure setIconifiable(para1: jboolean); overload; virtual;
    function isIconifiable(): jboolean; overload; virtual;
    function isIcon(): jboolean; overload; virtual;
    procedure setIcon(para1: jboolean); overload; virtual;  // throws java.beans.PropertyVetoException
    procedure setMaximizable(para1: jboolean); overload; virtual;
    function isMaximizable(): jboolean; overload; virtual;
    function isMaximum(): jboolean; overload; virtual;
    procedure setMaximum(para1: jboolean); overload; virtual;  // throws java.beans.PropertyVetoException
    function getTitle(): JLString; overload; virtual;
    procedure setTitle(para1: JLString); overload; virtual;
    procedure setSelected(para1: jboolean); overload; virtual;  // throws java.beans.PropertyVetoException
    function isSelected(): jboolean; overload; virtual;
    procedure setFrameIcon(para1: JSIcon); overload; virtual;
    function getFrameIcon(): JSIcon; overload; virtual;
    procedure moveToFront(); overload; virtual;
    procedure moveToBack(); overload; virtual;
    function getLastCursor(): JACursor; overload; virtual;
    procedure setCursor(para1: JACursor); overload; virtual;
    procedure setLayer(para1: JLInteger); overload; virtual;
    procedure setLayer(para1: jint); overload; virtual;
    function getLayer(): jint; overload; virtual;
    function getDesktopPane(): JSJDesktopPane; overload; virtual;
    procedure setDesktopIcon(para1: JSJInternalFrame.InnerJDesktopIcon); overload; virtual;
    function getDesktopIcon(): JSJInternalFrame.InnerJDesktopIcon; overload; virtual;
    function getNormalBounds(): JARectangle; overload; virtual;
    procedure setNormalBounds(para1: JARectangle); overload; virtual;
    function getFocusOwner(): JAComponent; overload; virtual;
    function getMostRecentFocusOwner(): JAComponent; overload; virtual;
    procedure restoreSubcomponentFocus(); overload; virtual;
    procedure reshape(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure addInternalFrameListener(para1: JSEInternalFrameListener); overload; virtual;
    procedure removeInternalFrameListener(para1: JSEInternalFrameListener); overload; virtual;
    function getInternalFrameListeners(): Arr1JSEInternalFrameListener; overload; virtual;
  strict protected
    procedure fireInternalFrameEvent(para1: jint); overload; virtual;
  public
    procedure doDefaultCloseAction(); overload; virtual;
    procedure setDefaultCloseOperation(para1: jint); overload; virtual;
    function getDefaultCloseOperation(): jint; overload; virtual;
    procedure pack(); overload; virtual;
    procedure show(); overload; virtual;
    procedure hide(); overload; virtual;
    procedure dispose(); overload; virtual;
    procedure toFront(); overload; virtual;
    procedure toBack(); overload; virtual;
    procedure setFocusCycleRoot(para1: jboolean); overload; virtual; final;
    function isFocusCycleRoot(): jboolean; overload; virtual; final;
    function getFocusCycleRootAncestor(): JAContainer; overload; virtual; final;
    function getWarningString(): JLString; overload; virtual; final;
  strict protected
    function paramString(): JLString; overload; virtual;
    procedure paintComponent(para1: JAGraphics); overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJLabel = class external 'javax.swing' name 'JLabel' (JSJComponent, JSSwingConstants, JAAccessible)
  public
    type
      InnerAccessibleJLabel = class;
      Arr1InnerAccessibleJLabel = array of InnerAccessibleJLabel;
      Arr2InnerAccessibleJLabel = array of Arr1InnerAccessibleJLabel;
      Arr3InnerAccessibleJLabel = array of Arr2InnerAccessibleJLabel;
      InnerAccessibleJLabel = class external 'javax.swing' name 'AccessibleJLabel' 
      public
        type
          InnerLabelKeyBinding = class;
          Arr1InnerLabelKeyBinding = array of InnerLabelKeyBinding;
          Arr2InnerLabelKeyBinding = array of Arr1InnerLabelKeyBinding;
          Arr3InnerLabelKeyBinding = array of Arr2InnerLabelKeyBinding;
          InnerLabelKeyBinding = class external 'javax.swing' name 'LabelKeyBinding' 
          end;

      end;

  strict protected
    var
      flabelFor: JAComponent; external name 'labelFor';
  public
    constructor create(para1: JLString; para2: JSIcon; para3: jint); overload;
    constructor create(para1: JLString; para2: jint); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JSIcon; para2: jint); overload;
    constructor create(para1: JSIcon); overload;
    constructor create(); overload;
    function getUI(): JSPLabelUI; overload; virtual;
    procedure setUI(para1: JSPLabelUI); overload; virtual;
    procedure updateUI(); overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
    function getText(): JLString; overload; virtual;
    procedure setText(para1: JLString); overload; virtual;
    function getIcon(): JSIcon; overload; virtual;
    procedure setIcon(para1: JSIcon); overload; virtual;
    function getDisabledIcon(): JSIcon; overload; virtual;
    procedure setDisabledIcon(para1: JSIcon); overload; virtual;
    procedure setDisplayedMnemonic(para1: jint); overload; virtual;
    procedure setDisplayedMnemonic(para1: jchar); overload; virtual;
    function getDisplayedMnemonic(): jint; overload; virtual;
    procedure setDisplayedMnemonicIndex(para1: jint); overload; virtual;  // throws java.lang.IllegalArgumentException
    function getDisplayedMnemonicIndex(): jint; overload; virtual;
  strict protected
    function checkHorizontalKey(para1: jint; para2: JLString): jint; overload; virtual;
    function checkVerticalKey(para1: jint; para2: JLString): jint; overload; virtual;
  public
    function getIconTextGap(): jint; overload; virtual;
    procedure setIconTextGap(para1: jint); overload; virtual;
    function getVerticalAlignment(): jint; overload; virtual;
    procedure setVerticalAlignment(para1: jint); overload; virtual;
    function getHorizontalAlignment(): jint; overload; virtual;
    procedure setHorizontalAlignment(para1: jint); overload; virtual;
    function getVerticalTextPosition(): jint; overload; virtual;
    procedure setVerticalTextPosition(para1: jint); overload; virtual;
    function getHorizontalTextPosition(): jint; overload; virtual;
    procedure setHorizontalTextPosition(para1: jint); overload; virtual;
    function imageUpdate(para1: JAImage; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint): jboolean; overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getLabelFor(): JAComponent; overload; virtual;
    procedure setLabelFor(para1: JAComponent); overload; virtual;
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJLayeredPane = class external 'javax.swing' name 'JLayeredPane' (JSJComponent, JAAccessible)
  public
    type
      InnerAccessibleJLayeredPane = class;
      Arr1InnerAccessibleJLayeredPane = array of InnerAccessibleJLayeredPane;
      Arr2InnerAccessibleJLayeredPane = array of Arr1InnerAccessibleJLayeredPane;
      Arr3InnerAccessibleJLayeredPane = array of Arr2InnerAccessibleJLayeredPane;
      InnerAccessibleJLayeredPane = class external 'javax.swing' name 'AccessibleJLayeredPane' 
      end;

  public
    final class var
      fDEFAULT_LAYER: JLInteger; external name 'DEFAULT_LAYER';
      fPALETTE_LAYER: JLInteger; external name 'PALETTE_LAYER';
      fMODAL_LAYER: JLInteger; external name 'MODAL_LAYER';
      fPOPUP_LAYER: JLInteger; external name 'POPUP_LAYER';
      fDRAG_LAYER: JLInteger; external name 'DRAG_LAYER';
      fFRAME_CONTENT_LAYER: JLInteger; external name 'FRAME_CONTENT_LAYER';
  public
    const
      LAYER_PROPERTY = 'layeredContainerLayer';
  public
    constructor create(); overload;
  strict protected
    procedure addImpl(para1: JAComponent; para2: JLObject; para3: jint); overload; virtual;
  public
    procedure remove(para1: jint); overload; virtual;
    procedure removeAll(); overload; virtual;
    function isOptimizedDrawingEnabled(): jboolean; overload; virtual;
    class procedure putLayer(para1: JSJComponent; para2: jint); static; overload;
    class function getLayer(para1: JSJComponent): jint; static; overload;
    class function getLayeredPaneAbove(para1: JAComponent): JSJLayeredPane; static; overload;
    procedure setLayer(para1: JAComponent; para2: jint); overload; virtual;
    procedure setLayer(para1: JAComponent; para2: jint; para3: jint); overload; virtual;
    function getLayer(para1: JAComponent): jint; overload; virtual;
    function getIndexOf(para1: JAComponent): jint; overload; virtual;
    procedure moveToFront(para1: JAComponent); overload; virtual;
    procedure moveToBack(para1: JAComponent); overload; virtual;
    procedure setPosition(para1: JAComponent; para2: jint); overload; virtual;
    function getPosition(para1: JAComponent): jint; overload; virtual;
    function highestLayer(): jint; overload; virtual;
    function lowestLayer(): jint; overload; virtual;
    function getComponentCountInLayer(para1: jint): jint; overload; virtual;
    function getComponentsInLayer(para1: jint): Arr1JAComponent; overload; virtual;
    procedure paint(para1: JAGraphics); overload; virtual;
  strict protected
    function getComponentToLayer(): JUHashtable; overload; virtual;
    function getObjectForLayer(para1: jint): JLInteger; overload; virtual;
    function insertIndexForLayer(para1: jint; para2: jint): jint; overload; virtual;
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJList = class external 'javax.swing' name 'JList' (JSJComponent, JSScrollable, JAAccessible)
  public
    type
      InnerListSelectionHandler = class;
      Arr1InnerListSelectionHandler = array of InnerListSelectionHandler;
      Arr2InnerListSelectionHandler = array of Arr1InnerListSelectionHandler;
      Arr3InnerListSelectionHandler = array of Arr2InnerListSelectionHandler;
      InnerListSelectionHandler = class external 'javax.swing' name 'ListSelectionHandler' 
      end;

  public
    type
      InnerAccessibleJList = class;
      Arr1InnerAccessibleJList = array of InnerAccessibleJList;
      Arr2InnerAccessibleJList = array of Arr1InnerAccessibleJList;
      Arr3InnerAccessibleJList = array of Arr2InnerAccessibleJList;
      InnerDropLocation = class;
      Arr1InnerDropLocation = array of InnerDropLocation;
      Arr2InnerDropLocation = array of Arr1InnerDropLocation;
      Arr3InnerDropLocation = array of Arr2InnerDropLocation;
      InnerAccessibleJList = class external 'javax.swing' name 'AccessibleJList' 
      public
        type
          InnerAccessibleJListChild = class;
          Arr1InnerAccessibleJListChild = array of InnerAccessibleJListChild;
          Arr2InnerAccessibleJListChild = array of Arr1InnerAccessibleJListChild;
          Arr3InnerAccessibleJListChild = array of Arr2InnerAccessibleJListChild;
          InnerAccessibleJListChild = class external 'javax.swing' name 'AccessibleJListChild' 
          end;

      end;

      InnerDropLocation = class sealed external 'javax.swing' name 'DropLocation' (JSTransferHandler.InnerDropLocation)
      public
        function getIndex(): jint; overload; virtual;
        function isInsert(): jboolean; overload; virtual;
        function toString(): JLString; overload; virtual;
      end;

  public
    const
      VERTICAL = 0;
      VERTICAL_WRAP = 1;
      HORIZONTAL_WRAP = 2;
  public
    constructor create(para1: JSListModel); overload;
    constructor create(para1: Arr1JLObject); overload;
    constructor create(const para1: array of JLObject); overload;
    constructor create(para1: JUVector); overload;
    constructor create(); overload;
    function getUI(): JSPListUI; overload; virtual;
    procedure setUI(para1: JSPListUI); overload; virtual;
    procedure updateUI(); overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
    function getPrototypeCellValue(): JLObject; overload; virtual;
    procedure setPrototypeCellValue(para1: JLObject); overload; virtual;
    function getFixedCellWidth(): jint; overload; virtual;
    procedure setFixedCellWidth(para1: jint); overload; virtual;
    function getFixedCellHeight(): jint; overload; virtual;
    procedure setFixedCellHeight(para1: jint); overload; virtual;
    function getCellRenderer(): JSListCellRenderer; overload; virtual;
    procedure setCellRenderer(para1: JSListCellRenderer); overload; virtual;
    function getSelectionForeground(): JAColor; overload; virtual;
    procedure setSelectionForeground(para1: JAColor); overload; virtual;
    function getSelectionBackground(): JAColor; overload; virtual;
    procedure setSelectionBackground(para1: JAColor); overload; virtual;
    function getVisibleRowCount(): jint; overload; virtual;
    procedure setVisibleRowCount(para1: jint); overload; virtual;
    function getLayoutOrientation(): jint; overload; virtual;
    procedure setLayoutOrientation(para1: jint); overload; virtual;
    function getFirstVisibleIndex(): jint; overload; virtual;
    function getLastVisibleIndex(): jint; overload; virtual;
    procedure ensureIndexIsVisible(para1: jint); overload; virtual;
    procedure setDragEnabled(para1: jboolean); overload; virtual;
    function getDragEnabled(): jboolean; overload; virtual;
    procedure setDropMode(para1: JSDropMode); overload; virtual; final;
    function getDropMode(): JSDropMode; overload; virtual; final;
    function getDropLocation(): JSJList.InnerDropLocation; overload; virtual; final;
    function getNextMatch(para1: JLString; para2: jint; para3: JSTPosition.InnerBias): jint; overload; virtual;
    function getToolTipText(para1: JAEMouseEvent): JLString; overload; virtual;
    function locationToIndex(para1: JAPoint): jint; overload; virtual;
    function indexToLocation(para1: jint): JAPoint; overload; virtual;
    function getCellBounds(para1: jint; para2: jint): JARectangle; overload; virtual;
    function getModel(): JSListModel; overload; virtual;
    procedure setModel(para1: JSListModel); overload; virtual;
    procedure setListData(para1: Arr1JLObject); overload; virtual;
    procedure setListData(var para1: array of JLObject); overload; virtual;
    procedure setListData(para1: JUVector); overload; virtual;
  strict protected
    function createSelectionModel(): JSListSelectionModel; overload; virtual;
  public
    function getSelectionModel(): JSListSelectionModel; overload; virtual;
  strict protected
    procedure fireSelectionValueChanged(para1: jint; para2: jint; para3: jboolean); overload; virtual;
  public
    procedure addListSelectionListener(para1: JSEListSelectionListener); overload; virtual;
    procedure removeListSelectionListener(para1: JSEListSelectionListener); overload; virtual;
    function getListSelectionListeners(): Arr1JSEListSelectionListener; overload; virtual;
    procedure setSelectionModel(para1: JSListSelectionModel); overload; virtual;
    procedure setSelectionMode(para1: jint); overload; virtual;
    function getSelectionMode(): jint; overload; virtual;
    function getAnchorSelectionIndex(): jint; overload; virtual;
    function getLeadSelectionIndex(): jint; overload; virtual;
    function getMinSelectionIndex(): jint; overload; virtual;
    function getMaxSelectionIndex(): jint; overload; virtual;
    function isSelectedIndex(para1: jint): jboolean; overload; virtual;
    function isSelectionEmpty(): jboolean; overload; virtual;
    procedure clearSelection(); overload; virtual;
    procedure setSelectionInterval(para1: jint; para2: jint); overload; virtual;
    procedure addSelectionInterval(para1: jint; para2: jint); overload; virtual;
    procedure removeSelectionInterval(para1: jint; para2: jint); overload; virtual;
    procedure setValueIsAdjusting(para1: jboolean); overload; virtual;
    function getValueIsAdjusting(): jboolean; overload; virtual;
    function getSelectedIndices(): Arr1jint; overload; virtual;
    procedure setSelectedIndex(para1: jint); overload; virtual;
    procedure setSelectedIndices(para1: Arr1jint); overload; virtual;
    procedure setSelectedIndices(var para1: array of jint); overload; virtual;
    function getSelectedValues(): Arr1JLObject; overload; virtual;
    function getSelectedIndex(): jint; overload; virtual;
    function getSelectedValue(): JLObject; overload; virtual;
    procedure setSelectedValue(para1: JLObject; para2: jboolean); overload; virtual;
    function getPreferredScrollableViewportSize(): JADimension; overload; virtual;
    function getScrollableUnitIncrement(para1: JARectangle; para2: jint; para3: jint): jint; overload; virtual;
    function getScrollableBlockIncrement(para1: JARectangle; para2: jint; para3: jint): jint; overload; virtual;
    function getScrollableTracksViewportWidth(): jboolean; overload; virtual;
    function getScrollableTracksViewportHeight(): jboolean; overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJMenuBar = class external 'javax.swing' name 'JMenuBar' (JSJComponent, JAAccessible, JSMenuElement)
  public
    type
      InnerAccessibleJMenuBar = class;
      Arr1InnerAccessibleJMenuBar = array of InnerAccessibleJMenuBar;
      Arr2InnerAccessibleJMenuBar = array of Arr1InnerAccessibleJMenuBar;
      Arr3InnerAccessibleJMenuBar = array of Arr2InnerAccessibleJMenuBar;
      InnerAccessibleJMenuBar = class external 'javax.swing' name 'AccessibleJMenuBar' 
      end;

  public
    constructor create(); overload;
    function getUI(): JSPMenuBarUI; overload; virtual;
    procedure setUI(para1: JSPMenuBarUI); overload; virtual;
    procedure updateUI(); overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
    function getSelectionModel(): JSSingleSelectionModel; overload; virtual;
    procedure setSelectionModel(para1: JSSingleSelectionModel); overload; virtual;
    function add(para1: JSJMenu): JSJMenu; overload; virtual;
    function getMenu(para1: jint): JSJMenu; overload; virtual;
    function getMenuCount(): jint; overload; virtual;
    procedure setHelpMenu(para1: JSJMenu); overload; virtual;
    function getHelpMenu(): JSJMenu; overload; virtual;
    function getComponentAtIndex(para1: jint): JAComponent; overload; virtual;
    function getComponentIndex(para1: JAComponent): jint; overload; virtual;
    procedure setSelected(para1: JAComponent); overload; virtual;
    function isSelected(): jboolean; overload; virtual;
    function isBorderPainted(): jboolean; overload; virtual;
    procedure setBorderPainted(para1: jboolean); overload; virtual;
  strict protected
    procedure paintBorder(para1: JAGraphics); overload; virtual;
  public
    procedure setMargin(para1: JAInsets); overload; virtual;
    function getMargin(): JAInsets; overload; virtual;
    procedure processMouseEvent(para1: JAEMouseEvent; para2: Arr1JSMenuElement; para3: JSMenuSelectionManager); overload; virtual;
    procedure processMouseEvent(para1: JAEMouseEvent; var para2: array of JSMenuElement; para3: JSMenuSelectionManager); overload; virtual;
    procedure processKeyEvent(para1: JAEKeyEvent; para2: Arr1JSMenuElement; para3: JSMenuSelectionManager); overload; virtual;
    procedure processKeyEvent(para1: JAEKeyEvent; var para2: array of JSMenuElement; para3: JSMenuSelectionManager); overload; virtual;
    procedure menuSelectionChanged(para1: jboolean); overload; virtual;
    function getSubElements(): Arr1JSMenuElement; overload; virtual;
    function getComponent(): JAComponent; overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  strict protected
    function processKeyBinding(para1: JSKeyStroke; para2: JAEKeyEvent; para3: jint; para4: jboolean): jboolean; overload; virtual;
  public
    procedure addNotify(); overload; virtual;
    procedure removeNotify(); overload; virtual;
  end;

  JSJOptionPane = class external 'javax.swing' name 'JOptionPane' (JSJComponent, JAAccessible)
  public
    type
      InnerModalPrivilegedAction = class;
      Arr1InnerModalPrivilegedAction = array of InnerModalPrivilegedAction;
      Arr2InnerModalPrivilegedAction = array of Arr1InnerModalPrivilegedAction;
      Arr3InnerModalPrivilegedAction = array of Arr2InnerModalPrivilegedAction;
      InnerModalPrivilegedAction = class external 'javax.swing' name 'ModalPrivilegedAction' 
      end;

  public
    type
      InnerAccessibleJOptionPane = class;
      Arr1InnerAccessibleJOptionPane = array of InnerAccessibleJOptionPane;
      Arr2InnerAccessibleJOptionPane = array of Arr1InnerAccessibleJOptionPane;
      Arr3InnerAccessibleJOptionPane = array of Arr2InnerAccessibleJOptionPane;
      InnerAccessibleJOptionPane = class external 'javax.swing' name 'AccessibleJOptionPane' 
      end;

  public
    final class var
      fUNINITIALIZED_VALUE: JLObject; external name 'UNINITIALIZED_VALUE';
  public
    const
      DEFAULT_OPTION = -1;
      YES_NO_OPTION = 0;
      YES_NO_CANCEL_OPTION = 1;
      OK_CANCEL_OPTION = 2;
      YES_OPTION = 0;
      NO_OPTION = 1;
      CANCEL_OPTION = 2;
      OK_OPTION = 0;
      CLOSED_OPTION = -1;
      ERROR_MESSAGE = 0;
      INFORMATION_MESSAGE = 1;
      WARNING_MESSAGE = 2;
      QUESTION_MESSAGE = 3;
      PLAIN_MESSAGE = -1;
      ICON_PROPERTY = 'icon';
      MESSAGE_PROPERTY = 'message';
      VALUE_PROPERTY = 'value';
      OPTIONS_PROPERTY = 'options';
      INITIAL_VALUE_PROPERTY = 'initialValue';
      MESSAGE_TYPE_PROPERTY = 'messageType';
      OPTION_TYPE_PROPERTY = 'optionType';
      SELECTION_VALUES_PROPERTY = 'selectionValues';
      INITIAL_SELECTION_VALUE_PROPERTY = 'initialSelectionValue';
      INPUT_VALUE_PROPERTY = 'inputValue';
      WANTS_INPUT_PROPERTY = 'wantsInput';
  strict protected
    var
      ficon: JSIcon; external name 'icon';
      fmessage: JLObject; external name 'message';
      foptions: Arr1JLObject; external name 'options';
      finitialValue: JLObject; external name 'initialValue';
      fmessageType: jint; external name 'messageType';
      foptionType: jint; external name 'optionType';
      fvalue: JLObject; external name 'value';
      fselectionValues: Arr1JLObject; external name 'selectionValues';
      finputValue: JLObject; external name 'inputValue';
      finitialSelectionValue: JLObject; external name 'initialSelectionValue';
      fwantsInput: jboolean; external name 'wantsInput';
  public
    class function showInputDialog(para1: JLObject): JLString; static; overload;  // throws java.awt.HeadlessException
    class function showInputDialog(para1: JLObject; para2: JLObject): JLString; static; overload;
    class function showInputDialog(para1: JAComponent; para2: JLObject): JLString; static; overload;  // throws java.awt.HeadlessException
    class function showInputDialog(para1: JAComponent; para2: JLObject; para3: JLObject): JLString; static; overload;
    class function showInputDialog(para1: JAComponent; para2: JLObject; para3: JLString; para4: jint): JLString; static; overload;  // throws java.awt.HeadlessException
    class function showInputDialog(para1: JAComponent; para2: JLObject; para3: JLString; para4: jint; para5: JSIcon; para6: Arr1JLObject; para7: JLObject): JLObject; static; overload;  // throws java.awt.HeadlessException
    class function showInputDialog(para1: JAComponent; para2: JLObject; para3: JLString; para4: jint; para5: JSIcon; var para6: array of JLObject; para7: JLObject): JLObject; static; overload;  // throws java.awt.HeadlessException
    class procedure showMessageDialog(para1: JAComponent; para2: JLObject); static; overload;  // throws java.awt.HeadlessException
    class procedure showMessageDialog(para1: JAComponent; para2: JLObject; para3: JLString; para4: jint); static; overload;  // throws java.awt.HeadlessException
    class procedure showMessageDialog(para1: JAComponent; para2: JLObject; para3: JLString; para4: jint; para5: JSIcon); static; overload;  // throws java.awt.HeadlessException
    class function showConfirmDialog(para1: JAComponent; para2: JLObject): jint; static; overload;  // throws java.awt.HeadlessException
    class function showConfirmDialog(para1: JAComponent; para2: JLObject; para3: JLString; para4: jint): jint; static; overload;  // throws java.awt.HeadlessException
    class function showConfirmDialog(para1: JAComponent; para2: JLObject; para3: JLString; para4: jint; para5: jint): jint; static; overload;  // throws java.awt.HeadlessException
    class function showConfirmDialog(para1: JAComponent; para2: JLObject; para3: JLString; para4: jint; para5: jint; para6: JSIcon): jint; static; overload;  // throws java.awt.HeadlessException
    class function showOptionDialog(para1: JAComponent; para2: JLObject; para3: JLString; para4: jint; para5: jint; para6: JSIcon; para7: Arr1JLObject; para8: JLObject): jint; static; overload;  // throws java.awt.HeadlessException
    class function showOptionDialog(para1: JAComponent; para2: JLObject; para3: JLString; para4: jint; para5: jint; para6: JSIcon; var para7: array of JLObject; para8: JLObject): jint; static; overload;  // throws java.awt.HeadlessException
    function createDialog(para1: JAComponent; para2: JLString): JSJDialog; overload; virtual;  // throws java.awt.HeadlessException
    function createDialog(para1: JLString): JSJDialog; overload; virtual;  // throws java.awt.HeadlessException
    class procedure showInternalMessageDialog(para1: JAComponent; para2: JLObject); static; overload;
    class procedure showInternalMessageDialog(para1: JAComponent; para2: JLObject; para3: JLString; para4: jint); static; overload;
    class procedure showInternalMessageDialog(para1: JAComponent; para2: JLObject; para3: JLString; para4: jint; para5: JSIcon); static; overload;
    class function showInternalConfirmDialog(para1: JAComponent; para2: JLObject): jint; static; overload;
    class function showInternalConfirmDialog(para1: JAComponent; para2: JLObject; para3: JLString; para4: jint): jint; static; overload;
    class function showInternalConfirmDialog(para1: JAComponent; para2: JLObject; para3: JLString; para4: jint; para5: jint): jint; static; overload;
    class function showInternalConfirmDialog(para1: JAComponent; para2: JLObject; para3: JLString; para4: jint; para5: jint; para6: JSIcon): jint; static; overload;
    class function showInternalOptionDialog(para1: JAComponent; para2: JLObject; para3: JLString; para4: jint; para5: jint; para6: JSIcon; para7: Arr1JLObject; para8: JLObject): jint; static; overload;
    class function showInternalOptionDialog(para1: JAComponent; para2: JLObject; para3: JLString; para4: jint; para5: jint; para6: JSIcon; var para7: array of JLObject; para8: JLObject): jint; static; overload;
    class function showInternalInputDialog(para1: JAComponent; para2: JLObject): JLString; static; overload;
    class function showInternalInputDialog(para1: JAComponent; para2: JLObject; para3: JLString; para4: jint): JLString; static; overload;
    class function showInternalInputDialog(para1: JAComponent; para2: JLObject; para3: JLString; para4: jint; para5: JSIcon; para6: Arr1JLObject; para7: JLObject): JLObject; static; overload;
    class function showInternalInputDialog(para1: JAComponent; para2: JLObject; para3: JLString; para4: jint; para5: JSIcon; var para6: array of JLObject; para7: JLObject): JLObject; static; overload;
    function createInternalFrame(para1: JAComponent; para2: JLString): JSJInternalFrame; overload; virtual;
    class function getFrameForComponent(para1: JAComponent): JAFrame; static; overload;  // throws java.awt.HeadlessException
    class function getDesktopPaneForComponent(para1: JAComponent): JSJDesktopPane; static; overload;
    class procedure setRootFrame(para1: JAFrame); static; overload;
    class function getRootFrame(): JAFrame; static; overload;  // throws java.awt.HeadlessException
    constructor create(); overload;
    constructor create(para1: JLObject); overload;
    constructor create(para1: JLObject; para2: jint); overload;
    constructor create(para1: JLObject; para2: jint; para3: jint); overload;
    constructor create(para1: JLObject; para2: jint; para3: jint; para4: JSIcon); overload;
    constructor create(para1: JLObject; para2: jint; para3: jint; para4: JSIcon; para5: Arr1JLObject); overload;
    constructor create(para1: JLObject; para2: jint; para3: jint; para4: JSIcon; const para5: array of JLObject); overload;
    constructor create(para1: JLObject; para2: jint; para3: jint; para4: JSIcon; para5: Arr1JLObject; para6: JLObject); overload;
    constructor create(para1: JLObject; para2: jint; para3: jint; para4: JSIcon; const para5: array of JLObject; para6: JLObject); overload;
    procedure setUI(para1: JSPOptionPaneUI); overload; virtual;
    function getUI(): JSPOptionPaneUI; overload; virtual;
    procedure updateUI(); overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
    procedure setMessage(para1: JLObject); overload; virtual;
    function getMessage(): JLObject; overload; virtual;
    procedure setIcon(para1: JSIcon); overload; virtual;
    function getIcon(): JSIcon; overload; virtual;
    procedure setValue(para1: JLObject); overload; virtual;
    function getValue(): JLObject; overload; virtual;
    procedure setOptions(para1: Arr1JLObject); overload; virtual;
    procedure setOptions(var para1: array of JLObject); overload; virtual;
    function getOptions(): Arr1JLObject; overload; virtual;
    procedure setInitialValue(para1: JLObject); overload; virtual;
    function getInitialValue(): JLObject; overload; virtual;
    procedure setMessageType(para1: jint); overload; virtual;
    function getMessageType(): jint; overload; virtual;
    procedure setOptionType(para1: jint); overload; virtual;
    function getOptionType(): jint; overload; virtual;
    procedure setSelectionValues(para1: Arr1JLObject); overload; virtual;
    procedure setSelectionValues(var para1: array of JLObject); overload; virtual;
    function getSelectionValues(): Arr1JLObject; overload; virtual;
    procedure setInitialSelectionValue(para1: JLObject); overload; virtual;
    function getInitialSelectionValue(): JLObject; overload; virtual;
    procedure setInputValue(para1: JLObject); overload; virtual;
    function getInputValue(): JLObject; overload; virtual;
    function getMaxCharactersPerLineCount(): jint; overload; virtual;
    procedure setWantsInput(para1: jboolean); overload; virtual;
    function getWantsInput(): jboolean; overload; virtual;
    procedure selectInitialValue(); overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJPanel = class external 'javax.swing' name 'JPanel' (JSJComponent, JAAccessible)
  public
    type
      InnerAccessibleJPanel = class;
      Arr1InnerAccessibleJPanel = array of InnerAccessibleJPanel;
      Arr2InnerAccessibleJPanel = array of Arr1InnerAccessibleJPanel;
      Arr3InnerAccessibleJPanel = array of Arr2InnerAccessibleJPanel;
      InnerAccessibleJPanel = class external 'javax.swing' name 'AccessibleJPanel' 
      end;

  public
    constructor create(para1: JALayoutManager; para2: jboolean); overload;
    constructor create(para1: JALayoutManager); overload;
    constructor create(para1: jboolean); overload;
    constructor create(); overload;
    procedure updateUI(); overload; virtual;
    function getUI(): JSPPanelUI; overload; virtual;
    procedure setUI(para1: JSPPanelUI); overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJProgressBar = class external 'javax.swing' name 'JProgressBar' (JSJComponent, JSSwingConstants, JAAccessible)
  public
    type
      InnerModelListener = class;
      Arr1InnerModelListener = array of InnerModelListener;
      Arr2InnerModelListener = array of Arr1InnerModelListener;
      Arr3InnerModelListener = array of Arr2InnerModelListener;
      InnerModelListener = class external 'javax.swing' name 'ModelListener' 
      end;

  public
    type
      InnerAccessibleJProgressBar = class;
      Arr1InnerAccessibleJProgressBar = array of InnerAccessibleJProgressBar;
      Arr2InnerAccessibleJProgressBar = array of Arr1InnerAccessibleJProgressBar;
      Arr3InnerAccessibleJProgressBar = array of Arr2InnerAccessibleJProgressBar;
      InnerAccessibleJProgressBar = class external 'javax.swing' name 'AccessibleJProgressBar' 
      end;

  strict protected
    var
      forientation: jint; external name 'orientation';
      fpaintBorder: jboolean; external name 'paintBorder';
      fmodel: JSBoundedRangeModel; external name 'model';
      fprogressString: JLString; external name 'progressString';
      fpaintString: jboolean; external name 'paintString';
      fchangeEvent: JSEChangeEvent; external name 'changeEvent';
      fchangeListener: JSEChangeListener; external name 'changeListener';
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint); overload;
    constructor create(para1: JSBoundedRangeModel); overload;
    function getOrientation(): jint; overload; virtual;
    procedure setOrientation(para1: jint); overload; virtual;
    function isStringPainted(): jboolean; overload; virtual;
    procedure setStringPainted(para1: jboolean); overload; virtual;
    function getString(): JLString; overload; virtual;
    procedure setString(para1: JLString); overload; virtual;
    function getPercentComplete(): jdouble; overload; virtual;
    function isBorderPainted(): jboolean; overload; virtual;
    procedure setBorderPainted(para1: jboolean); overload; virtual;
  strict protected
    procedure paintBorder(para1: JAGraphics); overload; virtual;
  public
    function getUI(): JSPProgressBarUI; overload; virtual;
    procedure setUI(para1: JSPProgressBarUI); overload; virtual;
    procedure updateUI(); overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
  strict protected
    function createChangeListener(): JSEChangeListener; overload; virtual;
  public
    procedure addChangeListener(para1: JSEChangeListener); overload; virtual;
    procedure removeChangeListener(para1: JSEChangeListener); overload; virtual;
    function getChangeListeners(): Arr1JSEChangeListener; overload; virtual;
  strict protected
    procedure fireStateChanged(); overload; virtual;
  public
    function getModel(): JSBoundedRangeModel; overload; virtual;
    procedure setModel(para1: JSBoundedRangeModel); overload; virtual;
    function getValue(): jint; overload; virtual;
    function getMinimum(): jint; overload; virtual;
    function getMaximum(): jint; overload; virtual;
    procedure setValue(para1: jint); overload; virtual;
    procedure setMinimum(para1: jint); overload; virtual;
    procedure setMaximum(para1: jint); overload; virtual;
    procedure setIndeterminate(para1: jboolean); overload; virtual;
    function isIndeterminate(): jboolean; overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJRootPane = class external 'javax.swing' name 'JRootPane' (JSJComponent, JAAccessible)
  public
    type
      InnerDefaultAction = class;
      Arr1InnerDefaultAction = array of InnerDefaultAction;
      Arr2InnerDefaultAction = array of Arr1InnerDefaultAction;
      Arr3InnerDefaultAction = array of Arr2InnerDefaultAction;
      InnerDefaultAction = class external 'javax.swing' name 'DefaultAction' 
      end;

  public
    type
      InnerAccessibleJRootPane = class;
      Arr1InnerAccessibleJRootPane = array of InnerAccessibleJRootPane;
      Arr2InnerAccessibleJRootPane = array of Arr1InnerAccessibleJRootPane;
      Arr3InnerAccessibleJRootPane = array of Arr2InnerAccessibleJRootPane;
      InnerRootLayout = class;
      Arr1InnerRootLayout = array of InnerRootLayout;
      Arr2InnerRootLayout = array of Arr1InnerRootLayout;
      Arr3InnerRootLayout = array of Arr2InnerRootLayout;
      InnerAccessibleJRootPane = class external 'javax.swing' name 'AccessibleJRootPane' 
      end;

      InnerRootLayout = class external 'javax.swing' name 'RootLayout' 
      end;

  public
    const
      NONE = 0;
      FRAME = 1;
      PLAIN_DIALOG = 2;
      INFORMATION_DIALOG = 3;
      ERROR_DIALOG = 4;
      COLOR_CHOOSER_DIALOG = 5;
      FILE_CHOOSER_DIALOG = 6;
      QUESTION_DIALOG = 7;
      WARNING_DIALOG = 8;
  strict protected
    var
      fmenuBar: JSJMenuBar; external name 'menuBar';
      fcontentPane: JAContainer; external name 'contentPane';
      flayeredPane: JSJLayeredPane; external name 'layeredPane';
      fglassPane: JAComponent; external name 'glassPane';
      fdefaultButton: JSJButton; external name 'defaultButton';
      fdefaultPressAction: JSJRootPane.InnerDefaultAction deprecated; external name 'defaultPressAction';
      fdefaultReleaseAction: JSJRootPane.InnerDefaultAction deprecated; external name 'defaultReleaseAction';
  public
    constructor create(); overload;
    procedure setDoubleBuffered(para1: jboolean); overload; virtual;
    function getWindowDecorationStyle(): jint; overload; virtual;
    procedure setWindowDecorationStyle(para1: jint); overload; virtual;
    function getUI(): JSPRootPaneUI; overload; virtual;
    procedure setUI(para1: JSPRootPaneUI); overload; virtual;
    procedure updateUI(); overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
  strict protected
    function createLayeredPane(): JSJLayeredPane; overload; virtual;
    function createContentPane(): JAContainer; overload; virtual;
    function createGlassPane(): JAComponent; overload; virtual;
    function createRootLayout(): JALayoutManager; overload; virtual;
  public
    procedure setJMenuBar(para1: JSJMenuBar); overload; virtual;
    procedure setMenuBar(para1: JSJMenuBar); overload; virtual;
    function getJMenuBar(): JSJMenuBar; overload; virtual;
    function getMenuBar(): JSJMenuBar; overload; virtual;
    procedure setContentPane(para1: JAContainer); overload; virtual;
    function getContentPane(): JAContainer; overload; virtual;
    procedure setLayeredPane(para1: JSJLayeredPane); overload; virtual;
    function getLayeredPane(): JSJLayeredPane; overload; virtual;
    procedure setGlassPane(para1: JAComponent); overload; virtual;
    function getGlassPane(): JAComponent; overload; virtual;
    function isValidateRoot(): jboolean; overload; virtual;
    function isOptimizedDrawingEnabled(): jboolean; overload; virtual;
    procedure addNotify(); overload; virtual;
    procedure removeNotify(); overload; virtual;
    procedure setDefaultButton(para1: JSJButton); overload; virtual;
    function getDefaultButton(): JSJButton; overload; virtual;
  strict protected
    procedure addImpl(para1: JAComponent; para2: JLObject; para3: jint); overload; virtual;
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJScrollBar = class external 'javax.swing' name 'JScrollBar' (JSJComponent, JAAdjustable, JAAccessible)
  public
    type
      InnerModelListener = class;
      Arr1InnerModelListener = array of InnerModelListener;
      Arr2InnerModelListener = array of Arr1InnerModelListener;
      Arr3InnerModelListener = array of Arr2InnerModelListener;
      InnerModelListener = class external 'javax.swing' name 'ModelListener' 
      end;

  public
    type
      InnerAccessibleJScrollBar = class;
      Arr1InnerAccessibleJScrollBar = array of InnerAccessibleJScrollBar;
      Arr2InnerAccessibleJScrollBar = array of Arr1InnerAccessibleJScrollBar;
      Arr3InnerAccessibleJScrollBar = array of Arr2InnerAccessibleJScrollBar;
      InnerAccessibleJScrollBar = class external 'javax.swing' name 'AccessibleJScrollBar' 
      end;

  strict protected
    var
      fmodel: JSBoundedRangeModel; external name 'model';
      forientation: jint; external name 'orientation';
      funitIncrement: jint; external name 'unitIncrement';
      fblockIncrement: jint; external name 'blockIncrement';
  public
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: jint); overload;
    constructor create(para1: jint); overload;
    constructor create(); overload;
    procedure setUI(para1: JSPScrollBarUI); overload; virtual;
    function getUI(): JSPScrollBarUI; overload; virtual;
    procedure updateUI(); overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
    function getOrientation(): jint; overload; virtual;
    procedure setOrientation(para1: jint); overload; virtual;
    function getModel(): JSBoundedRangeModel; overload; virtual;
    procedure setModel(para1: JSBoundedRangeModel); overload; virtual;
    function getUnitIncrement(para1: jint): jint; overload; virtual;
    procedure setUnitIncrement(para1: jint); overload; virtual;
    function getBlockIncrement(para1: jint): jint; overload; virtual;
    procedure setBlockIncrement(para1: jint); overload; virtual;
    function getUnitIncrement(): jint; overload; virtual;
    function getBlockIncrement(): jint; overload; virtual;
    function getValue(): jint; overload; virtual;
    procedure setValue(para1: jint); overload; virtual;
    function getVisibleAmount(): jint; overload; virtual;
    procedure setVisibleAmount(para1: jint); overload; virtual;
    function getMinimum(): jint; overload; virtual;
    procedure setMinimum(para1: jint); overload; virtual;
    function getMaximum(): jint; overload; virtual;
    procedure setMaximum(para1: jint); overload; virtual;
    function getValueIsAdjusting(): jboolean; overload; virtual;
    procedure setValueIsAdjusting(para1: jboolean); overload; virtual;
    procedure setValues(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure addAdjustmentListener(para1: JAEAdjustmentListener); overload; virtual;
    procedure removeAdjustmentListener(para1: JAEAdjustmentListener); overload; virtual;
    function getAdjustmentListeners(): Arr1JAEAdjustmentListener; overload; virtual;
  strict protected
    procedure fireAdjustmentValueChanged(para1: jint; para2: jint; para3: jint); overload; virtual;
  public
    function getMinimumSize(): JADimension; overload; virtual;
    function getMaximumSize(): JADimension; overload; virtual;
    procedure setEnabled(para1: jboolean); overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJScrollPane = class external 'javax.swing' name 'JScrollPane' (JSJComponent, JSScrollPaneConstants, JAAccessible)
  public
    type
      InnerAccessibleJScrollPane = class;
      Arr1InnerAccessibleJScrollPane = array of InnerAccessibleJScrollPane;
      Arr2InnerAccessibleJScrollPane = array of Arr1InnerAccessibleJScrollPane;
      Arr3InnerAccessibleJScrollPane = array of Arr2InnerAccessibleJScrollPane;
      InnerScrollBar = class;
      Arr1InnerScrollBar = array of InnerScrollBar;
      Arr2InnerScrollBar = array of Arr1InnerScrollBar;
      Arr3InnerScrollBar = array of Arr2InnerScrollBar;
      InnerAccessibleJScrollPane = class external 'javax.swing' name 'AccessibleJScrollPane' 
      end;

      InnerScrollBar = class external 'javax.swing' name 'ScrollBar' 
      end;

  strict protected
    var
      fverticalScrollBarPolicy: jint; external name 'verticalScrollBarPolicy';
      fhorizontalScrollBarPolicy: jint; external name 'horizontalScrollBarPolicy';
      fviewport: JSJViewport; external name 'viewport';
      fverticalScrollBar: JSJScrollBar; external name 'verticalScrollBar';
      fhorizontalScrollBar: JSJScrollBar; external name 'horizontalScrollBar';
      frowHeader: JSJViewport; external name 'rowHeader';
      fcolumnHeader: JSJViewport; external name 'columnHeader';
      flowerLeft: JAComponent; external name 'lowerLeft';
      flowerRight: JAComponent; external name 'lowerRight';
      fupperLeft: JAComponent; external name 'upperLeft';
      fupperRight: JAComponent; external name 'upperRight';
  public
    constructor create(para1: JAComponent; para2: jint; para3: jint); overload;
    constructor create(para1: JAComponent); overload;
    constructor create(para1: jint; para2: jint); overload;
    constructor create(); overload;
    function getUI(): JSPScrollPaneUI; overload; virtual;
    procedure setUI(para1: JSPScrollPaneUI); overload; virtual;
    procedure updateUI(); overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
    procedure setLayout(para1: JALayoutManager); overload; virtual;
    function isValidateRoot(): jboolean; overload; virtual;
    function getVerticalScrollBarPolicy(): jint; overload; virtual;
    procedure setVerticalScrollBarPolicy(para1: jint); overload; virtual;
    function getHorizontalScrollBarPolicy(): jint; overload; virtual;
    procedure setHorizontalScrollBarPolicy(para1: jint); overload; virtual;
    function getViewportBorder(): JSBBorder; overload; virtual;
    procedure setViewportBorder(para1: JSBBorder); overload; virtual;
    function getViewportBorderBounds(): JARectangle; overload; virtual;
    function createHorizontalScrollBar(): JSJScrollBar; overload; virtual;
    function getHorizontalScrollBar(): JSJScrollBar; overload; virtual;
    procedure setHorizontalScrollBar(para1: JSJScrollBar); overload; virtual;
    function createVerticalScrollBar(): JSJScrollBar; overload; virtual;
    function getVerticalScrollBar(): JSJScrollBar; overload; virtual;
    procedure setVerticalScrollBar(para1: JSJScrollBar); overload; virtual;
  strict protected
    function createViewport(): JSJViewport; overload; virtual;
  public
    function getViewport(): JSJViewport; overload; virtual;
    procedure setViewport(para1: JSJViewport); overload; virtual;
    procedure setViewportView(para1: JAComponent); overload; virtual;
    function getRowHeader(): JSJViewport; overload; virtual;
    procedure setRowHeader(para1: JSJViewport); overload; virtual;
    procedure setRowHeaderView(para1: JAComponent); overload; virtual;
    function getColumnHeader(): JSJViewport; overload; virtual;
    procedure setColumnHeader(para1: JSJViewport); overload; virtual;
    procedure setColumnHeaderView(para1: JAComponent); overload; virtual;
    function getCorner(para1: JLString): JAComponent; overload; virtual;
    procedure setCorner(para1: JLString; para2: JAComponent); overload; virtual;
    procedure setComponentOrientation(para1: JAComponentOrientation); overload; virtual;
    function isWheelScrollingEnabled(): jboolean; overload; virtual;
    procedure setWheelScrollingEnabled(para1: jboolean); overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJSeparator = class external 'javax.swing' name 'JSeparator' (JSJComponent, JSSwingConstants, JAAccessible)
  public
    type
      InnerAccessibleJSeparator = class;
      Arr1InnerAccessibleJSeparator = array of InnerAccessibleJSeparator;
      Arr2InnerAccessibleJSeparator = array of Arr1InnerAccessibleJSeparator;
      Arr3InnerAccessibleJSeparator = array of Arr2InnerAccessibleJSeparator;
      InnerAccessibleJSeparator = class external 'javax.swing' name 'AccessibleJSeparator' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    function getUI(): JSPSeparatorUI; overload; virtual;
    procedure setUI(para1: JSPSeparatorUI); overload; virtual;
    procedure updateUI(); overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
    function getOrientation(): jint; overload; virtual;
    procedure setOrientation(para1: jint); overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJSlider = class external 'javax.swing' name 'JSlider' (JSJComponent, JSSwingConstants, JAAccessible)
  public
    type
      InnerModelListener = class;
      Arr1InnerModelListener = array of InnerModelListener;
      Arr2InnerModelListener = array of Arr1InnerModelListener;
      Arr3InnerModelListener = array of Arr2InnerModelListener;
      InnerModelListener = class external 'javax.swing' name 'ModelListener' 
      end;

  public
    type
      InnerAccessibleJSlider = class;
      Arr1InnerAccessibleJSlider = array of InnerAccessibleJSlider;
      Arr2InnerAccessibleJSlider = array of Arr1InnerAccessibleJSlider;
      Arr3InnerAccessibleJSlider = array of Arr2InnerAccessibleJSlider;
      InnerAccessibleJSlider = class external 'javax.swing' name 'AccessibleJSlider' 
      end;

  strict protected
    var
      fsliderModel: JSBoundedRangeModel; external name 'sliderModel';
      fmajorTickSpacing: jint; external name 'majorTickSpacing';
      fminorTickSpacing: jint; external name 'minorTickSpacing';
      fsnapToTicks: jboolean; external name 'snapToTicks';
      forientation: jint; external name 'orientation';
      fchangeListener: JSEChangeListener; external name 'changeListener';
      fchangeEvent: JSEChangeEvent; external name 'changeEvent';
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint); overload;
    constructor create(para1: JSBoundedRangeModel); overload;
    function getUI(): JSPSliderUI; overload; virtual;
    procedure setUI(para1: JSPSliderUI); overload; virtual;
    procedure updateUI(); overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
  strict protected
    function createChangeListener(): JSEChangeListener; overload; virtual;
  public
    procedure addChangeListener(para1: JSEChangeListener); overload; virtual;
    procedure removeChangeListener(para1: JSEChangeListener); overload; virtual;
    function getChangeListeners(): Arr1JSEChangeListener; overload; virtual;
  strict protected
    procedure fireStateChanged(); overload; virtual;
  public
    function getModel(): JSBoundedRangeModel; overload; virtual;
    procedure setModel(para1: JSBoundedRangeModel); overload; virtual;
    function getValue(): jint; overload; virtual;
    procedure setValue(para1: jint); overload; virtual;
    function getMinimum(): jint; overload; virtual;
    procedure setMinimum(para1: jint); overload; virtual;
    function getMaximum(): jint; overload; virtual;
    procedure setMaximum(para1: jint); overload; virtual;
    function getValueIsAdjusting(): jboolean; overload; virtual;
    procedure setValueIsAdjusting(para1: jboolean); overload; virtual;
    function getExtent(): jint; overload; virtual;
    procedure setExtent(para1: jint); overload; virtual;
    function getOrientation(): jint; overload; virtual;
    procedure setOrientation(para1: jint); overload; virtual;
    procedure setFont(para1: JAFont); overload; virtual;
    function getLabelTable(): JUDictionary; overload; virtual;
    procedure setLabelTable(para1: JUDictionary); overload; virtual;
  strict protected
    procedure updateLabelUIs(); overload; virtual;
  public
    function createStandardLabels(para1: jint): JUHashtable; overload; virtual;
    function createStandardLabels(para1: jint; para2: jint): JUHashtable; overload; virtual;
    function getInverted(): jboolean; overload; virtual;
    procedure setInverted(para1: jboolean); overload; virtual;
    function getMajorTickSpacing(): jint; overload; virtual;
    procedure setMajorTickSpacing(para1: jint); overload; virtual;
    function getMinorTickSpacing(): jint; overload; virtual;
    procedure setMinorTickSpacing(para1: jint); overload; virtual;
    function getSnapToTicks(): jboolean; overload; virtual;
    procedure setSnapToTicks(para1: jboolean); overload; virtual;
    function getPaintTicks(): jboolean; overload; virtual;
    procedure setPaintTicks(para1: jboolean); overload; virtual;
    function getPaintTrack(): jboolean; overload; virtual;
    procedure setPaintTrack(para1: jboolean); overload; virtual;
    function getPaintLabels(): jboolean; overload; virtual;
    procedure setPaintLabels(para1: jboolean); overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJSplitPane = class external 'javax.swing' name 'JSplitPane' (JSJComponent, JAAccessible)
  public
    type
      InnerAccessibleJSplitPane = class;
      Arr1InnerAccessibleJSplitPane = array of InnerAccessibleJSplitPane;
      Arr2InnerAccessibleJSplitPane = array of Arr1InnerAccessibleJSplitPane;
      Arr3InnerAccessibleJSplitPane = array of Arr2InnerAccessibleJSplitPane;
      InnerAccessibleJSplitPane = class external 'javax.swing' name 'AccessibleJSplitPane' 
      end;

  public
    const
      VERTICAL_SPLIT = 0;
      HORIZONTAL_SPLIT = 1;
      LEFT = 'left';
      RIGHT = 'right';
      TOP = 'top';
      BOTTOM = 'bottom';
      DIVIDER = 'divider';
      ORIENTATION_PROPERTY = 'orientation';
      CONTINUOUS_LAYOUT_PROPERTY = 'continuousLayout';
      DIVIDER_SIZE_PROPERTY = 'dividerSize';
      ONE_TOUCH_EXPANDABLE_PROPERTY = 'oneTouchExpandable';
      LAST_DIVIDER_LOCATION_PROPERTY = 'lastDividerLocation';
      DIVIDER_LOCATION_PROPERTY = 'dividerLocation';
      RESIZE_WEIGHT_PROPERTY = 'resizeWeight';
  strict protected
    var
      forientation: jint; external name 'orientation';
      fcontinuousLayout: jboolean; external name 'continuousLayout';
      fleftComponent: JAComponent; external name 'leftComponent';
      frightComponent: JAComponent; external name 'rightComponent';
      fdividerSize: jint; external name 'dividerSize';
      foneTouchExpandable: jboolean; external name 'oneTouchExpandable';
      flastDividerLocation: jint; external name 'lastDividerLocation';
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jboolean); overload;
    constructor create(para1: jint; para2: JAComponent; para3: JAComponent); overload;
    constructor create(para1: jint; para2: jboolean; para3: JAComponent; para4: JAComponent); overload;
    procedure setUI(para1: JSPSplitPaneUI); overload; virtual;
    function getUI(): JSPSplitPaneUI; overload; virtual;
    procedure updateUI(); overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
    procedure setDividerSize(para1: jint); overload; virtual;
    function getDividerSize(): jint; overload; virtual;
    procedure setLeftComponent(para1: JAComponent); overload; virtual;
    function getLeftComponent(): JAComponent; overload; virtual;
    procedure setTopComponent(para1: JAComponent); overload; virtual;
    function getTopComponent(): JAComponent; overload; virtual;
    procedure setRightComponent(para1: JAComponent); overload; virtual;
    function getRightComponent(): JAComponent; overload; virtual;
    procedure setBottomComponent(para1: JAComponent); overload; virtual;
    function getBottomComponent(): JAComponent; overload; virtual;
    procedure setOneTouchExpandable(para1: jboolean); overload; virtual;
    function isOneTouchExpandable(): jboolean; overload; virtual;
    procedure setLastDividerLocation(para1: jint); overload; virtual;
    function getLastDividerLocation(): jint; overload; virtual;
    procedure setOrientation(para1: jint); overload; virtual;
    function getOrientation(): jint; overload; virtual;
    procedure setContinuousLayout(para1: jboolean); overload; virtual;
    function isContinuousLayout(): jboolean; overload; virtual;
    procedure setResizeWeight(para1: jdouble); overload; virtual;
    function getResizeWeight(): jdouble; overload; virtual;
    procedure resetToPreferredSizes(); overload; virtual;
    procedure setDividerLocation(para1: jdouble); overload; virtual;
    procedure setDividerLocation(para1: jint); overload; virtual;
    function getDividerLocation(): jint; overload; virtual;
    function getMinimumDividerLocation(): jint; overload; virtual;
    function getMaximumDividerLocation(): jint; overload; virtual;
    procedure remove(para1: JAComponent); overload; virtual;
    procedure remove(para1: jint); overload; virtual;
    procedure removeAll(); overload; virtual;
    function isValidateRoot(): jboolean; overload; virtual;
  strict protected
    procedure addImpl(para1: JAComponent; para2: JLObject; para3: jint); overload; virtual;
    procedure paintChildren(para1: JAGraphics); overload; virtual;
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJTabbedPane = class external 'javax.swing' name 'JTabbedPane' (JSJComponent, JISerializable, JAAccessible, JSSwingConstants)
  public
    type
      InnerPage = class;
      Arr1InnerPage = array of InnerPage;
      Arr2InnerPage = array of Arr1InnerPage;
      Arr3InnerPage = array of Arr2InnerPage;
      InnerPage = class external 'javax.swing' name 'Page' 
      end;

  public
    type
      InnerAccessibleJTabbedPane = class;
      Arr1InnerAccessibleJTabbedPane = array of InnerAccessibleJTabbedPane;
      Arr2InnerAccessibleJTabbedPane = array of Arr1InnerAccessibleJTabbedPane;
      Arr3InnerAccessibleJTabbedPane = array of Arr2InnerAccessibleJTabbedPane;
      InnerModelListener = class;
      Arr1InnerModelListener = array of InnerModelListener;
      Arr2InnerModelListener = array of Arr1InnerModelListener;
      Arr3InnerModelListener = array of Arr2InnerModelListener;
      InnerAccessibleJTabbedPane = class external 'javax.swing' name 'AccessibleJTabbedPane' 
      end;

      InnerModelListener = class external 'javax.swing' name 'ModelListener' 
      end;

  public
    const
      WRAP_TAB_LAYOUT = 0;
      SCROLL_TAB_LAYOUT = 1;
  strict protected
    var
      ftabPlacement: jint; external name 'tabPlacement';
      fmodel: JSSingleSelectionModel; external name 'model';
      fchangeListener: JSEChangeListener; external name 'changeListener';
      fchangeEvent: JSEChangeEvent; external name 'changeEvent';
  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: jint); overload;
    function getUI(): JSPTabbedPaneUI; overload; virtual;
    procedure setUI(para1: JSPTabbedPaneUI); overload; virtual;
    procedure updateUI(); overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
  strict protected
    function createChangeListener(): JSEChangeListener; overload; virtual;
  public
    procedure addChangeListener(para1: JSEChangeListener); overload; virtual;
    procedure removeChangeListener(para1: JSEChangeListener); overload; virtual;
    function getChangeListeners(): Arr1JSEChangeListener; overload; virtual;
  strict protected
    procedure fireStateChanged(); overload; virtual;
  public
    function getModel(): JSSingleSelectionModel; overload; virtual;
    procedure setModel(para1: JSSingleSelectionModel); overload; virtual;
    function getTabPlacement(): jint; overload; virtual;
    procedure setTabPlacement(para1: jint); overload; virtual;
    function getTabLayoutPolicy(): jint; overload; virtual;
    procedure setTabLayoutPolicy(para1: jint); overload; virtual;
    function getSelectedIndex(): jint; overload; virtual;
    procedure setSelectedIndex(para1: jint); overload; virtual;
    function getSelectedComponent(): JAComponent; overload; virtual;
    procedure setSelectedComponent(para1: JAComponent); overload; virtual;
    procedure insertTab(para1: JLString; para2: JSIcon; para3: JAComponent; para4: JLString; para5: jint); overload; virtual;
    procedure addTab(para1: JLString; para2: JSIcon; para3: JAComponent; para4: JLString); overload; virtual;
    procedure addTab(para1: JLString; para2: JSIcon; para3: JAComponent); overload; virtual;
    procedure addTab(para1: JLString; para2: JAComponent); overload; virtual;
    function add(para1: JAComponent): JAComponent; overload; virtual;
    function add(para1: JLString; para2: JAComponent): JAComponent; overload; virtual;
    function add(para1: JAComponent; para2: jint): JAComponent; overload; virtual;
    procedure add(para1: JAComponent; para2: JLObject); overload; virtual;
    procedure add(para1: JAComponent; para2: JLObject; para3: jint); overload; virtual;
    procedure removeTabAt(para1: jint); overload; virtual;
    procedure remove(para1: JAComponent); overload; virtual;
    procedure remove(para1: jint); overload; virtual;
    procedure removeAll(); overload; virtual;
    function getTabCount(): jint; overload; virtual;
    function getTabRunCount(): jint; overload; virtual;
    function getTitleAt(para1: jint): JLString; overload; virtual;
    function getIconAt(para1: jint): JSIcon; overload; virtual;
    function getDisabledIconAt(para1: jint): JSIcon; overload; virtual;
    function getToolTipTextAt(para1: jint): JLString; overload; virtual;
    function getBackgroundAt(para1: jint): JAColor; overload; virtual;
    function getForegroundAt(para1: jint): JAColor; overload; virtual;
    function isEnabledAt(para1: jint): jboolean; overload; virtual;
    function getComponentAt(para1: jint): JAComponent; overload; virtual;
    function getMnemonicAt(para1: jint): jint; overload; virtual;
    function getDisplayedMnemonicIndexAt(para1: jint): jint; overload; virtual;
    function getBoundsAt(para1: jint): JARectangle; overload; virtual;
    procedure setTitleAt(para1: jint; para2: JLString); overload; virtual;
    procedure setIconAt(para1: jint; para2: JSIcon); overload; virtual;
    procedure setDisabledIconAt(para1: jint; para2: JSIcon); overload; virtual;
    procedure setToolTipTextAt(para1: jint; para2: JLString); overload; virtual;
    procedure setBackgroundAt(para1: jint; para2: JAColor); overload; virtual;
    procedure setForegroundAt(para1: jint; para2: JAColor); overload; virtual;
    procedure setEnabledAt(para1: jint; para2: jboolean); overload; virtual;
    procedure setComponentAt(para1: jint; para2: JAComponent); overload; virtual;
    procedure setDisplayedMnemonicIndexAt(para1: jint; para2: jint); overload; virtual;
    procedure setMnemonicAt(para1: jint; para2: jint); overload; virtual;
    function indexOfTab(para1: JLString): jint; overload; virtual;
    function indexOfTab(para1: JSIcon): jint; overload; virtual;
    function indexOfComponent(para1: JAComponent): jint; overload; virtual;
    function indexAtLocation(para1: jint; para2: jint): jint; overload; virtual;
    function getToolTipText(para1: JAEMouseEvent): JLString; overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
    procedure setTabComponentAt(para1: jint; para2: JAComponent); overload; virtual;
    function getTabComponentAt(para1: jint): JAComponent; overload; virtual;
    function indexOfTabComponent(para1: JAComponent): jint; overload; virtual;
  end;

  JSJTable = class external 'javax.swing' name 'JTable' (JSJComponent, JSETableModelListener, JSScrollable, JSETableColumnModelListener, JSEListSelectionListener, JSECellEditorListener, JAAccessible, JSERowSorterListener)
  public
    type
      InnerBooleanEditor = class;
      Arr1InnerBooleanEditor = array of InnerBooleanEditor;
      Arr2InnerBooleanEditor = array of Arr1InnerBooleanEditor;
      Arr3InnerBooleanEditor = array of Arr2InnerBooleanEditor;
      InnerGenericEditor = class;
      Arr1InnerGenericEditor = array of InnerGenericEditor;
      Arr2InnerGenericEditor = array of Arr1InnerGenericEditor;
      Arr3InnerGenericEditor = array of Arr2InnerGenericEditor;
      InnerBooleanRenderer = class;
      Arr1InnerBooleanRenderer = array of InnerBooleanRenderer;
      Arr2InnerBooleanRenderer = array of Arr1InnerBooleanRenderer;
      Arr3InnerBooleanRenderer = array of Arr2InnerBooleanRenderer;
      InnerCellEditorRemover = class;
      Arr1InnerCellEditorRemover = array of InnerCellEditorRemover;
      Arr2InnerCellEditorRemover = array of Arr1InnerCellEditorRemover;
      Arr3InnerCellEditorRemover = array of Arr2InnerCellEditorRemover;
      InnerModelChange = class;
      Arr1InnerModelChange = array of InnerModelChange;
      Arr2InnerModelChange = array of Arr1InnerModelChange;
      Arr3InnerModelChange = array of Arr2InnerModelChange;
      InnerResizable2 = interface;
      Arr1InnerResizable2 = array of InnerResizable2;
      Arr2InnerResizable2 = array of Arr1InnerResizable2;
      Arr3InnerResizable2 = array of Arr2InnerResizable2;
      InnerDateRenderer = class;
      Arr1InnerDateRenderer = array of InnerDateRenderer;
      Arr2InnerDateRenderer = array of Arr1InnerDateRenderer;
      Arr3InnerDateRenderer = array of Arr2InnerDateRenderer;
      InnerIconRenderer = class;
      Arr1InnerIconRenderer = array of InnerIconRenderer;
      Arr2InnerIconRenderer = array of Arr1InnerIconRenderer;
      Arr3InnerIconRenderer = array of Arr2InnerIconRenderer;
      InnerNumberRenderer = class;
      Arr1InnerNumberRenderer = array of InnerNumberRenderer;
      Arr2InnerNumberRenderer = array of Arr1InnerNumberRenderer;
      Arr3InnerNumberRenderer = array of Arr2InnerNumberRenderer;
      InnerDoubleRenderer = class;
      Arr1InnerDoubleRenderer = array of InnerDoubleRenderer;
      Arr2InnerDoubleRenderer = array of Arr1InnerDoubleRenderer;
      Arr3InnerDoubleRenderer = array of Arr2InnerDoubleRenderer;
      InnerNumberEditor = class;
      Arr1InnerNumberEditor = array of InnerNumberEditor;
      Arr2InnerNumberEditor = array of Arr1InnerNumberEditor;
      Arr3InnerNumberEditor = array of Arr2InnerNumberEditor;
      InnerResizable3 = interface;
      Arr1InnerResizable3 = array of InnerResizable3;
      Arr2InnerResizable3 = array of Arr1InnerResizable3;
      Arr3InnerResizable3 = array of Arr2InnerResizable3;
      InnerSortManager = class;
      Arr1InnerSortManager = array of InnerSortManager;
      Arr2InnerSortManager = array of Arr1InnerSortManager;
      Arr3InnerSortManager = array of Arr2InnerSortManager;
      InnerThreadSafePrintable = class;
      Arr1InnerThreadSafePrintable = array of InnerThreadSafePrintable;
      Arr2InnerThreadSafePrintable = array of Arr1InnerThreadSafePrintable;
      Arr3InnerThreadSafePrintable = array of Arr2InnerThreadSafePrintable;
      InnerBooleanEditor = class external 'javax.swing' name 'BooleanEditor' 
      end;

      InnerGenericEditor = class external 'javax.swing' name 'GenericEditor' 
      end;

      InnerBooleanRenderer = class external 'javax.swing' name 'BooleanRenderer' 
      end;

      InnerCellEditorRemover = class external 'javax.swing' name 'CellEditorRemover' 
      end;

      InnerModelChange = class sealed external 'javax.swing' name 'ModelChange' 
      end;

      InnerResizable2 = interface external 'javax.swing' name 'Resizable2' 
      end;

      InnerDateRenderer = class external 'javax.swing' name 'DateRenderer' 
      end;

      InnerIconRenderer = class external 'javax.swing' name 'IconRenderer' 
      end;

      InnerNumberRenderer = class external 'javax.swing' name 'NumberRenderer' 
      end;

      InnerDoubleRenderer = class external 'javax.swing' name 'DoubleRenderer' 
      end;

      InnerNumberEditor = class external 'javax.swing' name 'NumberEditor' 
      end;

      InnerResizable3 = interface external 'javax.swing' name 'Resizable3' 
      end;

      InnerSortManager = class sealed external 'javax.swing' name 'SortManager' 
      end;

      InnerThreadSafePrintable = class external 'javax.swing' name 'ThreadSafePrintable' 
      end;

  public
    type
      InnerAccessibleJTable = class;
      Arr1InnerAccessibleJTable = array of InnerAccessibleJTable;
      Arr2InnerAccessibleJTable = array of Arr1InnerAccessibleJTable;
      Arr3InnerAccessibleJTable = array of Arr2InnerAccessibleJTable;
      InnerDropLocation = class;
      Arr1InnerDropLocation = array of InnerDropLocation;
      Arr2InnerDropLocation = array of Arr1InnerDropLocation;
      Arr3InnerDropLocation = array of Arr2InnerDropLocation;
      InnerPrintMode = class;
      Arr1InnerPrintMode = array of InnerPrintMode;
      Arr2InnerPrintMode = array of Arr1InnerPrintMode;
      Arr3InnerPrintMode = array of Arr2InnerPrintMode;
      InnerAccessibleJTable = class external 'javax.swing' name 'AccessibleJTable' 
      public
        type
          InnerAccessibleJTableHeaderCell = class;
          Arr1InnerAccessibleJTableHeaderCell = array of InnerAccessibleJTableHeaderCell;
          Arr2InnerAccessibleJTableHeaderCell = array of Arr1InnerAccessibleJTableHeaderCell;
          Arr3InnerAccessibleJTableHeaderCell = array of Arr2InnerAccessibleJTableHeaderCell;
          InnerAccessibleTableHeader = class;
          Arr1InnerAccessibleTableHeader = array of InnerAccessibleTableHeader;
          Arr2InnerAccessibleTableHeader = array of Arr1InnerAccessibleTableHeader;
          Arr3InnerAccessibleTableHeader = array of Arr2InnerAccessibleTableHeader;
          InnerAccessibleJTableHeaderCell = class external 'javax.swing' name 'AccessibleJTableHeaderCell' 
          end;

          InnerAccessibleTableHeader = class external 'javax.swing' name 'AccessibleTableHeader' 
          end;

      public
        type
          InnerAccessibleJTableCell = class;
          Arr1InnerAccessibleJTableCell = array of InnerAccessibleJTableCell;
          Arr2InnerAccessibleJTableCell = array of Arr1InnerAccessibleJTableCell;
          Arr3InnerAccessibleJTableCell = array of Arr2InnerAccessibleJTableCell;
          InnerAccessibleJTableModelChange = class;
          Arr1InnerAccessibleJTableModelChange = array of InnerAccessibleJTableModelChange;
          Arr2InnerAccessibleJTableModelChange = array of Arr1InnerAccessibleJTableModelChange;
          Arr3InnerAccessibleJTableModelChange = array of Arr2InnerAccessibleJTableModelChange;
          InnerAccessibleJTableCell = class external 'javax.swing' name 'AccessibleJTableCell' 
          end;

          InnerAccessibleJTableModelChange = class external 'javax.swing' name 'AccessibleJTableModelChange' 
          end;

      end;

      InnerDropLocation = class sealed external 'javax.swing' name 'DropLocation' (JSTransferHandler.InnerDropLocation)
      public
        function getRow(): jint; overload; virtual;
        function getColumn(): jint; overload; virtual;
        function isInsertRow(): jboolean; overload; virtual;
        function isInsertColumn(): jboolean; overload; virtual;
        function toString(): JLString; overload; virtual;
      end;

      InnerPrintMode = class sealed external 'javax.swing' name 'PrintMode' (JLEnum)
      public
        final class var
          fNORMAL: JSJTable.InnerPrintMode; external name 'NORMAL';
          fFIT_WIDTH: JSJTable.InnerPrintMode; external name 'FIT_WIDTH';
      public
        class function values(): JSJTable.Arr1InnerPrintMode; static; overload;
        class function valueOf(para1: JLString): JSJTable.InnerPrintMode; static; overload;
      end;

  public
    const
      AUTO_RESIZE_OFF = 0;
      AUTO_RESIZE_NEXT_COLUMN = 1;
      AUTO_RESIZE_SUBSEQUENT_COLUMNS = 2;
      AUTO_RESIZE_LAST_COLUMN = 3;
      AUTO_RESIZE_ALL_COLUMNS = 4;
  strict protected
    var
      fdataModel: JSTTableModel; external name 'dataModel';
      fcolumnModel: JSTTableColumnModel; external name 'columnModel';
      fselectionModel: JSListSelectionModel; external name 'selectionModel';
      ftableHeader: JSTJTableHeader; external name 'tableHeader';
      frowHeight: jint; external name 'rowHeight';
      frowMargin: jint; external name 'rowMargin';
      fgridColor: JAColor; external name 'gridColor';
      fshowHorizontalLines: jboolean; external name 'showHorizontalLines';
      fshowVerticalLines: jboolean; external name 'showVerticalLines';
      fautoResizeMode: jint; external name 'autoResizeMode';
      fautoCreateColumnsFromModel: jboolean; external name 'autoCreateColumnsFromModel';
      fpreferredViewportSize: JADimension; external name 'preferredViewportSize';
      frowSelectionAllowed: jboolean; external name 'rowSelectionAllowed';
      fcellSelectionEnabled: jboolean; external name 'cellSelectionEnabled';
      feditorComp: JAComponent; external name 'editorComp';
      fcellEditor: JSTTableCellEditor; external name 'cellEditor';
      feditingColumn: jint; external name 'editingColumn';
      feditingRow: jint; external name 'editingRow';
      fdefaultRenderersByColumnClass: JUHashtable; external name 'defaultRenderersByColumnClass';
      fdefaultEditorsByColumnClass: JUHashtable; external name 'defaultEditorsByColumnClass';
      fselectionForeground: JAColor; external name 'selectionForeground';
      fselectionBackground: JAColor; external name 'selectionBackground';
  public
    constructor create(); overload;
    constructor create(para1: JSTTableModel); overload;
    constructor create(para1: JSTTableModel; para2: JSTTableColumnModel); overload;
    constructor create(para1: JSTTableModel; para2: JSTTableColumnModel; para3: JSListSelectionModel); overload;
    constructor create(para1: jint; para2: jint); overload;
    constructor create(para1: JUVector; para2: JUVector); overload;
    constructor create(para1: Arr2JLObject; para2: Arr1JLObject); overload;
    constructor create(para1: Arr2JLObject; const para2: array of JLObject); overload;
    procedure addNotify(); overload; virtual;
  strict protected
    procedure configureEnclosingScrollPane(); overload; virtual;
  public
    procedure removeNotify(); overload; virtual;
  strict protected
    procedure unconfigureEnclosingScrollPane(); overload; virtual;
  public
    class function createScrollPaneForTable(para1: JSJTable): JSJScrollPane; static; overload;
    procedure setTableHeader(para1: JSTJTableHeader); overload; virtual;
    function getTableHeader(): JSTJTableHeader; overload; virtual;
    procedure setRowHeight(para1: jint); overload; virtual;
    function getRowHeight(): jint; overload; virtual;
    procedure setRowHeight(para1: jint; para2: jint); overload; virtual;
    function getRowHeight(para1: jint): jint; overload; virtual;
    procedure setRowMargin(para1: jint); overload; virtual;
    function getRowMargin(): jint; overload; virtual;
    procedure setIntercellSpacing(para1: JADimension); overload; virtual;
    function getIntercellSpacing(): JADimension; overload; virtual;
    procedure setGridColor(para1: JAColor); overload; virtual;
    function getGridColor(): JAColor; overload; virtual;
    procedure setShowGrid(para1: jboolean); overload; virtual;
    procedure setShowHorizontalLines(para1: jboolean); overload; virtual;
    procedure setShowVerticalLines(para1: jboolean); overload; virtual;
    function getShowHorizontalLines(): jboolean; overload; virtual;
    function getShowVerticalLines(): jboolean; overload; virtual;
    procedure setAutoResizeMode(para1: jint); overload; virtual;
    function getAutoResizeMode(): jint; overload; virtual;
    procedure setAutoCreateColumnsFromModel(para1: jboolean); overload; virtual;
    function getAutoCreateColumnsFromModel(): jboolean; overload; virtual;
    procedure createDefaultColumnsFromModel(); overload; virtual;
    procedure setDefaultRenderer(para1: JLClass; para2: JSTTableCellRenderer); overload; virtual;
    function getDefaultRenderer(para1: JLClass): JSTTableCellRenderer; overload; virtual;
    procedure setDefaultEditor(para1: JLClass; para2: JSTTableCellEditor); overload; virtual;
    function getDefaultEditor(para1: JLClass): JSTTableCellEditor; overload; virtual;
    procedure setDragEnabled(para1: jboolean); overload; virtual;
    function getDragEnabled(): jboolean; overload; virtual;
    procedure setDropMode(para1: JSDropMode); overload; virtual; final;
    function getDropMode(): JSDropMode; overload; virtual; final;
    function getDropLocation(): JSJTable.InnerDropLocation; overload; virtual; final;
    procedure setAutoCreateRowSorter(para1: jboolean); overload; virtual;
    function getAutoCreateRowSorter(): jboolean; overload; virtual;
    procedure setUpdateSelectionOnSort(para1: jboolean); overload; virtual;
    function getUpdateSelectionOnSort(): jboolean; overload; virtual;
    procedure setRowSorter(para1: JSRowSorter); overload; virtual;
    function getRowSorter(): JSRowSorter; overload; virtual;
    procedure setSelectionMode(para1: jint); overload; virtual;
    procedure setRowSelectionAllowed(para1: jboolean); overload; virtual;
    function getRowSelectionAllowed(): jboolean; overload; virtual;
    procedure setColumnSelectionAllowed(para1: jboolean); overload; virtual;
    function getColumnSelectionAllowed(): jboolean; overload; virtual;
    procedure setCellSelectionEnabled(para1: jboolean); overload; virtual;
    function getCellSelectionEnabled(): jboolean; overload; virtual;
    procedure selectAll(); overload; virtual;
    procedure clearSelection(); overload; virtual;
    procedure setRowSelectionInterval(para1: jint; para2: jint); overload; virtual;
    procedure setColumnSelectionInterval(para1: jint; para2: jint); overload; virtual;
    procedure addRowSelectionInterval(para1: jint; para2: jint); overload; virtual;
    procedure addColumnSelectionInterval(para1: jint; para2: jint); overload; virtual;
    procedure removeRowSelectionInterval(para1: jint; para2: jint); overload; virtual;
    procedure removeColumnSelectionInterval(para1: jint; para2: jint); overload; virtual;
    function getSelectedRow(): jint; overload; virtual;
    function getSelectedColumn(): jint; overload; virtual;
    function getSelectedRows(): Arr1jint; overload; virtual;
    function getSelectedColumns(): Arr1jint; overload; virtual;
    function getSelectedRowCount(): jint; overload; virtual;
    function getSelectedColumnCount(): jint; overload; virtual;
    function isRowSelected(para1: jint): jboolean; overload; virtual;
    function isColumnSelected(para1: jint): jboolean; overload; virtual;
    function isCellSelected(para1: jint; para2: jint): jboolean; overload; virtual;
    procedure changeSelection(para1: jint; para2: jint; para3: jboolean; para4: jboolean); overload; virtual;
    function getSelectionForeground(): JAColor; overload; virtual;
    procedure setSelectionForeground(para1: JAColor); overload; virtual;
    function getSelectionBackground(): JAColor; overload; virtual;
    procedure setSelectionBackground(para1: JAColor); overload; virtual;
    function getColumn(para1: JLObject): JSTTableColumn; overload; virtual;
    function convertColumnIndexToModel(para1: jint): jint; overload; virtual;
    function convertColumnIndexToView(para1: jint): jint; overload; virtual;
    function convertRowIndexToView(para1: jint): jint; overload; virtual;
    function convertRowIndexToModel(para1: jint): jint; overload; virtual;
    function getRowCount(): jint; overload; virtual;
    function getColumnCount(): jint; overload; virtual;
    function getColumnName(para1: jint): JLString; overload; virtual;
    function getColumnClass(para1: jint): JLClass; overload; virtual;
    function getValueAt(para1: jint; para2: jint): JLObject; overload; virtual;
    procedure setValueAt(para1: JLObject; para2: jint; para3: jint); overload; virtual;
    function isCellEditable(para1: jint; para2: jint): jboolean; overload; virtual;
    procedure addColumn(para1: JSTTableColumn); overload; virtual;
    procedure removeColumn(para1: JSTTableColumn); overload; virtual;
    procedure moveColumn(para1: jint; para2: jint); overload; virtual;
    function columnAtPoint(para1: JAPoint): jint; overload; virtual;
    function rowAtPoint(para1: JAPoint): jint; overload; virtual;
    function getCellRect(para1: jint; para2: jint; para3: jboolean): JARectangle; overload; virtual;
    procedure doLayout(); overload; virtual;
    procedure sizeColumnsToFit(para1: jboolean); overload; virtual;
    procedure sizeColumnsToFit(para1: jint); overload; virtual;
    function getToolTipText(para1: JAEMouseEvent): JLString; overload; virtual;
    procedure setSurrendersFocusOnKeystroke(para1: jboolean); overload; virtual;
    function getSurrendersFocusOnKeystroke(): jboolean; overload; virtual;
    function editCellAt(para1: jint; para2: jint): jboolean; overload; virtual;
    function editCellAt(para1: jint; para2: jint; para3: JUEventObject): jboolean; overload; virtual;
    function isEditing(): jboolean; overload; virtual;
    function getEditorComponent(): JAComponent; overload; virtual;
    function getEditingColumn(): jint; overload; virtual;
    function getEditingRow(): jint; overload; virtual;
    function getUI(): JSPTableUI; overload; virtual;
    procedure setUI(para1: JSPTableUI); overload; virtual;
    procedure updateUI(); overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
    procedure setModel(para1: JSTTableModel); overload; virtual;
    function getModel(): JSTTableModel; overload; virtual;
    procedure setColumnModel(para1: JSTTableColumnModel); overload; virtual;
    function getColumnModel(): JSTTableColumnModel; overload; virtual;
    procedure setSelectionModel(para1: JSListSelectionModel); overload; virtual;
    function getSelectionModel(): JSListSelectionModel; overload; virtual;
    procedure sorterChanged(para1: JSERowSorterEvent); overload; virtual;
    procedure tableChanged(para1: JSETableModelEvent); overload; virtual;
    procedure columnAdded(para1: JSETableColumnModelEvent); overload; virtual;
    procedure columnRemoved(para1: JSETableColumnModelEvent); overload; virtual;
    procedure columnMoved(para1: JSETableColumnModelEvent); overload; virtual;
    procedure columnMarginChanged(para1: JSEChangeEvent); overload; virtual;
    procedure columnSelectionChanged(para1: JSEListSelectionEvent); overload; virtual;
    procedure valueChanged(para1: JSEListSelectionEvent); overload; virtual;
    procedure editingStopped(para1: JSEChangeEvent); overload; virtual;
    procedure editingCanceled(para1: JSEChangeEvent); overload; virtual;
    procedure setPreferredScrollableViewportSize(para1: JADimension); overload; virtual;
    function getPreferredScrollableViewportSize(): JADimension; overload; virtual;
    function getScrollableUnitIncrement(para1: JARectangle; para2: jint; para3: jint): jint; overload; virtual;
    function getScrollableBlockIncrement(para1: JARectangle; para2: jint; para3: jint): jint; overload; virtual;
    function getScrollableTracksViewportWidth(): jboolean; overload; virtual;
    function getScrollableTracksViewportHeight(): jboolean; overload; virtual;
    procedure setFillsViewportHeight(para1: jboolean); overload; virtual;
    function getFillsViewportHeight(): jboolean; overload; virtual;
  strict protected
    function processKeyBinding(para1: JSKeyStroke; para2: JAEKeyEvent; para3: jint; para4: jboolean): jboolean; overload; virtual;
    procedure createDefaultRenderers(); overload; virtual;
    procedure createDefaultEditors(); overload; virtual;
    procedure initializeLocalVars(); overload; virtual;
    function createDefaultDataModel(): JSTTableModel; overload; virtual;
    function createDefaultColumnModel(): JSTTableColumnModel; overload; virtual;
    function createDefaultSelectionModel(): JSListSelectionModel; overload; virtual;
    function createDefaultTableHeader(): JSTJTableHeader; overload; virtual;
    procedure resizeAndRepaint(); overload; virtual;
  public
    function getCellEditor(): JSTTableCellEditor; overload; virtual;
    procedure setCellEditor(para1: JSTTableCellEditor); overload; virtual;
    procedure setEditingColumn(para1: jint); overload; virtual;
    procedure setEditingRow(para1: jint); overload; virtual;
    function getCellRenderer(para1: jint; para2: jint): JSTTableCellRenderer; overload; virtual;
    function prepareRenderer(para1: JSTTableCellRenderer; para2: jint; para3: jint): JAComponent; overload; virtual;
    function getCellEditor(para1: jint; para2: jint): JSTTableCellEditor; overload; virtual;
    function prepareEditor(para1: JSTTableCellEditor; para2: jint; para3: jint): JAComponent; overload; virtual;
    procedure removeEditor(); overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function print(): jboolean; overload; virtual;  // throws java.awt.print.PrinterException
    function print(para1: JSJTable.InnerPrintMode): jboolean; overload; virtual;  // throws java.awt.print.PrinterException
    function print(para1: JSJTable.InnerPrintMode; para2: JTMessageFormat; para3: JTMessageFormat): jboolean; overload; virtual;  // throws java.awt.print.PrinterException
    function print(para1: JSJTable.InnerPrintMode; para2: JTMessageFormat; para3: JTMessageFormat; para4: jboolean; para5: JPAPrintRequestAttributeSet; para6: jboolean): jboolean; overload; virtual;  // throws java.awt.print.PrinterException, java.awt.HeadlessException
    function print(para1: JSJTable.InnerPrintMode; para2: JTMessageFormat; para3: JTMessageFormat; para4: jboolean; para5: JPAPrintRequestAttributeSet; para6: jboolean; para7: JPPrintService): jboolean; overload; virtual;  // throws java.awt.print.PrinterException, java.awt.HeadlessException
    function getPrintable(para1: JSJTable.InnerPrintMode; para2: JTMessageFormat; para3: JTMessageFormat): JAPPrintable; overload; virtual;
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJToolTip = class external 'javax.swing' name 'JToolTip' (JSJComponent, JAAccessible)
  public
    type
      InnerAccessibleJToolTip = class;
      Arr1InnerAccessibleJToolTip = array of InnerAccessibleJToolTip;
      Arr2InnerAccessibleJToolTip = array of Arr1InnerAccessibleJToolTip;
      Arr3InnerAccessibleJToolTip = array of Arr2InnerAccessibleJToolTip;
      InnerAccessibleJToolTip = class external 'javax.swing' name 'AccessibleJToolTip' 
      end;

  public
    constructor create(); overload;
    function getUI(): JSPToolTipUI; overload; virtual;
    procedure updateUI(); overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
    procedure setTipText(para1: JLString); overload; virtual;
    function getTipText(): JLString; overload; virtual;
    procedure setComponent(para1: JSJComponent); overload; virtual;
    function getComponent(): JSJComponent; overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJTree = class external 'javax.swing' name 'JTree' (JSJComponent, JSScrollable, JAAccessible)
  public
    type
      InnerTreeTimer = class;
      Arr1InnerTreeTimer = array of InnerTreeTimer;
      Arr2InnerTreeTimer = array of Arr1InnerTreeTimer;
      Arr3InnerTreeTimer = array of Arr2InnerTreeTimer;
      InnerTreeTimer = class external 'javax.swing' name 'TreeTimer' 
      end;

  public
    type
      InnerAccessibleJTree = class;
      Arr1InnerAccessibleJTree = array of InnerAccessibleJTree;
      Arr2InnerAccessibleJTree = array of Arr1InnerAccessibleJTree;
      Arr3InnerAccessibleJTree = array of Arr2InnerAccessibleJTree;
      InnerDropLocation = class;
      Arr1InnerDropLocation = array of InnerDropLocation;
      Arr2InnerDropLocation = array of Arr1InnerDropLocation;
      Arr3InnerDropLocation = array of Arr2InnerDropLocation;
      InnerDynamicUtilTreeNode = class;
      Arr1InnerDynamicUtilTreeNode = array of InnerDynamicUtilTreeNode;
      Arr2InnerDynamicUtilTreeNode = array of Arr1InnerDynamicUtilTreeNode;
      Arr3InnerDynamicUtilTreeNode = array of Arr2InnerDynamicUtilTreeNode;
      InnerEmptySelectionModel = class;
      Arr1InnerEmptySelectionModel = array of InnerEmptySelectionModel;
      Arr2InnerEmptySelectionModel = array of Arr1InnerEmptySelectionModel;
      Arr3InnerEmptySelectionModel = array of Arr2InnerEmptySelectionModel;
      InnerTreeModelHandler = class;
      Arr1InnerTreeModelHandler = array of InnerTreeModelHandler;
      Arr2InnerTreeModelHandler = array of Arr1InnerTreeModelHandler;
      Arr3InnerTreeModelHandler = array of Arr2InnerTreeModelHandler;
      InnerTreeSelectionRedirector = class;
      Arr1InnerTreeSelectionRedirector = array of InnerTreeSelectionRedirector;
      Arr2InnerTreeSelectionRedirector = array of Arr1InnerTreeSelectionRedirector;
      Arr3InnerTreeSelectionRedirector = array of Arr2InnerTreeSelectionRedirector;
      InnerAccessibleJTree = class external 'javax.swing' name 'AccessibleJTree' 
      public
        type
          InnerAccessibleJTreeNode = class;
          Arr1InnerAccessibleJTreeNode = array of InnerAccessibleJTreeNode;
          Arr2InnerAccessibleJTreeNode = array of Arr1InnerAccessibleJTreeNode;
          Arr3InnerAccessibleJTreeNode = array of Arr2InnerAccessibleJTreeNode;
          InnerAccessibleJTreeNode = class external 'javax.swing' name 'AccessibleJTreeNode' 
          end;

      end;

      InnerDropLocation = class sealed external 'javax.swing' name 'DropLocation' (JSTransferHandler.InnerDropLocation)
      public
        function getChildIndex(): jint; overload; virtual;
        function getPath(): JSTTreePath; overload; virtual;
        function toString(): JLString; overload; virtual;
      end;

      InnerDynamicUtilTreeNode = class external 'javax.swing' name 'DynamicUtilTreeNode' (JSTDefaultMutableTreeNode)
      strict protected
        var
          fhasChildren: jboolean; external name 'hasChildren';
          fchildValue: JLObject; external name 'childValue';
          floadedChildren: jboolean; external name 'loadedChildren';
      public
        class procedure createChildren(para1: JSTDefaultMutableTreeNode; para2: JLObject); static; overload;
        constructor create(para1: JLObject; para2: JLObject); overload;
        function isLeaf(): jboolean; overload; virtual;
        function getChildCount(): jint; overload; virtual;
      strict protected
        procedure loadChildren(); overload; virtual;
      public
        function getChildAt(para1: jint): JSTTreeNode; overload; virtual;
        function children(): JUEnumeration; overload; virtual;
      end;

      InnerEmptySelectionModel = class external 'javax.swing' name 'EmptySelectionModel' (JSTDefaultTreeSelectionModel)
      strict protected
        final class var
          fsharedInstance: JSJTree.InnerEmptySelectionModel; external name 'sharedInstance';
      strict protected
        constructor create(); overload;
      public
        class function sharedInstance(): JSJTree.InnerEmptySelectionModel; static; overload;
        procedure setSelectionPaths(para1: Arr1JSTTreePath); overload; virtual;
        procedure setSelectionPaths(var para1: array of JSTTreePath); overload; virtual;
        procedure addSelectionPaths(para1: Arr1JSTTreePath); overload; virtual;
        procedure addSelectionPaths(var para1: array of JSTTreePath); overload; virtual;
        procedure removeSelectionPaths(para1: Arr1JSTTreePath); overload; virtual;
        procedure removeSelectionPaths(var para1: array of JSTTreePath); overload; virtual;
      end;

      InnerTreeModelHandler = class external 'javax.swing' name 'TreeModelHandler' 
      end;

      InnerTreeSelectionRedirector = class external 'javax.swing' name 'TreeSelectionRedirector' 
      end;

  strict protected
    var
      ftreeModel: JSTTreeModel; external name 'treeModel';
      fselectionModel: JSTTreeSelectionModel; external name 'selectionModel';
      frootVisible: jboolean; external name 'rootVisible';
      fcellRenderer: JSTTreeCellRenderer; external name 'cellRenderer';
      frowHeight: jint; external name 'rowHeight';
      fshowsRootHandles: jboolean; external name 'showsRootHandles';
      fselectionRedirector: JSJTree.InnerTreeSelectionRedirector; external name 'selectionRedirector';
      fcellEditor: JSTTreeCellEditor; external name 'cellEditor';
      feditable: jboolean; external name 'editable';
      flargeModel: jboolean; external name 'largeModel';
      fvisibleRowCount: jint; external name 'visibleRowCount';
      finvokesStopCellEditing: jboolean; external name 'invokesStopCellEditing';
      fscrollsOnExpand: jboolean; external name 'scrollsOnExpand';
      ftoggleClickCount: jint; external name 'toggleClickCount';
      ftreeModelListener: JSETreeModelListener; external name 'treeModelListener';
  public
    const
      CELL_RENDERER_PROPERTY = 'cellRenderer';
      TREE_MODEL_PROPERTY = 'model';
      ROOT_VISIBLE_PROPERTY = 'rootVisible';
      SHOWS_ROOT_HANDLES_PROPERTY = 'showsRootHandles';
      ROW_HEIGHT_PROPERTY = 'rowHeight';
      CELL_EDITOR_PROPERTY = 'cellEditor';
      EDITABLE_PROPERTY = 'editable';
      LARGE_MODEL_PROPERTY = 'largeModel';
      SELECTION_MODEL_PROPERTY = 'selectionModel';
      VISIBLE_ROW_COUNT_PROPERTY = 'visibleRowCount';
      INVOKES_STOP_CELL_EDITING_PROPERTY = 'invokesStopCellEditing';
      SCROLLS_ON_EXPAND_PROPERTY = 'scrollsOnExpand';
      TOGGLE_CLICK_COUNT_PROPERTY = 'toggleClickCount';
      LEAD_SELECTION_PATH_PROPERTY = 'leadSelectionPath';
      ANCHOR_SELECTION_PATH_PROPERTY = 'anchorSelectionPath';
      EXPANDS_SELECTED_PATHS_PROPERTY = 'expandsSelectedPaths';
  strict protected
    class function getDefaultTreeModel(): JSTTreeModel; static; overload;
    class function createTreeModel(para1: JLObject): JSTTreeModel; static; overload;
  public
    constructor create(); overload;
    constructor create(para1: Arr1JLObject); overload;
    constructor create(const para1: array of JLObject); overload;
    constructor create(para1: JUVector); overload;
    constructor create(para1: JUHashtable); overload;
    constructor create(para1: JSTTreeNode); overload;
    constructor create(para1: JSTTreeNode; para2: jboolean); overload;
    constructor create(para1: JSTTreeModel); overload;
    function getUI(): JSPTreeUI; overload; virtual;
    procedure setUI(para1: JSPTreeUI); overload; virtual;
    procedure updateUI(); overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
    function getCellRenderer(): JSTTreeCellRenderer; overload; virtual;
    procedure setCellRenderer(para1: JSTTreeCellRenderer); overload; virtual;
    procedure setEditable(para1: jboolean); overload; virtual;
    function isEditable(): jboolean; overload; virtual;
    procedure setCellEditor(para1: JSTTreeCellEditor); overload; virtual;
    function getCellEditor(): JSTTreeCellEditor; overload; virtual;
    function getModel(): JSTTreeModel; overload; virtual;
    procedure setModel(para1: JSTTreeModel); overload; virtual;
    function isRootVisible(): jboolean; overload; virtual;
    procedure setRootVisible(para1: jboolean); overload; virtual;
    procedure setShowsRootHandles(para1: jboolean); overload; virtual;
    function getShowsRootHandles(): jboolean; overload; virtual;
    procedure setRowHeight(para1: jint); overload; virtual;
    function getRowHeight(): jint; overload; virtual;
    function isFixedRowHeight(): jboolean; overload; virtual;
    procedure setLargeModel(para1: jboolean); overload; virtual;
    function isLargeModel(): jboolean; overload; virtual;
    procedure setInvokesStopCellEditing(para1: jboolean); overload; virtual;
    function getInvokesStopCellEditing(): jboolean; overload; virtual;
    procedure setScrollsOnExpand(para1: jboolean); overload; virtual;
    function getScrollsOnExpand(): jboolean; overload; virtual;
    procedure setToggleClickCount(para1: jint); overload; virtual;
    function getToggleClickCount(): jint; overload; virtual;
    procedure setExpandsSelectedPaths(para1: jboolean); overload; virtual;
    function getExpandsSelectedPaths(): jboolean; overload; virtual;
    procedure setDragEnabled(para1: jboolean); overload; virtual;
    function getDragEnabled(): jboolean; overload; virtual;
    procedure setDropMode(para1: JSDropMode); overload; virtual; final;
    function getDropMode(): JSDropMode; overload; virtual; final;
    function getDropLocation(): JSJTree.InnerDropLocation; overload; virtual; final;
    function isPathEditable(para1: JSTTreePath): jboolean; overload; virtual;
    function getToolTipText(para1: JAEMouseEvent): JLString; overload; virtual;
    function convertValueToText(para1: JLObject; para2: jboolean; para3: jboolean; para4: jboolean; para5: jint; para6: jboolean): JLString; overload; virtual;
    function getRowCount(): jint; overload; virtual;
    procedure setSelectionPath(para1: JSTTreePath); overload; virtual;
    procedure setSelectionPaths(para1: Arr1JSTTreePath); overload; virtual;
    procedure setSelectionPaths(var para1: array of JSTTreePath); overload; virtual;
    procedure setLeadSelectionPath(para1: JSTTreePath); overload; virtual;
    procedure setAnchorSelectionPath(para1: JSTTreePath); overload; virtual;
    procedure setSelectionRow(para1: jint); overload; virtual;
    procedure setSelectionRows(para1: Arr1jint); overload; virtual;
    procedure setSelectionRows(var para1: array of jint); overload; virtual;
    procedure addSelectionPath(para1: JSTTreePath); overload; virtual;
    procedure addSelectionPaths(para1: Arr1JSTTreePath); overload; virtual;
    procedure addSelectionPaths(var para1: array of JSTTreePath); overload; virtual;
    procedure addSelectionRow(para1: jint); overload; virtual;
    procedure addSelectionRows(para1: Arr1jint); overload; virtual;
    procedure addSelectionRows(var para1: array of jint); overload; virtual;
    function getLastSelectedPathComponent(): JLObject; overload; virtual;
    function getLeadSelectionPath(): JSTTreePath; overload; virtual;
    function getAnchorSelectionPath(): JSTTreePath; overload; virtual;
    function getSelectionPath(): JSTTreePath; overload; virtual;
    function getSelectionPaths(): Arr1JSTTreePath; overload; virtual;
    function getSelectionRows(): Arr1jint; overload; virtual;
    function getSelectionCount(): jint; overload; virtual;
    function getMinSelectionRow(): jint; overload; virtual;
    function getMaxSelectionRow(): jint; overload; virtual;
    function getLeadSelectionRow(): jint; overload; virtual;
    function isPathSelected(para1: JSTTreePath): jboolean; overload; virtual;
    function isRowSelected(para1: jint): jboolean; overload; virtual;
    function getExpandedDescendants(para1: JSTTreePath): JUEnumeration; overload; virtual;
    function hasBeenExpanded(para1: JSTTreePath): jboolean; overload; virtual;
    function isExpanded(para1: JSTTreePath): jboolean; overload; virtual;
    function isExpanded(para1: jint): jboolean; overload; virtual;
    function isCollapsed(para1: JSTTreePath): jboolean; overload; virtual;
    function isCollapsed(para1: jint): jboolean; overload; virtual;
    procedure makeVisible(para1: JSTTreePath); overload; virtual;
    function isVisible(para1: JSTTreePath): jboolean; overload; virtual;
    function getPathBounds(para1: JSTTreePath): JARectangle; overload; virtual;
    function getRowBounds(para1: jint): JARectangle; overload; virtual;
    procedure scrollPathToVisible(para1: JSTTreePath); overload; virtual;
    procedure scrollRowToVisible(para1: jint); overload; virtual;
    function getPathForRow(para1: jint): JSTTreePath; overload; virtual;
    function getRowForPath(para1: JSTTreePath): jint; overload; virtual;
    procedure expandPath(para1: JSTTreePath); overload; virtual;
    procedure expandRow(para1: jint); overload; virtual;
    procedure collapsePath(para1: JSTTreePath); overload; virtual;
    procedure collapseRow(para1: jint); overload; virtual;
    function getPathForLocation(para1: jint; para2: jint): JSTTreePath; overload; virtual;
    function getRowForLocation(para1: jint; para2: jint): jint; overload; virtual;
    function getClosestPathForLocation(para1: jint; para2: jint): JSTTreePath; overload; virtual;
    function getClosestRowForLocation(para1: jint; para2: jint): jint; overload; virtual;
    function isEditing(): jboolean; overload; virtual;
    function stopEditing(): jboolean; overload; virtual;
    procedure cancelEditing(); overload; virtual;
    procedure startEditingAtPath(para1: JSTTreePath); overload; virtual;
    function getEditingPath(): JSTTreePath; overload; virtual;
    procedure setSelectionModel(para1: JSTTreeSelectionModel); overload; virtual;
    function getSelectionModel(): JSTTreeSelectionModel; overload; virtual;
  strict protected
    function getPathBetweenRows(para1: jint; para2: jint): Arr1JSTTreePath; overload; virtual;
  public
    procedure setSelectionInterval(para1: jint; para2: jint); overload; virtual;
    procedure addSelectionInterval(para1: jint; para2: jint); overload; virtual;
    procedure removeSelectionInterval(para1: jint; para2: jint); overload; virtual;
    procedure removeSelectionPath(para1: JSTTreePath); overload; virtual;
    procedure removeSelectionPaths(para1: Arr1JSTTreePath); overload; virtual;
    procedure removeSelectionPaths(var para1: array of JSTTreePath); overload; virtual;
    procedure removeSelectionRow(para1: jint); overload; virtual;
    procedure removeSelectionRows(para1: Arr1jint); overload; virtual;
    procedure removeSelectionRows(var para1: array of jint); overload; virtual;
    procedure clearSelection(); overload; virtual;
    function isSelectionEmpty(): jboolean; overload; virtual;
    procedure addTreeExpansionListener(para1: JSETreeExpansionListener); overload; virtual;
    procedure removeTreeExpansionListener(para1: JSETreeExpansionListener); overload; virtual;
    function getTreeExpansionListeners(): Arr1JSETreeExpansionListener; overload; virtual;
    procedure addTreeWillExpandListener(para1: JSETreeWillExpandListener); overload; virtual;
    procedure removeTreeWillExpandListener(para1: JSETreeWillExpandListener); overload; virtual;
    function getTreeWillExpandListeners(): Arr1JSETreeWillExpandListener; overload; virtual;
    procedure fireTreeExpanded(para1: JSTTreePath); overload; virtual;
    procedure fireTreeCollapsed(para1: JSTTreePath); overload; virtual;
    procedure fireTreeWillExpand(para1: JSTTreePath); overload; virtual;  // throws javax.swing.tree.ExpandVetoException
    procedure fireTreeWillCollapse(para1: JSTTreePath); overload; virtual;  // throws javax.swing.tree.ExpandVetoException
    procedure addTreeSelectionListener(para1: JSETreeSelectionListener); overload; virtual;
    procedure removeTreeSelectionListener(para1: JSETreeSelectionListener); overload; virtual;
    function getTreeSelectionListeners(): Arr1JSETreeSelectionListener; overload; virtual;
  strict protected
    procedure fireValueChanged(para1: JSETreeSelectionEvent); overload; virtual;
  public
    procedure treeDidChange(); overload; virtual;
    procedure setVisibleRowCount(para1: jint); overload; virtual;
    function getVisibleRowCount(): jint; overload; virtual;
    function getNextMatch(para1: JLString; para2: jint; para3: JSTPosition.InnerBias): JSTTreePath; overload; virtual;
    function getPreferredScrollableViewportSize(): JADimension; overload; virtual;
    function getScrollableUnitIncrement(para1: JARectangle; para2: jint; para3: jint): jint; overload; virtual;
    function getScrollableBlockIncrement(para1: JARectangle; para2: jint; para3: jint): jint; overload; virtual;
    function getScrollableTracksViewportWidth(): jboolean; overload; virtual;
    function getScrollableTracksViewportHeight(): jboolean; overload; virtual;
  strict protected
    procedure setExpandedState(para1: JSTTreePath; para2: jboolean); overload; virtual;
    function getDescendantToggledPaths(para1: JSTTreePath): JUEnumeration; overload; virtual;
    procedure removeDescendantToggledPaths(para1: JUEnumeration); overload; virtual;
    procedure clearToggledPaths(); overload; virtual;
    function createTreeModelListener(): JSETreeModelListener; overload; virtual;
    function removeDescendantSelectedPaths(para1: JSTTreePath; para2: jboolean): jboolean; overload; virtual;
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJViewport = class external 'javax.swing' name 'JViewport' (JSJComponent, JAAccessible)
  public
    type
      InnerAccessibleJViewport = class;
      Arr1InnerAccessibleJViewport = array of InnerAccessibleJViewport;
      Arr2InnerAccessibleJViewport = array of Arr1InnerAccessibleJViewport;
      Arr3InnerAccessibleJViewport = array of Arr2InnerAccessibleJViewport;
      InnerViewListener = class;
      Arr1InnerViewListener = array of InnerViewListener;
      Arr2InnerViewListener = array of Arr1InnerViewListener;
      Arr3InnerViewListener = array of Arr2InnerViewListener;
      InnerAccessibleJViewport = class external 'javax.swing' name 'AccessibleJViewport' 
      end;

      InnerViewListener = class external 'javax.swing' name 'ViewListener' 
      end;

  strict protected
    var
      fisViewSizeSet: jboolean; external name 'isViewSizeSet';
      flastPaintPosition: JAPoint; external name 'lastPaintPosition';
      fbackingStore: jboolean deprecated; external name 'backingStore';
      fbackingStoreImage: JAImage; external name 'backingStoreImage';
      fscrollUnderway: jboolean; external name 'scrollUnderway';
  public
    const
      BLIT_SCROLL_MODE = 1;
      BACKINGSTORE_SCROLL_MODE = 2;
      SIMPLE_SCROLL_MODE = 0;
  public
    constructor create(); overload;
    function getUI(): JSPViewportUI; overload; virtual;
    procedure setUI(para1: JSPViewportUI); overload; virtual;
    procedure updateUI(); overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
  strict protected
    procedure addImpl(para1: JAComponent; para2: JLObject; para3: jint); overload; virtual;
  public
    procedure remove(para1: JAComponent); overload; virtual;
    procedure scrollRectToVisible(para1: JARectangle); overload; virtual;
    procedure setBorder(para1: JSBBorder); overload; virtual; final;
    function getInsets(): JAInsets; overload; virtual; final;
    function getInsets(para1: JAInsets): JAInsets; overload; virtual; final;
    function isOptimizedDrawingEnabled(): jboolean; overload; virtual;
    procedure paint(para1: JAGraphics); overload; virtual;
    procedure reshape(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure setScrollMode(para1: jint); overload; virtual;
    function getScrollMode(): jint; overload; virtual;
    function isBackingStoreEnabled(): jboolean; overload; virtual;
    procedure setBackingStoreEnabled(para1: jboolean); overload; virtual;
    function getView(): JAComponent; overload; virtual;
    procedure setView(para1: JAComponent); overload; virtual;
    function getViewSize(): JADimension; overload; virtual;
    procedure setViewSize(para1: JADimension); overload; virtual;
    function getViewPosition(): JAPoint; overload; virtual;
    procedure setViewPosition(para1: JAPoint); overload; virtual;
    function getViewRect(): JARectangle; overload; virtual;
  strict protected
    function computeBlit(para1: jint; para2: jint; para3: JAPoint; para4: JAPoint; para5: JADimension; para6: JARectangle): jboolean; overload; virtual;
  public
    function getExtentSize(): JADimension; overload; virtual;
    function toViewCoordinates(para1: JADimension): JADimension; overload; virtual;
    function toViewCoordinates(para1: JAPoint): JAPoint; overload; virtual;
    procedure setExtentSize(para1: JADimension); overload; virtual;
  strict protected
    function createViewListener(): JSJViewport.InnerViewListener; overload; virtual;
    function createLayoutManager(): JALayoutManager; overload; virtual;
  public
    procedure addChangeListener(para1: JSEChangeListener); overload; virtual;
    procedure removeChangeListener(para1: JSEChangeListener); overload; virtual;
    function getChangeListeners(): Arr1JSEChangeListener; overload; virtual;
  strict protected
    procedure fireStateChanged(); overload; virtual;
  public
    procedure repaint(para1: jlong; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
    procedure firePropertyChange(para1: JLString; para2: JLObject; para3: JLObject); overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSPBBasicInternalFrameTitlePane = class external 'javax.swing.plaf.basic' name 'BasicInternalFrameTitlePane' (JSJComponent)
  public
    type
      InnerShowSystemMenuAction = class;
      Arr1InnerShowSystemMenuAction = array of InnerShowSystemMenuAction;
      Arr2InnerShowSystemMenuAction = array of Arr1InnerShowSystemMenuAction;
      Arr3InnerShowSystemMenuAction = array of Arr2InnerShowSystemMenuAction;
      InnerHandler = class;
      Arr1InnerHandler = array of InnerHandler;
      Arr2InnerHandler = array of Arr1InnerHandler;
      Arr3InnerHandler = array of Arr2InnerHandler;
      InnerNoFocusButton = class;
      Arr1InnerNoFocusButton = array of InnerNoFocusButton;
      Arr2InnerNoFocusButton = array of Arr1InnerNoFocusButton;
      Arr3InnerNoFocusButton = array of Arr2InnerNoFocusButton;
      InnerShowSystemMenuAction = class external 'javax.swing.plaf.basic' name 'ShowSystemMenuAction' 
      end;

      InnerHandler = class external 'javax.swing.plaf.basic' name 'Handler' 
      end;

      InnerNoFocusButton = class external 'javax.swing.plaf.basic' name 'NoFocusButton' 
      end;

  public
    type
      InnerCloseAction = class;
      Arr1InnerCloseAction = array of InnerCloseAction;
      Arr2InnerCloseAction = array of Arr1InnerCloseAction;
      Arr3InnerCloseAction = array of Arr2InnerCloseAction;
      InnerIconifyAction = class;
      Arr1InnerIconifyAction = array of InnerIconifyAction;
      Arr2InnerIconifyAction = array of Arr1InnerIconifyAction;
      Arr3InnerIconifyAction = array of Arr2InnerIconifyAction;
      InnerMaximizeAction = class;
      Arr1InnerMaximizeAction = array of InnerMaximizeAction;
      Arr2InnerMaximizeAction = array of Arr1InnerMaximizeAction;
      Arr3InnerMaximizeAction = array of Arr2InnerMaximizeAction;
      InnerMoveAction = class;
      Arr1InnerMoveAction = array of InnerMoveAction;
      Arr2InnerMoveAction = array of Arr1InnerMoveAction;
      Arr3InnerMoveAction = array of Arr2InnerMoveAction;
      InnerRestoreAction = class;
      Arr1InnerRestoreAction = array of InnerRestoreAction;
      Arr2InnerRestoreAction = array of Arr1InnerRestoreAction;
      Arr3InnerRestoreAction = array of Arr2InnerRestoreAction;
      InnerSizeAction = class;
      Arr1InnerSizeAction = array of InnerSizeAction;
      Arr2InnerSizeAction = array of Arr1InnerSizeAction;
      Arr3InnerSizeAction = array of Arr2InnerSizeAction;
      InnerPropertyChangeHandler = class;
      Arr1InnerPropertyChangeHandler = array of InnerPropertyChangeHandler;
      Arr2InnerPropertyChangeHandler = array of Arr1InnerPropertyChangeHandler;
      Arr3InnerPropertyChangeHandler = array of Arr2InnerPropertyChangeHandler;
      InnerTitlePaneLayout = class;
      Arr1InnerTitlePaneLayout = array of InnerTitlePaneLayout;
      Arr2InnerTitlePaneLayout = array of Arr1InnerTitlePaneLayout;
      Arr3InnerTitlePaneLayout = array of Arr2InnerTitlePaneLayout;
      InnerSystemMenuBar = class;
      Arr1InnerSystemMenuBar = array of InnerSystemMenuBar;
      Arr2InnerSystemMenuBar = array of Arr1InnerSystemMenuBar;
      Arr3InnerSystemMenuBar = array of Arr2InnerSystemMenuBar;
      InnerCloseAction = class external 'javax.swing.plaf.basic' name 'CloseAction' 
      end;

      InnerIconifyAction = class external 'javax.swing.plaf.basic' name 'IconifyAction' 
      end;

      InnerMaximizeAction = class external 'javax.swing.plaf.basic' name 'MaximizeAction' 
      end;

      InnerMoveAction = class external 'javax.swing.plaf.basic' name 'MoveAction' 
      end;

      InnerRestoreAction = class external 'javax.swing.plaf.basic' name 'RestoreAction' 
      end;

      InnerSizeAction = class external 'javax.swing.plaf.basic' name 'SizeAction' 
      end;

      InnerPropertyChangeHandler = class external 'javax.swing.plaf.basic' name 'PropertyChangeHandler' 
      end;

      InnerTitlePaneLayout = class external 'javax.swing.plaf.basic' name 'TitlePaneLayout' 
      end;

      InnerSystemMenuBar = class external 'javax.swing.plaf.basic' name 'SystemMenuBar' 
      end;

  strict protected
    var
      fmenuBar: JSJMenuBar; external name 'menuBar';
      ficonButton: JSJButton; external name 'iconButton';
      fmaxButton: JSJButton; external name 'maxButton';
      fcloseButton: JSJButton; external name 'closeButton';
      fwindowMenu: JSJMenu; external name 'windowMenu';
      fframe: JSJInternalFrame; external name 'frame';
      fselectedTitleColor: JAColor; external name 'selectedTitleColor';
      fselectedTextColor: JAColor; external name 'selectedTextColor';
      fnotSelectedTitleColor: JAColor; external name 'notSelectedTitleColor';
      fnotSelectedTextColor: JAColor; external name 'notSelectedTextColor';
      fmaxIcon: JSIcon; external name 'maxIcon';
      fminIcon: JSIcon; external name 'minIcon';
      ficonIcon: JSIcon; external name 'iconIcon';
      fcloseIcon: JSIcon; external name 'closeIcon';
      fpropertyChangeListener: JBPropertyChangeListener; external name 'propertyChangeListener';
      fcloseAction: JSAction; external name 'closeAction';
      fmaximizeAction: JSAction; external name 'maximizeAction';
      ficonifyAction: JSAction; external name 'iconifyAction';
      frestoreAction: JSAction; external name 'restoreAction';
      fmoveAction: JSAction; external name 'moveAction';
      fsizeAction: JSAction; external name 'sizeAction';
  strict protected
    final class var
      fCLOSE_CMD: JLString; external name 'CLOSE_CMD';
      fICONIFY_CMD: JLString; external name 'ICONIFY_CMD';
      fRESTORE_CMD: JLString; external name 'RESTORE_CMD';
      fMAXIMIZE_CMD: JLString; external name 'MAXIMIZE_CMD';
      fMOVE_CMD: JLString; external name 'MOVE_CMD';
      fSIZE_CMD: JLString; external name 'SIZE_CMD';
  public
    constructor create(para1: JSJInternalFrame); overload;
  strict protected
    procedure installTitlePane(); overload; virtual;
    procedure addSubComponents(); overload; virtual;
    procedure createActions(); overload; virtual;
    procedure installListeners(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
    procedure installDefaults(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
    procedure createButtons(); overload; virtual;
    procedure setButtonIcons(); overload; virtual;
    procedure assembleSystemMenu(); overload; virtual;
    procedure addSystemMenuItems(para1: JSJMenu); overload; virtual;
    function createSystemMenu(): JSJMenu; overload; virtual;
    function createSystemMenuBar(): JSJMenuBar; overload; virtual;
    procedure showSystemMenu(); overload; virtual;
  public
    procedure paintComponent(para1: JAGraphics); overload; virtual;
  strict protected
    procedure paintTitleBackground(para1: JAGraphics); overload; virtual;
    function getTitle(para1: JLString; para2: JAFontMetrics; para3: jint): JLString; overload; virtual;
    procedure postClosingEvent(para1: JSJInternalFrame); overload; virtual;
    procedure enableActions(); overload; virtual;
    function createPropertyChangeListener(): JBPropertyChangeListener; overload; virtual;
    function createLayout(): JALayoutManager; overload; virtual;
  end;

  JSPMMetalTitlePane = class external 'javax.swing.plaf.metal' name 'MetalTitlePane' (JSJComponent)
  public
    type
      InnerCloseAction = class;
      Arr1InnerCloseAction = array of InnerCloseAction;
      Arr2InnerCloseAction = array of Arr1InnerCloseAction;
      Arr3InnerCloseAction = array of Arr2InnerCloseAction;
      InnerIconifyAction = class;
      Arr1InnerIconifyAction = array of InnerIconifyAction;
      Arr2InnerIconifyAction = array of Arr1InnerIconifyAction;
      Arr3InnerIconifyAction = array of Arr2InnerIconifyAction;
      InnerMaximizeAction = class;
      Arr1InnerMaximizeAction = array of InnerMaximizeAction;
      Arr2InnerMaximizeAction = array of Arr1InnerMaximizeAction;
      Arr3InnerMaximizeAction = array of Arr2InnerMaximizeAction;
      InnerRestoreAction = class;
      Arr1InnerRestoreAction = array of InnerRestoreAction;
      Arr2InnerRestoreAction = array of Arr1InnerRestoreAction;
      Arr3InnerRestoreAction = array of Arr2InnerRestoreAction;
      InnerPropertyChangeHandler = class;
      Arr1InnerPropertyChangeHandler = array of InnerPropertyChangeHandler;
      Arr2InnerPropertyChangeHandler = array of Arr1InnerPropertyChangeHandler;
      Arr3InnerPropertyChangeHandler = array of Arr2InnerPropertyChangeHandler;
      InnerSystemMenuBar = class;
      Arr1InnerSystemMenuBar = array of InnerSystemMenuBar;
      Arr2InnerSystemMenuBar = array of Arr1InnerSystemMenuBar;
      Arr3InnerSystemMenuBar = array of Arr2InnerSystemMenuBar;
      InnerTitlePaneLayout = class;
      Arr1InnerTitlePaneLayout = array of InnerTitlePaneLayout;
      Arr2InnerTitlePaneLayout = array of Arr1InnerTitlePaneLayout;
      Arr3InnerTitlePaneLayout = array of Arr2InnerTitlePaneLayout;
      InnerWindowHandler = class;
      Arr1InnerWindowHandler = array of InnerWindowHandler;
      Arr2InnerWindowHandler = array of Arr1InnerWindowHandler;
      Arr3InnerWindowHandler = array of Arr2InnerWindowHandler;
      InnerCloseAction = class external 'javax.swing.plaf.metal' name 'CloseAction' 
      end;

      InnerIconifyAction = class external 'javax.swing.plaf.metal' name 'IconifyAction' 
      end;

      InnerMaximizeAction = class external 'javax.swing.plaf.metal' name 'MaximizeAction' 
      end;

      InnerRestoreAction = class external 'javax.swing.plaf.metal' name 'RestoreAction' 
      end;

      InnerPropertyChangeHandler = class external 'javax.swing.plaf.metal' name 'PropertyChangeHandler' 
      end;

      InnerSystemMenuBar = class external 'javax.swing.plaf.metal' name 'SystemMenuBar' 
      end;

      InnerTitlePaneLayout = class external 'javax.swing.plaf.metal' name 'TitlePaneLayout' 
      end;

      InnerWindowHandler = class external 'javax.swing.plaf.metal' name 'WindowHandler' 
      end;

  public
    constructor create(para1: JSJRootPane; para2: JSPMMetalRootPaneUI); overload;
    function getRootPane(): JSJRootPane; overload; virtual;
    procedure addNotify(); overload; virtual;
    procedure removeNotify(); overload; virtual;
  strict protected
    function createMenuBar(): JSJMenuBar; overload; virtual;
  public
    procedure paintComponent(para1: JAGraphics); overload; virtual;
  end;

  JSTJTableHeader = class external 'javax.swing.table' name 'JTableHeader' (JSJComponent, JSETableColumnModelListener, JAAccessible)
  public
    type
      InnerAccessibleJTableHeader = class;
      Arr1InnerAccessibleJTableHeader = array of InnerAccessibleJTableHeader;
      Arr2InnerAccessibleJTableHeader = array of Arr1InnerAccessibleJTableHeader;
      Arr3InnerAccessibleJTableHeader = array of Arr2InnerAccessibleJTableHeader;
      InnerAccessibleJTableHeader = class external 'javax.swing.table' name 'AccessibleJTableHeader' 
      public
        type
          InnerAccessibleJTableHeaderEntry = class;
          Arr1InnerAccessibleJTableHeaderEntry = array of InnerAccessibleJTableHeaderEntry;
          Arr2InnerAccessibleJTableHeaderEntry = array of Arr1InnerAccessibleJTableHeaderEntry;
          Arr3InnerAccessibleJTableHeaderEntry = array of Arr2InnerAccessibleJTableHeaderEntry;
          InnerAccessibleJTableHeaderEntry = class external 'javax.swing.table' name 'AccessibleJTableHeaderEntry' 
          end;

      end;

  strict protected
    var
      ftable: JSJTable; external name 'table';
      fcolumnModel: JSTTableColumnModel; external name 'columnModel';
      freorderingAllowed: jboolean; external name 'reorderingAllowed';
      fresizingAllowed: jboolean; external name 'resizingAllowed';
      fupdateTableInRealTime: jboolean; external name 'updateTableInRealTime';
      fresizingColumn: JSTTableColumn; external name 'resizingColumn';
      fdraggedColumn: JSTTableColumn; external name 'draggedColumn';
      fdraggedDistance: jint; external name 'draggedDistance';
  public
    constructor create(); overload;
    constructor create(para1: JSTTableColumnModel); overload;
    procedure setTable(para1: JSJTable); overload; virtual;
    function getTable(): JSJTable; overload; virtual;
    procedure setReorderingAllowed(para1: jboolean); overload; virtual;
    function getReorderingAllowed(): jboolean; overload; virtual;
    procedure setResizingAllowed(para1: jboolean); overload; virtual;
    function getResizingAllowed(): jboolean; overload; virtual;
    function getDraggedColumn(): JSTTableColumn; overload; virtual;
    function getDraggedDistance(): jint; overload; virtual;
    function getResizingColumn(): JSTTableColumn; overload; virtual;
    procedure setUpdateTableInRealTime(para1: jboolean); overload; virtual;
    function getUpdateTableInRealTime(): jboolean; overload; virtual;
    procedure setDefaultRenderer(para1: JSTTableCellRenderer); overload; virtual;
    function getDefaultRenderer(): JSTTableCellRenderer; overload; virtual;
    function columnAtPoint(para1: JAPoint): jint; overload; virtual;
    function getHeaderRect(para1: jint): JARectangle; overload; virtual;
    function getToolTipText(para1: JAEMouseEvent): JLString; overload; virtual;
    function getUI(): JSPTableHeaderUI; overload; virtual;
    procedure setUI(para1: JSPTableHeaderUI); overload; virtual;
    procedure updateUI(); overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
    procedure setColumnModel(para1: JSTTableColumnModel); overload; virtual;
    function getColumnModel(): JSTTableColumnModel; overload; virtual;
    procedure columnAdded(para1: JSETableColumnModelEvent); overload; virtual;
    procedure columnRemoved(para1: JSETableColumnModelEvent); overload; virtual;
    procedure columnMoved(para1: JSETableColumnModelEvent); overload; virtual;
    procedure columnMarginChanged(para1: JSEChangeEvent); overload; virtual;
    procedure columnSelectionChanged(para1: JSEListSelectionEvent); overload; virtual;
  strict protected
    function createDefaultColumnModel(): JSTTableColumnModel; overload; virtual;
    function createDefaultRenderer(): JSTTableCellRenderer; overload; virtual;
    procedure initializeLocalVars(); overload; virtual;
  public
    procedure resizeAndRepaint(); overload; virtual;
    procedure setDraggedColumn(para1: JSTTableColumn); overload; virtual;
    procedure setDraggedDistance(para1: jint); overload; virtual;
    procedure setResizingColumn(para1: JSTTableColumn); overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSTJTextComponent = class abstract external 'javax.swing.text' name 'JTextComponent' (JSJComponent, JSScrollable, JAAccessible)
  public
    type
      InnerComposedTextCaret = class;
      Arr1InnerComposedTextCaret = array of InnerComposedTextCaret;
      Arr2InnerComposedTextCaret = array of Arr1InnerComposedTextCaret;
      Arr3InnerComposedTextCaret = array of Arr2InnerComposedTextCaret;
      InnerDefaultKeymap = class;
      Arr1InnerDefaultKeymap = array of InnerDefaultKeymap;
      Arr2InnerDefaultKeymap = array of Arr1InnerDefaultKeymap;
      Arr3InnerDefaultKeymap = array of Arr2InnerDefaultKeymap;
      InnerDefaultTransferHandler = class;
      Arr1InnerDefaultTransferHandler = array of InnerDefaultTransferHandler;
      Arr2InnerDefaultTransferHandler = array of Arr1InnerDefaultTransferHandler;
      Arr3InnerDefaultTransferHandler = array of Arr2InnerDefaultTransferHandler;
      InnerDoSetCaretPosition = class;
      Arr1InnerDoSetCaretPosition = array of InnerDoSetCaretPosition;
      Arr2InnerDoSetCaretPosition = array of Arr1InnerDoSetCaretPosition;
      Arr3InnerDoSetCaretPosition = array of Arr2InnerDoSetCaretPosition;
      InnerInputMethodRequestsHandler = class;
      Arr1InnerInputMethodRequestsHandler = array of InnerInputMethodRequestsHandler;
      Arr2InnerInputMethodRequestsHandler = array of Arr1InnerInputMethodRequestsHandler;
      Arr3InnerInputMethodRequestsHandler = array of Arr2InnerInputMethodRequestsHandler;
      InnerKeymapActionMap = class;
      Arr1InnerKeymapActionMap = array of InnerKeymapActionMap;
      Arr2InnerKeymapActionMap = array of Arr1InnerKeymapActionMap;
      Arr3InnerKeymapActionMap = array of Arr2InnerKeymapActionMap;
      InnerKeymapWrapper = class;
      Arr1InnerKeymapWrapper = array of InnerKeymapWrapper;
      Arr2InnerKeymapWrapper = array of Arr1InnerKeymapWrapper;
      Arr3InnerKeymapWrapper = array of Arr2InnerKeymapWrapper;
      InnerMutableCaretEvent = class;
      Arr1InnerMutableCaretEvent = array of InnerMutableCaretEvent;
      Arr2InnerMutableCaretEvent = array of Arr1InnerMutableCaretEvent;
      Arr3InnerMutableCaretEvent = array of Arr2InnerMutableCaretEvent;
      InnerComposedTextCaret = class external 'javax.swing.text' name 'ComposedTextCaret' 
      end;

      InnerDefaultKeymap = class external 'javax.swing.text' name 'DefaultKeymap' 
      end;

      InnerDefaultTransferHandler = class external 'javax.swing.text' name 'DefaultTransferHandler' 
      end;

      InnerDoSetCaretPosition = class external 'javax.swing.text' name 'DoSetCaretPosition' 
      end;

      InnerInputMethodRequestsHandler = class external 'javax.swing.text' name 'InputMethodRequestsHandler' 
      end;

      InnerKeymapActionMap = class external 'javax.swing.text' name 'KeymapActionMap' 
      end;

      InnerKeymapWrapper = class external 'javax.swing.text' name 'KeymapWrapper' 
      end;

      InnerMutableCaretEvent = class external 'javax.swing.text' name 'MutableCaretEvent' 
      end;

  public
    type
      InnerAccessibleJTextComponent = class;
      Arr1InnerAccessibleJTextComponent = array of InnerAccessibleJTextComponent;
      Arr2InnerAccessibleJTextComponent = array of Arr1InnerAccessibleJTextComponent;
      Arr3InnerAccessibleJTextComponent = array of Arr2InnerAccessibleJTextComponent;
      InnerKeyBinding = class;
      Arr1InnerKeyBinding = array of InnerKeyBinding;
      Arr2InnerKeyBinding = array of Arr1InnerKeyBinding;
      Arr3InnerKeyBinding = array of Arr2InnerKeyBinding;
      InnerDropLocation = class;
      Arr1InnerDropLocation = array of InnerDropLocation;
      Arr2InnerDropLocation = array of Arr1InnerDropLocation;
      Arr3InnerDropLocation = array of Arr2InnerDropLocation;
      InnerAccessibleJTextComponent = class external 'javax.swing.text' name 'AccessibleJTextComponent' 
      public
        type
          InnerIndexedSegment = class;
          Arr1InnerIndexedSegment = array of InnerIndexedSegment;
          Arr2InnerIndexedSegment = array of Arr1InnerIndexedSegment;
          Arr3InnerIndexedSegment = array of Arr2InnerIndexedSegment;
          InnerIndexedSegment = class external 'javax.swing.text' name 'IndexedSegment' 
          end;

      end;

      InnerKeyBinding = class external 'javax.swing.text' name 'KeyBinding' (JLObject)
      public
        var
          fkey: JSKeyStroke; external name 'key';
          factionName: JLString; external name 'actionName';
      public
        constructor create(para1: JSKeyStroke; para2: JLString); overload;
      end;

      InnerDropLocation = class sealed external 'javax.swing.text' name 'DropLocation' (JSTransferHandler.InnerDropLocation)
      public
        function getIndex(): jint; overload; virtual;
        function getBias(): JSTPosition.InnerBias; overload; virtual;
        function toString(): JLString; overload; virtual;
      end;

  public
    const
      FOCUS_ACCELERATOR_KEY = 'focusAcceleratorKey';
      DEFAULT_KEYMAP = 'default';
  public
    constructor create(); overload;
    function getUI(): JSPTextUI; overload; virtual;
    procedure setUI(para1: JSPTextUI); overload; virtual;
    procedure updateUI(); overload; virtual;
    procedure addCaretListener(para1: JSECaretListener); overload; virtual;
    procedure removeCaretListener(para1: JSECaretListener); overload; virtual;
    function getCaretListeners(): Arr1JSECaretListener; overload; virtual;
  strict protected
    procedure fireCaretUpdate(para1: JSECaretEvent); overload; virtual;
  public
    procedure setDocument(para1: JSTDocument); overload; virtual;
    function getDocument(): JSTDocument; overload; virtual;
    procedure setComponentOrientation(para1: JAComponentOrientation); overload; virtual;
    function getActions(): Arr1JSAction; overload; virtual;
    procedure setMargin(para1: JAInsets); overload; virtual;
    function getMargin(): JAInsets; overload; virtual;
    procedure setNavigationFilter(para1: JSTNavigationFilter); overload; virtual;
    function getNavigationFilter(): JSTNavigationFilter; overload; virtual;
    function getCaret(): JSTCaret; overload; virtual;
    procedure setCaret(para1: JSTCaret); overload; virtual;
    function getHighlighter(): JSTHighlighter; overload; virtual;
    procedure setHighlighter(para1: JSTHighlighter); overload; virtual;
    procedure setKeymap(para1: JSTKeymap); overload; virtual;
    procedure setDragEnabled(para1: jboolean); overload; virtual;
    function getDragEnabled(): jboolean; overload; virtual;
    procedure setDropMode(para1: JSDropMode); overload; virtual; final;
    function getDropMode(): JSDropMode; overload; virtual; final;
    function getDropLocation(): JSTJTextComponent.InnerDropLocation; overload; virtual; final;
    function getKeymap(): JSTKeymap; overload; virtual;
    class function addKeymap(para1: JLString; para2: JSTKeymap): JSTKeymap; static; overload;
    class function removeKeymap(para1: JLString): JSTKeymap; static; overload;
    class function getKeymap(para1: JLString): JSTKeymap; static; overload;
    class procedure loadKeymap(para1: JSTKeymap; para2: JSTJTextComponent.Arr1InnerKeyBinding; para3: Arr1JSAction); static; overload;
    class procedure loadKeymap(para1: JSTKeymap; var para2: array of JSTJTextComponent.InnerKeyBinding; var para3: array of JSAction); static; overload;
    function getCaretColor(): JAColor; overload; virtual;
    procedure setCaretColor(para1: JAColor); overload; virtual;
    function getSelectionColor(): JAColor; overload; virtual;
    procedure setSelectionColor(para1: JAColor); overload; virtual;
    function getSelectedTextColor(): JAColor; overload; virtual;
    procedure setSelectedTextColor(para1: JAColor); overload; virtual;
    function getDisabledTextColor(): JAColor; overload; virtual;
    procedure setDisabledTextColor(para1: JAColor); overload; virtual;
    procedure replaceSelection(para1: JLString); overload; virtual;
    function getText(para1: jint; para2: jint): JLString; overload; virtual;  // throws javax.swing.text.BadLocationException
    function modelToView(para1: jint): JARectangle; overload; virtual;  // throws javax.swing.text.BadLocationException
    function viewToModel(para1: JAPoint): jint; overload; virtual;
    procedure cut(); overload; virtual;
    procedure copy(); overload; virtual;
    procedure paste(); overload; virtual;
    procedure moveCaretPosition(para1: jint); overload; virtual;
    procedure setFocusAccelerator(para1: jchar); overload; virtual;
    function getFocusAccelerator(): jchar; overload; virtual;
    procedure read(para1: JIReader; para2: JLObject); overload; virtual;  // throws java.io.IOException
    procedure write(para1: JIWriter); overload; virtual;  // throws java.io.IOException
    procedure removeNotify(); overload; virtual;
    procedure setCaretPosition(para1: jint); overload; virtual;
    function getCaretPosition(): jint; overload; virtual;
    procedure setText(para1: JLString); overload; virtual;
    function getText(): JLString; overload; virtual;
    function getSelectedText(): JLString; overload; virtual;
    function isEditable(): jboolean; overload; virtual;
    procedure setEditable(para1: jboolean); overload; virtual;
    function getSelectionStart(): jint; overload; virtual;
    procedure setSelectionStart(para1: jint); overload; virtual;
    function getSelectionEnd(): jint; overload; virtual;
    procedure setSelectionEnd(para1: jint); overload; virtual;
    procedure select(para1: jint; para2: jint); overload; virtual;
    procedure selectAll(); overload; virtual;
    function getToolTipText(para1: JAEMouseEvent): JLString; overload; virtual;
    function getPreferredScrollableViewportSize(): JADimension; overload; virtual;
    function getScrollableUnitIncrement(para1: JARectangle; para2: jint; para3: jint): jint; overload; virtual;
    function getScrollableBlockIncrement(para1: JARectangle; para2: jint; para3: jint): jint; overload; virtual;
    function getScrollableTracksViewportWidth(): jboolean; overload; virtual;
    function getScrollableTracksViewportHeight(): jboolean; overload; virtual;
    function print(): jboolean; overload; virtual;  // throws java.awt.print.PrinterException
    function print(para1: JTMessageFormat; para2: JTMessageFormat): jboolean; overload; virtual;  // throws java.awt.print.PrinterException
    function print(para1: JTMessageFormat; para2: JTMessageFormat; para3: jboolean; para4: JPPrintService; para5: JPAPrintRequestAttributeSet; para6: jboolean): jboolean; overload; virtual;  // throws java.awt.print.PrinterException
    function getPrintable(para1: JTMessageFormat; para2: JTMessageFormat): JAPPrintable; overload; virtual;
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
    procedure processInputMethodEvent(para1: JAEInputMethodEvent); overload; virtual;
  public
    function getInputMethodRequests(): JAIInputMethodRequests; overload; virtual;
    procedure addInputMethodListener(para1: JAEInputMethodListener); overload; virtual;
  end;

  JSPMMetalSplitPaneDivider = class external 'javax.swing.plaf.metal' name 'MetalSplitPaneDivider' (JSPBBasicSplitPaneDivider)
  public
    type
      InnerMetalDividerLayout = class;
      Arr1InnerMetalDividerLayout = array of InnerMetalDividerLayout;
      Arr2InnerMetalDividerLayout = array of Arr1InnerMetalDividerLayout;
      Arr3InnerMetalDividerLayout = array of Arr2InnerMetalDividerLayout;
      InnerMetalDividerLayout = class external 'javax.swing.plaf.metal' name 'MetalDividerLayout' 
      end;

  public
    constructor create(para1: JSPBBasicSplitPaneUI); overload;
    procedure paint(para1: JAGraphics); overload; virtual;
  strict protected
    function createLeftOneTouchButton(): JSJButton; overload; virtual;
    function createRightOneTouchButton(): JSJButton; overload; virtual;
  end;

  JSPSSynthSplitPaneDivider = class external 'javax.swing.plaf.synth' name 'SynthSplitPaneDivider' (JSPBBasicSplitPaneDivider)
  public
    constructor create(para1: JSPBBasicSplitPaneUI); overload;
  strict protected
    procedure setMouseOver(para1: jboolean); overload; virtual;
  public
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
    procedure paint(para1: JAGraphics); overload; virtual;
  strict protected
    function createLeftOneTouchButton(): JSJButton; overload; virtual;
    function createRightOneTouchButton(): JSJButton; overload; virtual;
  end;

  JSBSoftBevelBorder = class external 'javax.swing.border' name 'SoftBevelBorder' (JSBBevelBorder)
  public
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: JAColor; para3: JAColor); overload;
    constructor create(para1: jint; para2: JAColor; para3: JAColor; para4: JAColor; para5: JAColor); overload;
    procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    function getBorderInsets(para1: JAComponent): JAInsets; overload; virtual;
    function getBorderInsets(para1: JAComponent; para2: JAInsets): JAInsets; overload; virtual;
    function isBorderOpaque(): jboolean; overload; virtual;
  end;

  JSBMatteBorder = class external 'javax.swing.border' name 'MatteBorder' (JSBEmptyBorder)
  strict protected
    var
      fcolor: JAColor; external name 'color';
      ftileIcon: JSIcon; external name 'tileIcon';
  public
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAColor); overload;
    constructor create(para1: JAInsets; para2: JAColor); overload;
    constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: JSIcon); overload;
    constructor create(para1: JAInsets; para2: JSIcon); overload;
    constructor create(para1: JSIcon); overload;
    procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    function getBorderInsets(para1: JAComponent): JAInsets; overload; virtual;
    function getBorderInsets(para1: JAComponent; para2: JAInsets): JAInsets; overload; virtual;
    function getBorderInsets(): JAInsets; overload; virtual;
    function getMatteColor(): JAColor; overload; virtual;
    function getTileIcon(): JSIcon; overload; virtual;
    function isBorderOpaque(): jboolean; overload; virtual;
  end;

  JSPMenuItemUI = class abstract external 'javax.swing.plaf' name 'MenuItemUI' (JSPButtonUI)
  public
    constructor create(); overload;
  end;

  JSPBBasicButtonUI = class external 'javax.swing.plaf.basic' name 'BasicButtonUI' (JSPButtonUI)
  strict protected
    var
      fdefaultTextIconGap: jint; external name 'defaultTextIconGap';
      fdefaultTextShiftOffset: jint; external name 'defaultTextShiftOffset';
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    function getPropertyPrefix(): JLString; overload; virtual;
  public
    procedure installUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure installDefaults(para1: JSAbstractButton); overload; virtual;
    procedure installListeners(para1: JSAbstractButton); overload; virtual;
    procedure installKeyboardActions(para1: JSAbstractButton); overload; virtual;
  public
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure uninstallKeyboardActions(para1: JSAbstractButton); overload; virtual;
    procedure uninstallListeners(para1: JSAbstractButton); overload; virtual;
    procedure uninstallDefaults(para1: JSAbstractButton); overload; virtual;
    function createButtonListener(para1: JSAbstractButton): JSPBBasicButtonListener; overload; virtual;
  public
    function getDefaultTextIconGap(para1: JSAbstractButton): jint; overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paintIcon(para1: JAGraphics; para2: JSJComponent; para3: JARectangle); overload; virtual;
    procedure paintText(para1: JAGraphics; para2: JSJComponent; para3: JARectangle; para4: JLString); overload; virtual;
    procedure paintText(para1: JAGraphics; para2: JSAbstractButton; para3: JARectangle; para4: JLString); overload; virtual;
    procedure paintFocus(para1: JAGraphics; para2: JSAbstractButton; para3: JARectangle; para4: JARectangle; para5: JARectangle); overload; virtual;
    procedure paintButtonPressed(para1: JAGraphics; para2: JSAbstractButton); overload; virtual;
    procedure clearTextShiftOffset(); overload; virtual;
    procedure setTextShiftOffset(); overload; virtual;
    function getTextShiftOffset(): jint; overload; virtual;
  public
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getBaseline(para1: JSJComponent; para2: jint; para3: jint): jint; overload; virtual;
    function getBaselineResizeBehavior(para1: JSJComponent): JAComponent.InnerBaselineResizeBehavior; overload; virtual;
  end;

  JSPMMultiButtonUI = class external 'javax.swing.plaf.multi' name 'MultiButtonUI' (JSPButtonUI)
  strict protected
    var
      fuis: JUVector; external name 'uis';
  public
    constructor create(); overload;
    function getUIs(): Arr1JSPComponentUI; overload; virtual;
    function contains(para1: JSJComponent; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getAccessibleChildrenCount(para1: JSJComponent): jint; overload; virtual;
    function getAccessibleChild(para1: JSJComponent; para2: jint): JAAccessible; overload; virtual;
  end;

  JSPBBasicColorChooserUI = class external 'javax.swing.plaf.basic' name 'BasicColorChooserUI' (JSPColorChooserUI)
  public
    type
      InnerColorTransferHandler = class;
      Arr1InnerColorTransferHandler = array of InnerColorTransferHandler;
      Arr2InnerColorTransferHandler = array of Arr1InnerColorTransferHandler;
      Arr3InnerColorTransferHandler = array of Arr2InnerColorTransferHandler;
      InnerHandler = class;
      Arr1InnerHandler = array of InnerHandler;
      Arr2InnerHandler = array of Arr1InnerHandler;
      Arr3InnerHandler = array of Arr2InnerHandler;
      InnerColorTransferHandler = class external 'javax.swing.plaf.basic' name 'ColorTransferHandler' 
      end;

      InnerHandler = class external 'javax.swing.plaf.basic' name 'Handler' 
      end;

  public
    type
      InnerPropertyHandler = class;
      Arr1InnerPropertyHandler = array of InnerPropertyHandler;
      Arr2InnerPropertyHandler = array of Arr1InnerPropertyHandler;
      Arr3InnerPropertyHandler = array of Arr2InnerPropertyHandler;
      InnerPropertyHandler = class external 'javax.swing.plaf.basic' name 'PropertyHandler' 
      end;

  strict protected
    var
      fchooser: JSJColorChooser; external name 'chooser';
      fdefaultChoosers: Arr1JSCAbstractColorChooserPanel; external name 'defaultChoosers';
      fpreviewListener: JSEChangeListener; external name 'previewListener';
      fpropertyChangeListener: JBPropertyChangeListener; external name 'propertyChangeListener';
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    function createDefaultChoosers(): Arr1JSCAbstractColorChooserPanel; overload; virtual;
    procedure uninstallDefaultChoosers(); overload; virtual;
  public
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure installPreviewPanel(); overload; virtual;
    procedure installDefaults(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
    procedure installListeners(); overload; virtual;
    function createPropertyChangeListener(): JBPropertyChangeListener; overload; virtual;
    procedure uninstallListeners(); overload; virtual;
  end;

  JSPMMultiColorChooserUI = class external 'javax.swing.plaf.multi' name 'MultiColorChooserUI' (JSPColorChooserUI)
  strict protected
    var
      fuis: JUVector; external name 'uis';
  public
    constructor create(); overload;
    function getUIs(): Arr1JSPComponentUI; overload; virtual;
    function contains(para1: JSJComponent; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getAccessibleChildrenCount(para1: JSJComponent): jint; overload; virtual;
    function getAccessibleChild(para1: JSJComponent; para2: jint): JAAccessible; overload; virtual;
  end;

  JSPBBasicComboBoxUI = class external 'javax.swing.plaf.basic' name 'BasicComboBoxUI' (JSPComboBoxUI)
  public
    type
      InnerActions = class;
      Arr1InnerActions = array of InnerActions;
      Arr2InnerActions = array of Arr1InnerActions;
      Arr3InnerActions = array of Arr2InnerActions;
      InnerDefaultKeySelectionManager = class;
      Arr1InnerDefaultKeySelectionManager = array of InnerDefaultKeySelectionManager;
      Arr2InnerDefaultKeySelectionManager = array of Arr1InnerDefaultKeySelectionManager;
      Arr3InnerDefaultKeySelectionManager = array of Arr2InnerDefaultKeySelectionManager;
      InnerHandler = class;
      Arr1InnerHandler = array of InnerHandler;
      Arr2InnerHandler = array of Arr1InnerHandler;
      Arr3InnerHandler = array of Arr2InnerHandler;
      InnerActions = class external 'javax.swing.plaf.basic' name 'Actions' 
      end;

      InnerDefaultKeySelectionManager = class external 'javax.swing.plaf.basic' name 'DefaultKeySelectionManager' 
      end;

      InnerHandler = class external 'javax.swing.plaf.basic' name 'Handler' 
      end;

  public
    type
      InnerComboBoxLayoutManager = class;
      Arr1InnerComboBoxLayoutManager = array of InnerComboBoxLayoutManager;
      Arr2InnerComboBoxLayoutManager = array of Arr1InnerComboBoxLayoutManager;
      Arr3InnerComboBoxLayoutManager = array of Arr2InnerComboBoxLayoutManager;
      InnerFocusHandler = class;
      Arr1InnerFocusHandler = array of InnerFocusHandler;
      Arr2InnerFocusHandler = array of Arr1InnerFocusHandler;
      Arr3InnerFocusHandler = array of Arr2InnerFocusHandler;
      InnerListDataHandler = class;
      Arr1InnerListDataHandler = array of InnerListDataHandler;
      Arr2InnerListDataHandler = array of Arr1InnerListDataHandler;
      Arr3InnerListDataHandler = array of Arr2InnerListDataHandler;
      InnerPropertyChangeHandler = class;
      Arr1InnerPropertyChangeHandler = array of InnerPropertyChangeHandler;
      Arr2InnerPropertyChangeHandler = array of Arr1InnerPropertyChangeHandler;
      Arr3InnerPropertyChangeHandler = array of Arr2InnerPropertyChangeHandler;
      InnerItemHandler = class;
      Arr1InnerItemHandler = array of InnerItemHandler;
      Arr2InnerItemHandler = array of Arr1InnerItemHandler;
      Arr3InnerItemHandler = array of Arr2InnerItemHandler;
      InnerKeyHandler = class;
      Arr1InnerKeyHandler = array of InnerKeyHandler;
      Arr2InnerKeyHandler = array of Arr1InnerKeyHandler;
      Arr3InnerKeyHandler = array of Arr2InnerKeyHandler;
      InnerComboBoxLayoutManager = class external 'javax.swing.plaf.basic' name 'ComboBoxLayoutManager' 
      end;

      InnerFocusHandler = class external 'javax.swing.plaf.basic' name 'FocusHandler' 
      end;

      InnerListDataHandler = class external 'javax.swing.plaf.basic' name 'ListDataHandler' 
      end;

      InnerPropertyChangeHandler = class external 'javax.swing.plaf.basic' name 'PropertyChangeHandler' 
      end;

      InnerItemHandler = class external 'javax.swing.plaf.basic' name 'ItemHandler' 
      end;

      InnerKeyHandler = class external 'javax.swing.plaf.basic' name 'KeyHandler' 
      end;

  strict protected
    var
      fcomboBox: JSJComboBox; external name 'comboBox';
      fhasFocus: jboolean; external name 'hasFocus';
      flistBox: JSJList; external name 'listBox';
      fcurrentValuePane: JSCellRendererPane; external name 'currentValuePane';
      fpopup: JSPBComboPopup; external name 'popup';
      feditor: JAComponent; external name 'editor';
      farrowButton: JSJButton; external name 'arrowButton';
      fkeyListener: JAEKeyListener; external name 'keyListener';
      ffocusListener: JAEFocusListener; external name 'focusListener';
      fpropertyChangeListener: JBPropertyChangeListener; external name 'propertyChangeListener';
      fitemListener: JAEItemListener; external name 'itemListener';
      fpopupMouseListener: JAEMouseListener; external name 'popupMouseListener';
      fpopupMouseMotionListener: JAEMouseMotionListener; external name 'popupMouseMotionListener';
      fpopupKeyListener: JAEKeyListener; external name 'popupKeyListener';
      flistDataListener: JSEListDataListener; external name 'listDataListener';
      fisMinimumSizeDirty: jboolean; external name 'isMinimumSizeDirty';
      fcachedMinimumSize: JADimension; external name 'cachedMinimumSize';
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure installDefaults(); overload; virtual;
    procedure installListeners(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
    function createPopup(): JSPBComboPopup; overload; virtual;
    function createKeyListener(): JAEKeyListener; overload; virtual;
    function createFocusListener(): JAEFocusListener; overload; virtual;
    function createListDataListener(): JSEListDataListener; overload; virtual;
    function createItemListener(): JAEItemListener; overload; virtual;
    function createPropertyChangeListener(): JBPropertyChangeListener; overload; virtual;
    function createLayoutManager(): JALayoutManager; overload; virtual;
    function createRenderer(): JSListCellRenderer; overload; virtual;
    function createEditor(): JSComboBoxEditor; overload; virtual;
    procedure installComponents(); overload; virtual;
    procedure uninstallComponents(); overload; virtual;
  public
    procedure addEditor(); overload; virtual;
    procedure removeEditor(); overload; virtual;
  strict protected
    procedure configureEditor(); overload; virtual;
    procedure unconfigureEditor(); overload; virtual;
  public
    procedure configureArrowButton(); overload; virtual;
    procedure unconfigureArrowButton(); overload; virtual;
  strict protected
    function createArrowButton(): JSJButton; overload; virtual;
  public
    function isPopupVisible(para1: JSJComboBox): jboolean; overload; virtual;
    procedure setPopupVisible(para1: JSJComboBox; para2: jboolean); overload; virtual;
    function isFocusTraversable(para1: JSJComboBox): jboolean; overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getBaseline(para1: JSJComponent; para2: jint; para3: jint): jint; overload; virtual;
    function getBaselineResizeBehavior(para1: JSJComponent): JAComponent.InnerBaselineResizeBehavior; overload; virtual;
    function getAccessibleChildrenCount(para1: JSJComponent): jint; overload; virtual;
    function getAccessibleChild(para1: JSJComponent; para2: jint): JAAccessible; overload; virtual;
  strict protected
    function isNavigationKey(para1: jint): jboolean; overload; virtual;
    procedure selectNextPossibleValue(); overload; virtual;
    procedure selectPreviousPossibleValue(); overload; virtual;
    procedure toggleOpenClose(); overload; virtual;
    function rectangleForCurrentValue(): JARectangle; overload; virtual;
    function getInsets(): JAInsets; overload; virtual;
  public
    procedure paintCurrentValue(para1: JAGraphics; para2: JARectangle; para3: jboolean); overload; virtual;
    procedure paintCurrentValueBackground(para1: JAGraphics; para2: JARectangle; para3: jboolean); overload; virtual;
  strict protected
    function getDefaultSize(): JADimension; overload; virtual;
    function getDisplaySize(): JADimension; overload; virtual;
    procedure installKeyboardActions(); overload; virtual;
    procedure uninstallKeyboardActions(); overload; virtual;
  end;

  JSPMMultiComboBoxUI = class external 'javax.swing.plaf.multi' name 'MultiComboBoxUI' (JSPComboBoxUI)
  strict protected
    var
      fuis: JUVector; external name 'uis';
  public
    constructor create(); overload;
    function getUIs(): Arr1JSPComponentUI; overload; virtual;
    function isFocusTraversable(para1: JSJComboBox): jboolean; overload; virtual;
    procedure setPopupVisible(para1: JSJComboBox; para2: jboolean); overload; virtual;
    function isPopupVisible(para1: JSJComboBox): jboolean; overload; virtual;
    function contains(para1: JSJComponent; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getAccessibleChildrenCount(para1: JSJComponent): jint; overload; virtual;
    function getAccessibleChild(para1: JSJComponent; para2: jint): JAAccessible; overload; virtual;
  end;

  JSPMMultiDesktopIconUI = class external 'javax.swing.plaf.multi' name 'MultiDesktopIconUI' (JSPDesktopIconUI)
  strict protected
    var
      fuis: JUVector; external name 'uis';
  public
    constructor create(); overload;
    function getUIs(): Arr1JSPComponentUI; overload; virtual;
    function contains(para1: JSJComponent; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getAccessibleChildrenCount(para1: JSJComponent): jint; overload; virtual;
    function getAccessibleChild(para1: JSJComponent; para2: jint): JAAccessible; overload; virtual;
  end;

  JSPBBasicDesktopPaneUI = class external 'javax.swing.plaf.basic' name 'BasicDesktopPaneUI' (JSPDesktopPaneUI)
  public
    type
      InnerActions = class;
      Arr1InnerActions = array of InnerActions;
      Arr2InnerActions = array of Arr1InnerActions;
      Arr3InnerActions = array of Arr2InnerActions;
      InnerBasicDesktopManager = class;
      Arr1InnerBasicDesktopManager = array of InnerBasicDesktopManager;
      Arr2InnerBasicDesktopManager = array of Arr1InnerBasicDesktopManager;
      Arr3InnerBasicDesktopManager = array of Arr2InnerBasicDesktopManager;
      InnerHandler = class;
      Arr1InnerHandler = array of InnerHandler;
      Arr2InnerHandler = array of Arr1InnerHandler;
      Arr3InnerHandler = array of Arr2InnerHandler;
      InnerActions = class external 'javax.swing.plaf.basic' name 'Actions' 
      end;

      InnerBasicDesktopManager = class external 'javax.swing.plaf.basic' name 'BasicDesktopManager' 
      end;

      InnerHandler = class external 'javax.swing.plaf.basic' name 'Handler' 
      end;

  public
    type
      InnerCloseAction = class;
      Arr1InnerCloseAction = array of InnerCloseAction;
      Arr2InnerCloseAction = array of Arr1InnerCloseAction;
      Arr3InnerCloseAction = array of Arr2InnerCloseAction;
      InnerMaximizeAction = class;
      Arr1InnerMaximizeAction = array of InnerMaximizeAction;
      Arr2InnerMaximizeAction = array of Arr1InnerMaximizeAction;
      Arr3InnerMaximizeAction = array of Arr2InnerMaximizeAction;
      InnerMinimizeAction = class;
      Arr1InnerMinimizeAction = array of InnerMinimizeAction;
      Arr2InnerMinimizeAction = array of Arr1InnerMinimizeAction;
      Arr3InnerMinimizeAction = array of Arr2InnerMinimizeAction;
      InnerNavigateAction = class;
      Arr1InnerNavigateAction = array of InnerNavigateAction;
      Arr2InnerNavigateAction = array of Arr1InnerNavigateAction;
      Arr3InnerNavigateAction = array of Arr2InnerNavigateAction;
      InnerOpenAction = class;
      Arr1InnerOpenAction = array of InnerOpenAction;
      Arr2InnerOpenAction = array of Arr1InnerOpenAction;
      Arr3InnerOpenAction = array of Arr2InnerOpenAction;
      InnerCloseAction = class external 'javax.swing.plaf.basic' name 'CloseAction' 
      end;

      InnerMaximizeAction = class external 'javax.swing.plaf.basic' name 'MaximizeAction' 
      end;

      InnerMinimizeAction = class external 'javax.swing.plaf.basic' name 'MinimizeAction' 
      end;

      InnerNavigateAction = class external 'javax.swing.plaf.basic' name 'NavigateAction' 
      end;

      InnerOpenAction = class external 'javax.swing.plaf.basic' name 'OpenAction' 
      end;

  strict protected
    var
      fdesktop: JSJDesktopPane; external name 'desktop';
      fdesktopManager: JSDesktopManager; external name 'desktopManager';
      fminimizeKey: JSKeyStroke deprecated; external name 'minimizeKey';
      fmaximizeKey: JSKeyStroke deprecated; external name 'maximizeKey';
      fcloseKey: JSKeyStroke deprecated; external name 'closeKey';
      fnavigateKey: JSKeyStroke deprecated; external name 'navigateKey';
      fnavigateKey2: JSKeyStroke deprecated; external name 'navigateKey2';
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    constructor create(); overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure installDefaults(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
    procedure installListeners(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
    procedure installDesktopManager(); overload; virtual;
    procedure uninstallDesktopManager(); overload; virtual;
    procedure installKeyboardActions(); overload; virtual;
    procedure registerKeyboardActions(); overload; virtual;
    procedure unregisterKeyboardActions(); overload; virtual;
    procedure uninstallKeyboardActions(); overload; virtual;
  public
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
  strict protected
    function createPropertyChangeListener(): JBPropertyChangeListener; overload; virtual;
  end;

  JSPMMultiDesktopPaneUI = class external 'javax.swing.plaf.multi' name 'MultiDesktopPaneUI' (JSPDesktopPaneUI)
  strict protected
    var
      fuis: JUVector; external name 'uis';
  public
    constructor create(); overload;
    function getUIs(): Arr1JSPComponentUI; overload; virtual;
    function contains(para1: JSJComponent; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getAccessibleChildrenCount(para1: JSJComponent): jint; overload; virtual;
    function getAccessibleChild(para1: JSJComponent; para2: jint): JAAccessible; overload; virtual;
  end;

  JSPBBasicFileChooserUI = class external 'javax.swing.plaf.basic' name 'BasicFileChooserUI' (JSPFileChooserUI)
  public
    type
      InnerGlobFilter = class;
      Arr1InnerGlobFilter = array of InnerGlobFilter;
      Arr2InnerGlobFilter = array of Arr1InnerGlobFilter;
      Arr3InnerGlobFilter = array of Arr2InnerGlobFilter;
      InnerFileTransferHandler = class;
      Arr1InnerFileTransferHandler = array of InnerFileTransferHandler;
      Arr2InnerFileTransferHandler = array of Arr1InnerFileTransferHandler;
      Arr3InnerFileTransferHandler = array of Arr2InnerFileTransferHandler;
      InnerHandler = class;
      Arr1InnerHandler = array of InnerHandler;
      Arr2InnerHandler = array of Arr1InnerHandler;
      Arr3InnerHandler = array of Arr2InnerHandler;
      InnerGlobFilter = class external 'javax.swing.plaf.basic' name 'GlobFilter' 
      end;

      InnerFileTransferHandler = class external 'javax.swing.plaf.basic' name 'FileTransferHandler' 
      public
        type
          InnerFileTransferable = class;
          Arr1InnerFileTransferable = array of InnerFileTransferable;
          Arr2InnerFileTransferable = array of Arr1InnerFileTransferable;
          Arr3InnerFileTransferable = array of Arr2InnerFileTransferable;
          InnerFileTransferable = class external 'javax.swing.plaf.basic' name 'FileTransferable' 
          end;

      end;

      InnerHandler = class external 'javax.swing.plaf.basic' name 'Handler' 
      end;

  public
    type
      InnerAcceptAllFileFilter = class;
      Arr1InnerAcceptAllFileFilter = array of InnerAcceptAllFileFilter;
      Arr2InnerAcceptAllFileFilter = array of Arr1InnerAcceptAllFileFilter;
      Arr3InnerAcceptAllFileFilter = array of Arr2InnerAcceptAllFileFilter;
      InnerApproveSelectionAction = class;
      Arr1InnerApproveSelectionAction = array of InnerApproveSelectionAction;
      Arr2InnerApproveSelectionAction = array of Arr1InnerApproveSelectionAction;
      Arr3InnerApproveSelectionAction = array of Arr2InnerApproveSelectionAction;
      InnerCancelSelectionAction = class;
      Arr1InnerCancelSelectionAction = array of InnerCancelSelectionAction;
      Arr2InnerCancelSelectionAction = array of Arr1InnerCancelSelectionAction;
      Arr3InnerCancelSelectionAction = array of Arr2InnerCancelSelectionAction;
      InnerChangeToParentDirectoryAction = class;
      Arr1InnerChangeToParentDirectoryAction = array of InnerChangeToParentDirectoryAction;
      Arr2InnerChangeToParentDirectoryAction = array of Arr1InnerChangeToParentDirectoryAction;
      Arr3InnerChangeToParentDirectoryAction = array of Arr2InnerChangeToParentDirectoryAction;
      InnerGoHomeAction = class;
      Arr1InnerGoHomeAction = array of InnerGoHomeAction;
      Arr2InnerGoHomeAction = array of Arr1InnerGoHomeAction;
      Arr3InnerGoHomeAction = array of Arr2InnerGoHomeAction;
      InnerNewFolderAction = class;
      Arr1InnerNewFolderAction = array of InnerNewFolderAction;
      Arr2InnerNewFolderAction = array of Arr1InnerNewFolderAction;
      Arr3InnerNewFolderAction = array of Arr2InnerNewFolderAction;
      InnerUpdateAction = class;
      Arr1InnerUpdateAction = array of InnerUpdateAction;
      Arr2InnerUpdateAction = array of Arr1InnerUpdateAction;
      Arr3InnerUpdateAction = array of Arr2InnerUpdateAction;
      InnerBasicFileView = class;
      Arr1InnerBasicFileView = array of InnerBasicFileView;
      Arr2InnerBasicFileView = array of Arr1InnerBasicFileView;
      Arr3InnerBasicFileView = array of Arr2InnerBasicFileView;
      InnerDoubleClickListener = class;
      Arr1InnerDoubleClickListener = array of InnerDoubleClickListener;
      Arr2InnerDoubleClickListener = array of Arr1InnerDoubleClickListener;
      Arr3InnerDoubleClickListener = array of Arr2InnerDoubleClickListener;
      InnerSelectionListener = class;
      Arr1InnerSelectionListener = array of InnerSelectionListener;
      Arr2InnerSelectionListener = array of Arr1InnerSelectionListener;
      Arr3InnerSelectionListener = array of Arr2InnerSelectionListener;
      InnerAcceptAllFileFilter = class external 'javax.swing.plaf.basic' name 'AcceptAllFileFilter' 
      end;

      InnerApproveSelectionAction = class external 'javax.swing.plaf.basic' name 'ApproveSelectionAction' 
      end;

      InnerCancelSelectionAction = class external 'javax.swing.plaf.basic' name 'CancelSelectionAction' 
      end;

      InnerChangeToParentDirectoryAction = class external 'javax.swing.plaf.basic' name 'ChangeToParentDirectoryAction' 
      end;

      InnerGoHomeAction = class external 'javax.swing.plaf.basic' name 'GoHomeAction' 
      end;

      InnerNewFolderAction = class external 'javax.swing.plaf.basic' name 'NewFolderAction' 
      end;

      InnerUpdateAction = class external 'javax.swing.plaf.basic' name 'UpdateAction' 
      end;

      InnerBasicFileView = class external 'javax.swing.plaf.basic' name 'BasicFileView' 
      end;

      InnerDoubleClickListener = class external 'javax.swing.plaf.basic' name 'DoubleClickListener' 
      end;

      InnerSelectionListener = class external 'javax.swing.plaf.basic' name 'SelectionListener' 
      end;

  strict protected
    var
      fdirectoryIcon: JSIcon; external name 'directoryIcon';
      ffileIcon: JSIcon; external name 'fileIcon';
      fcomputerIcon: JSIcon; external name 'computerIcon';
      fhardDriveIcon: JSIcon; external name 'hardDriveIcon';
      ffloppyDriveIcon: JSIcon; external name 'floppyDriveIcon';
      fnewFolderIcon: JSIcon; external name 'newFolderIcon';
      fupFolderIcon: JSIcon; external name 'upFolderIcon';
      fhomeFolderIcon: JSIcon; external name 'homeFolderIcon';
      flistViewIcon: JSIcon; external name 'listViewIcon';
      fdetailsViewIcon: JSIcon; external name 'detailsViewIcon';
      fsaveButtonMnemonic: jint; external name 'saveButtonMnemonic';
      fopenButtonMnemonic: jint; external name 'openButtonMnemonic';
      fcancelButtonMnemonic: jint; external name 'cancelButtonMnemonic';
      fupdateButtonMnemonic: jint; external name 'updateButtonMnemonic';
      fhelpButtonMnemonic: jint; external name 'helpButtonMnemonic';
      fdirectoryOpenButtonMnemonic: jint; external name 'directoryOpenButtonMnemonic';
      fsaveButtonText: JLString; external name 'saveButtonText';
      fopenButtonText: JLString; external name 'openButtonText';
      fcancelButtonText: JLString; external name 'cancelButtonText';
      fupdateButtonText: JLString; external name 'updateButtonText';
      fhelpButtonText: JLString; external name 'helpButtonText';
      fdirectoryOpenButtonText: JLString; external name 'directoryOpenButtonText';
      fsaveButtonToolTipText: JLString; external name 'saveButtonToolTipText';
      fopenButtonToolTipText: JLString; external name 'openButtonToolTipText';
      fcancelButtonToolTipText: JLString; external name 'cancelButtonToolTipText';
      fupdateButtonToolTipText: JLString; external name 'updateButtonToolTipText';
      fhelpButtonToolTipText: JLString; external name 'helpButtonToolTipText';
      fdirectoryOpenButtonToolTipText: JLString; external name 'directoryOpenButtonToolTipText';
  public
    constructor create(para1: JSJFileChooser); overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure installComponents(para1: JSJFileChooser); overload; virtual;
    procedure uninstallComponents(para1: JSJFileChooser); overload; virtual;
  strict protected
    procedure installListeners(para1: JSJFileChooser); overload; virtual;
    procedure uninstallListeners(para1: JSJFileChooser); overload; virtual;
    procedure installDefaults(para1: JSJFileChooser); overload; virtual;
    procedure installIcons(para1: JSJFileChooser); overload; virtual;
    procedure installStrings(para1: JSJFileChooser); overload; virtual;
    procedure uninstallDefaults(para1: JSJFileChooser); overload; virtual;
    procedure uninstallIcons(para1: JSJFileChooser); overload; virtual;
    procedure uninstallStrings(para1: JSJFileChooser); overload; virtual;
    procedure createModel(); overload; virtual;
  public
    function getModel(): JSPBBasicDirectoryModel; overload; virtual;
    function createPropertyChangeListener(para1: JSJFileChooser): JBPropertyChangeListener; overload; virtual;
    function getFileName(): JLString; overload; virtual;
    function getDirectoryName(): JLString; overload; virtual;
    procedure setFileName(para1: JLString); overload; virtual;
    procedure setDirectoryName(para1: JLString); overload; virtual;
    procedure rescanCurrentDirectory(para1: JSJFileChooser); overload; virtual;
    procedure ensureFileIsVisible(para1: JSJFileChooser; para2: JIFile); overload; virtual;
    function getFileChooser(): JSJFileChooser; overload; virtual;
    function getAccessoryPanel(): JSJPanel; overload; virtual;
  strict protected
    function getApproveButton(para1: JSJFileChooser): JSJButton; overload; virtual;
  public
    function getApproveButtonToolTipText(para1: JSJFileChooser): JLString; overload; virtual;
    procedure clearIconCache(); overload; virtual;
  strict protected
    function createDoubleClickListener(para1: JSJFileChooser; para2: JSJList): JAEMouseListener; overload; virtual;
  public
    function createListSelectionListener(para1: JSJFileChooser): JSEListSelectionListener; overload; virtual;
  strict protected
    function isDirectorySelected(): jboolean; overload; virtual;
    procedure setDirectorySelected(para1: jboolean); overload; virtual;
    function getDirectory(): JIFile; overload; virtual;
    procedure setDirectory(para1: JIFile); overload; virtual;
  public
    function getAcceptAllFileFilter(para1: JSJFileChooser): JSFFileFilter; overload; virtual;
    function getFileView(para1: JSJFileChooser): JSFFileView; overload; virtual;
    function getDialogTitle(para1: JSJFileChooser): JLString; overload; virtual;
    function getApproveButtonMnemonic(para1: JSJFileChooser): jint; overload; virtual;
    function getApproveButtonText(para1: JSJFileChooser): JLString; overload; virtual;
    function getNewFolderAction(): JSAction; overload; virtual;
    function getGoHomeAction(): JSAction; overload; virtual;
    function getChangeToParentDirectoryAction(): JSAction; overload; virtual;
    function getApproveSelectionAction(): JSAction; overload; virtual;
    function getCancelSelectionAction(): JSAction; overload; virtual;
    function getUpdateAction(): JSAction; overload; virtual;
  end;

  JSPMMultiFileChooserUI = class external 'javax.swing.plaf.multi' name 'MultiFileChooserUI' (JSPFileChooserUI)
  strict protected
    var
      fuis: JUVector; external name 'uis';
  public
    constructor create(); overload;
    function getUIs(): Arr1JSPComponentUI; overload; virtual;
    function getAcceptAllFileFilter(para1: JSJFileChooser): JSFFileFilter; overload; virtual;
    function getFileView(para1: JSJFileChooser): JSFFileView; overload; virtual;
    function getApproveButtonText(para1: JSJFileChooser): JLString; overload; virtual;
    function getDialogTitle(para1: JSJFileChooser): JLString; overload; virtual;
    procedure rescanCurrentDirectory(para1: JSJFileChooser); overload; virtual;
    procedure ensureFileIsVisible(para1: JSJFileChooser; para2: JIFile); overload; virtual;
    function contains(para1: JSJComponent; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getAccessibleChildrenCount(para1: JSJComponent): jint; overload; virtual;
    function getAccessibleChild(para1: JSJComponent; para2: jint): JAAccessible; overload; virtual;
  end;

  JSPBBasicInternalFrameUI = class external 'javax.swing.plaf.basic' name 'BasicInternalFrameUI' (JSPInternalFrameUI)
  public
    type
      InnerHandler = class;
      Arr1InnerHandler = array of InnerHandler;
      Arr2InnerHandler = array of Arr1InnerHandler;
      Arr3InnerHandler = array of Arr2InnerHandler;
      InnerHandler = class external 'javax.swing.plaf.basic' name 'Handler' 
      end;

  public
    type
      InnerBasicInternalFrameListener = class;
      Arr1InnerBasicInternalFrameListener = array of InnerBasicInternalFrameListener;
      Arr2InnerBasicInternalFrameListener = array of Arr1InnerBasicInternalFrameListener;
      Arr3InnerBasicInternalFrameListener = array of Arr2InnerBasicInternalFrameListener;
      InnerBorderListener = class;
      Arr1InnerBorderListener = array of InnerBorderListener;
      Arr2InnerBorderListener = array of Arr1InnerBorderListener;
      Arr3InnerBorderListener = array of Arr2InnerBorderListener;
      InnerComponentHandler = class;
      Arr1InnerComponentHandler = array of InnerComponentHandler;
      Arr2InnerComponentHandler = array of Arr1InnerComponentHandler;
      Arr3InnerComponentHandler = array of Arr2InnerComponentHandler;
      InnerGlassPaneDispatcher = class;
      Arr1InnerGlassPaneDispatcher = array of InnerGlassPaneDispatcher;
      Arr2InnerGlassPaneDispatcher = array of Arr1InnerGlassPaneDispatcher;
      Arr3InnerGlassPaneDispatcher = array of Arr2InnerGlassPaneDispatcher;
      InnerInternalFramePropertyChangeListener = class;
      Arr1InnerInternalFramePropertyChangeListener = array of InnerInternalFramePropertyChangeListener;
      Arr2InnerInternalFramePropertyChangeListener = array of Arr1InnerInternalFramePropertyChangeListener;
      Arr3InnerInternalFramePropertyChangeListener = array of Arr2InnerInternalFramePropertyChangeListener;
      InnerInternalFrameLayout = class;
      Arr1InnerInternalFrameLayout = array of InnerInternalFrameLayout;
      Arr2InnerInternalFrameLayout = array of Arr1InnerInternalFrameLayout;
      Arr3InnerInternalFrameLayout = array of Arr2InnerInternalFrameLayout;
      InnerBasicInternalFrameListener = class external 'javax.swing.plaf.basic' name 'BasicInternalFrameListener' 
      end;

      InnerBorderListener = class external 'javax.swing.plaf.basic' name 'BorderListener' 
      end;

      InnerComponentHandler = class external 'javax.swing.plaf.basic' name 'ComponentHandler' 
      end;

      InnerGlassPaneDispatcher = class external 'javax.swing.plaf.basic' name 'GlassPaneDispatcher' 
      end;

      InnerInternalFramePropertyChangeListener = class external 'javax.swing.plaf.basic' name 'InternalFramePropertyChangeListener' 
      end;

      InnerInternalFrameLayout = class external 'javax.swing.plaf.basic' name 'InternalFrameLayout' 
      end;

  strict protected
    var
      fframe: JSJInternalFrame; external name 'frame';
      fborderListener: JSEMouseInputAdapter; external name 'borderListener';
      fpropertyChangeListener: JBPropertyChangeListener; external name 'propertyChangeListener';
      finternalFrameLayout: JALayoutManager; external name 'internalFrameLayout';
      fcomponentListener: JAEComponentListener; external name 'componentListener';
      fglassPaneDispatcher: JSEMouseInputListener; external name 'glassPaneDispatcher';
      fnorthPane: JSJComponent; external name 'northPane';
      fsouthPane: JSJComponent; external name 'southPane';
      fwestPane: JSJComponent; external name 'westPane';
      feastPane: JSJComponent; external name 'eastPane';
      ftitlePane: JSPBBasicInternalFrameTitlePane; external name 'titlePane';
      fopenMenuKey: JSKeyStroke deprecated; external name 'openMenuKey';
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    constructor create(para1: JSJInternalFrame); overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure installDefaults(); overload; virtual;
    procedure installKeyboardActions(); overload; virtual;
    procedure installComponents(); overload; virtual;
    procedure installListeners(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
    procedure uninstallComponents(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
    procedure uninstallKeyboardActions(); overload; virtual;
    function createLayoutManager(): JALayoutManager; overload; virtual;
    function createPropertyChangeListener(): JBPropertyChangeListener; overload; virtual;
  public
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
  strict protected
    procedure replacePane(para1: JSJComponent; para2: JSJComponent); overload; virtual;
    procedure deinstallMouseHandlers(para1: JSJComponent); overload; virtual;
    procedure installMouseHandlers(para1: JSJComponent); overload; virtual;
    function createNorthPane(para1: JSJInternalFrame): JSJComponent; overload; virtual;
    function createSouthPane(para1: JSJInternalFrame): JSJComponent; overload; virtual;
    function createWestPane(para1: JSJInternalFrame): JSJComponent; overload; virtual;
    function createEastPane(para1: JSJInternalFrame): JSJComponent; overload; virtual;
    function createBorderListener(para1: JSJInternalFrame): JSEMouseInputAdapter; overload; virtual;
    procedure createInternalFrameListener(); overload; virtual;
    function isKeyBindingRegistered(): jboolean; overload; virtual; final;
    procedure setKeyBindingRegistered(para1: jboolean); overload; virtual; final;
  public
    function isKeyBindingActive(): jboolean; overload; virtual; final;
  strict protected
    procedure setKeyBindingActive(para1: jboolean); overload; virtual; final;
    procedure setupMenuOpenKey(); overload; virtual;
    procedure setupMenuCloseKey(); overload; virtual;
  public
    function getNorthPane(): JSJComponent; overload; virtual;
    procedure setNorthPane(para1: JSJComponent); overload; virtual;
    function getSouthPane(): JSJComponent; overload; virtual;
    procedure setSouthPane(para1: JSJComponent); overload; virtual;
    function getWestPane(): JSJComponent; overload; virtual;
    procedure setWestPane(para1: JSJComponent); overload; virtual;
    function getEastPane(): JSJComponent; overload; virtual;
    procedure setEastPane(para1: JSJComponent); overload; virtual;
  strict protected
    function getDesktopManager(): JSDesktopManager; overload; virtual;
    function createDesktopManager(): JSDesktopManager; overload; virtual;
    procedure closeFrame(para1: JSJInternalFrame); overload; virtual;
    procedure maximizeFrame(para1: JSJInternalFrame); overload; virtual;
    procedure minimizeFrame(para1: JSJInternalFrame); overload; virtual;
    procedure iconifyFrame(para1: JSJInternalFrame); overload; virtual;
    procedure deiconifyFrame(para1: JSJInternalFrame); overload; virtual;
    procedure activateFrame(para1: JSJInternalFrame); overload; virtual;
    procedure deactivateFrame(para1: JSJInternalFrame); overload; virtual;
    function createComponentListener(): JAEComponentListener; overload; virtual;
    function createGlassPaneDispatcher(): JSEMouseInputListener; overload; virtual;
  end;

  JSPMMultiInternalFrameUI = class external 'javax.swing.plaf.multi' name 'MultiInternalFrameUI' (JSPInternalFrameUI)
  strict protected
    var
      fuis: JUVector; external name 'uis';
  public
    constructor create(); overload;
    function getUIs(): Arr1JSPComponentUI; overload; virtual;
    function contains(para1: JSJComponent; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getAccessibleChildrenCount(para1: JSJComponent): jint; overload; virtual;
    function getAccessibleChild(para1: JSJComponent; para2: jint): JAAccessible; overload; virtual;
  end;

  JSPBBasicLabelUI = class external 'javax.swing.plaf.basic' name 'BasicLabelUI' (JSPLabelUI, JBPropertyChangeListener)
  public
    type
      InnerActions = class;
      Arr1InnerActions = array of InnerActions;
      Arr2InnerActions = array of Arr1InnerActions;
      Arr3InnerActions = array of Arr2InnerActions;
      InnerActions = class external 'javax.swing.plaf.basic' name 'Actions' 
      end;

  strict protected
    class var
      flabelUI: JSPBBasicLabelUI; external name 'labelUI';
  public
    constructor create(); overload;
  strict protected
    function layoutCL(para1: JSJLabel; para2: JAFontMetrics; para3: JLString; para4: JSIcon; para5: JARectangle; para6: JARectangle; para7: JARectangle): JLString; overload; virtual;
    procedure paintEnabledText(para1: JSJLabel; para2: JAGraphics; para3: JLString; para4: jint; para5: jint); overload; virtual;
    procedure paintDisabledText(para1: JSJLabel; para2: JAGraphics; para3: JLString; para4: jint; para5: jint); overload; virtual;
  public
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getBaseline(para1: JSJComponent; para2: jint; para3: jint): jint; overload; virtual;
    function getBaselineResizeBehavior(para1: JSJComponent): JAComponent.InnerBaselineResizeBehavior; overload; virtual;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure installDefaults(para1: JSJLabel); overload; virtual;
    procedure installListeners(para1: JSJLabel); overload; virtual;
    procedure installComponents(para1: JSJLabel); overload; virtual;
    procedure installKeyboardActions(para1: JSJLabel); overload; virtual;
    procedure uninstallDefaults(para1: JSJLabel); overload; virtual;
    procedure uninstallListeners(para1: JSJLabel); overload; virtual;
    procedure uninstallComponents(para1: JSJLabel); overload; virtual;
    procedure uninstallKeyboardActions(para1: JSJLabel); overload; virtual;
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  end;

  JSPMMultiLabelUI = class external 'javax.swing.plaf.multi' name 'MultiLabelUI' (JSPLabelUI)
  strict protected
    var
      fuis: JUVector; external name 'uis';
  public
    constructor create(); overload;
    function getUIs(): Arr1JSPComponentUI; overload; virtual;
    function contains(para1: JSJComponent; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getAccessibleChildrenCount(para1: JSJComponent): jint; overload; virtual;
    function getAccessibleChild(para1: JSJComponent; para2: jint): JAAccessible; overload; virtual;
  end;

  JSPBBasicListUI = class external 'javax.swing.plaf.basic' name 'BasicListUI' (JSPListUI)
  public
    type
      InnerActions = class;
      Arr1InnerActions = array of InnerActions;
      Arr2InnerActions = array of Arr1InnerActions;
      Arr3InnerActions = array of Arr2InnerActions;
      InnerHandler = class;
      Arr1InnerHandler = array of InnerHandler;
      Arr2InnerHandler = array of Arr1InnerHandler;
      Arr3InnerHandler = array of Arr2InnerHandler;
      InnerListTransferHandler = class;
      Arr1InnerListTransferHandler = array of InnerListTransferHandler;
      Arr2InnerListTransferHandler = array of Arr1InnerListTransferHandler;
      Arr3InnerListTransferHandler = array of Arr2InnerListTransferHandler;
      InnerActions = class external 'javax.swing.plaf.basic' name 'Actions' 
      end;

      InnerHandler = class external 'javax.swing.plaf.basic' name 'Handler' 
      end;

      InnerListTransferHandler = class external 'javax.swing.plaf.basic' name 'ListTransferHandler' 
      end;

  public
    type
      InnerFocusHandler = class;
      Arr1InnerFocusHandler = array of InnerFocusHandler;
      Arr2InnerFocusHandler = array of Arr1InnerFocusHandler;
      Arr3InnerFocusHandler = array of Arr2InnerFocusHandler;
      InnerMouseInputHandler = class;
      Arr1InnerMouseInputHandler = array of InnerMouseInputHandler;
      Arr2InnerMouseInputHandler = array of Arr1InnerMouseInputHandler;
      Arr3InnerMouseInputHandler = array of Arr2InnerMouseInputHandler;
      InnerListDataHandler = class;
      Arr1InnerListDataHandler = array of InnerListDataHandler;
      Arr2InnerListDataHandler = array of Arr1InnerListDataHandler;
      Arr3InnerListDataHandler = array of Arr2InnerListDataHandler;
      InnerPropertyChangeHandler = class;
      Arr1InnerPropertyChangeHandler = array of InnerPropertyChangeHandler;
      Arr2InnerPropertyChangeHandler = array of Arr1InnerPropertyChangeHandler;
      Arr3InnerPropertyChangeHandler = array of Arr2InnerPropertyChangeHandler;
      InnerListSelectionHandler = class;
      Arr1InnerListSelectionHandler = array of InnerListSelectionHandler;
      Arr2InnerListSelectionHandler = array of Arr1InnerListSelectionHandler;
      Arr3InnerListSelectionHandler = array of Arr2InnerListSelectionHandler;
      InnerFocusHandler = class external 'javax.swing.plaf.basic' name 'FocusHandler' 
      end;

      InnerMouseInputHandler = class external 'javax.swing.plaf.basic' name 'MouseInputHandler' 
      end;

      InnerListDataHandler = class external 'javax.swing.plaf.basic' name 'ListDataHandler' 
      end;

      InnerPropertyChangeHandler = class external 'javax.swing.plaf.basic' name 'PropertyChangeHandler' 
      end;

      InnerListSelectionHandler = class external 'javax.swing.plaf.basic' name 'ListSelectionHandler' 
      end;

  strict protected
    var
      flist: JSJList; external name 'list';
      frendererPane: JSCellRendererPane; external name 'rendererPane';
      ffocusListener: JAEFocusListener; external name 'focusListener';
      fmouseInputListener: JSEMouseInputListener; external name 'mouseInputListener';
      flistSelectionListener: JSEListSelectionListener; external name 'listSelectionListener';
      flistDataListener: JSEListDataListener; external name 'listDataListener';
      fpropertyChangeListener: JBPropertyChangeListener; external name 'propertyChangeListener';
      fcellHeights: Arr1jint; external name 'cellHeights';
      fcellHeight: jint; external name 'cellHeight';
      fcellWidth: jint; external name 'cellWidth';
      fupdateLayoutStateNeeded: jint; external name 'updateLayoutStateNeeded';
  strict protected
    const
      modelChanged = 1;
      selectionModelChanged = 2;
      fontChanged = 4;
      fixedCellWidthChanged = 8;
      fixedCellHeightChanged = 16;
      prototypeCellValueChanged = 32;
      cellRendererChanged = 64;
  public
    constructor create(); overload;
  strict protected
    procedure paintCell(para1: JAGraphics; para2: jint; para3: JARectangle; para4: JSListCellRenderer; para5: JSListModel; para6: JSListSelectionModel; para7: jint); overload; virtual;
  public
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getBaseline(para1: JSJComponent; para2: jint; para3: jint): jint; overload; virtual;
    function getBaselineResizeBehavior(para1: JSJComponent): JAComponent.InnerBaselineResizeBehavior; overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
  strict protected
    procedure selectPreviousIndex(); overload; virtual;
    procedure selectNextIndex(); overload; virtual;
    procedure installKeyboardActions(); overload; virtual;
    procedure uninstallKeyboardActions(); overload; virtual;
    procedure installListeners(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
    procedure installDefaults(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
  public
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    function locationToIndex(para1: JSJList; para2: JAPoint): jint; overload; virtual;
    function indexToLocation(para1: JSJList; para2: jint): JAPoint; overload; virtual;
    function getCellBounds(para1: JSJList; para2: jint; para3: jint): JARectangle; overload; virtual;
  strict protected
    function getRowHeight(para1: jint): jint; overload; virtual;
    function convertYToRow(para1: jint): jint; overload; virtual;
    function convertRowToY(para1: jint): jint; overload; virtual;
    procedure maybeUpdateLayoutState(); overload; virtual;
    procedure updateLayoutState(); overload; virtual;
    function createMouseInputListener(): JSEMouseInputListener; overload; virtual;
    function createFocusListener(): JAEFocusListener; overload; virtual;
    function createListSelectionListener(): JSEListSelectionListener; overload; virtual;
    function createListDataListener(): JSEListDataListener; overload; virtual;
    function createPropertyChangeListener(): JBPropertyChangeListener; overload; virtual;
  end;

  JSPMMultiListUI = class external 'javax.swing.plaf.multi' name 'MultiListUI' (JSPListUI)
  strict protected
    var
      fuis: JUVector; external name 'uis';
  public
    constructor create(); overload;
    function getUIs(): Arr1JSPComponentUI; overload; virtual;
    function locationToIndex(para1: JSJList; para2: JAPoint): jint; overload; virtual;
    function indexToLocation(para1: JSJList; para2: jint): JAPoint; overload; virtual;
    function getCellBounds(para1: JSJList; para2: jint; para3: jint): JARectangle; overload; virtual;
    function contains(para1: JSJComponent; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getAccessibleChildrenCount(para1: JSJComponent): jint; overload; virtual;
    function getAccessibleChild(para1: JSJComponent; para2: jint): JAAccessible; overload; virtual;
  end;

  JSPBBasicMenuBarUI = class external 'javax.swing.plaf.basic' name 'BasicMenuBarUI' (JSPMenuBarUI)
  public
    type
      InnerActions = class;
      Arr1InnerActions = array of InnerActions;
      Arr2InnerActions = array of Arr1InnerActions;
      Arr3InnerActions = array of Arr2InnerActions;
      InnerHandler = class;
      Arr1InnerHandler = array of InnerHandler;
      Arr2InnerHandler = array of Arr1InnerHandler;
      Arr3InnerHandler = array of Arr2InnerHandler;
      InnerActions = class external 'javax.swing.plaf.basic' name 'Actions' 
      end;

      InnerHandler = class external 'javax.swing.plaf.basic' name 'Handler' 
      end;

  strict protected
    var
      fmenuBar: JSJMenuBar; external name 'menuBar';
      fcontainerListener: JAEContainerListener; external name 'containerListener';
      fchangeListener: JSEChangeListener; external name 'changeListener';
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure installDefaults(); overload; virtual;
    procedure installListeners(); overload; virtual;
    procedure installKeyboardActions(); overload; virtual;
  public
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure uninstallDefaults(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
    procedure uninstallKeyboardActions(); overload; virtual;
    function createContainerListener(): JAEContainerListener; overload; virtual;
    function createChangeListener(): JSEChangeListener; overload; virtual;
  public
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
  end;

  JSPMMultiMenuBarUI = class external 'javax.swing.plaf.multi' name 'MultiMenuBarUI' (JSPMenuBarUI)
  strict protected
    var
      fuis: JUVector; external name 'uis';
  public
    constructor create(); overload;
    function getUIs(): Arr1JSPComponentUI; overload; virtual;
    function contains(para1: JSJComponent; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getAccessibleChildrenCount(para1: JSJComponent): jint; overload; virtual;
    function getAccessibleChild(para1: JSJComponent; para2: jint): JAAccessible; overload; virtual;
  end;

  JSPBBasicOptionPaneUI = class external 'javax.swing.plaf.basic' name 'BasicOptionPaneUI' (JSPOptionPaneUI)
  public
    type
      InnerActions = class;
      Arr1InnerActions = array of InnerActions;
      Arr2InnerActions = array of Arr1InnerActions;
      Arr3InnerActions = array of Arr2InnerActions;
      InnerButtonFactory = class;
      Arr1InnerButtonFactory = array of InnerButtonFactory;
      Arr2InnerButtonFactory = array of Arr1InnerButtonFactory;
      Arr3InnerButtonFactory = array of Arr2InnerButtonFactory;
      InnerHandler = class;
      Arr1InnerHandler = array of InnerHandler;
      Arr2InnerHandler = array of Arr1InnerHandler;
      Arr3InnerHandler = array of Arr2InnerHandler;
      InnerMultiplexingTextField = class;
      Arr1InnerMultiplexingTextField = array of InnerMultiplexingTextField;
      Arr2InnerMultiplexingTextField = array of Arr1InnerMultiplexingTextField;
      Arr3InnerMultiplexingTextField = array of Arr2InnerMultiplexingTextField;
      InnerActions = class external 'javax.swing.plaf.basic' name 'Actions' 
      end;

      InnerButtonFactory = class external 'javax.swing.plaf.basic' name 'ButtonFactory' 
      public
        type
          InnerConstrainedButton = class;
          Arr1InnerConstrainedButton = array of InnerConstrainedButton;
          Arr2InnerConstrainedButton = array of Arr1InnerConstrainedButton;
          Arr3InnerConstrainedButton = array of Arr2InnerConstrainedButton;
          InnerConstrainedButton = class external 'javax.swing.plaf.basic' name 'ConstrainedButton' 
          end;

      end;

      InnerHandler = class external 'javax.swing.plaf.basic' name 'Handler' 
      end;

      InnerMultiplexingTextField = class external 'javax.swing.plaf.basic' name 'MultiplexingTextField' 
      end;

  public
    type
      InnerButtonActionListener = class;
      Arr1InnerButtonActionListener = array of InnerButtonActionListener;
      Arr2InnerButtonActionListener = array of Arr1InnerButtonActionListener;
      Arr3InnerButtonActionListener = array of Arr2InnerButtonActionListener;
      InnerButtonAreaLayout = class;
      Arr1InnerButtonAreaLayout = array of InnerButtonAreaLayout;
      Arr2InnerButtonAreaLayout = array of Arr1InnerButtonAreaLayout;
      Arr3InnerButtonAreaLayout = array of Arr2InnerButtonAreaLayout;
      InnerPropertyChangeHandler = class;
      Arr1InnerPropertyChangeHandler = array of InnerPropertyChangeHandler;
      Arr2InnerPropertyChangeHandler = array of Arr1InnerPropertyChangeHandler;
      Arr3InnerPropertyChangeHandler = array of Arr2InnerPropertyChangeHandler;
      InnerButtonActionListener = class external 'javax.swing.plaf.basic' name 'ButtonActionListener' 
      end;

      InnerButtonAreaLayout = class external 'javax.swing.plaf.basic' name 'ButtonAreaLayout' (JLObject, JALayoutManager)
      strict protected
        var
          fsyncAllWidths: jboolean; external name 'syncAllWidths';
          fpadding: jint; external name 'padding';
          fcentersChildren: jboolean; external name 'centersChildren';
      public
        constructor create(para1: jboolean; para2: jint); overload;
        procedure setSyncAllWidths(para1: jboolean); overload; virtual;
        function getSyncAllWidths(): jboolean; overload; virtual;
        procedure setPadding(para1: jint); overload; virtual;
        function getPadding(): jint; overload; virtual;
        procedure setCentersChildren(para1: jboolean); overload; virtual;
        function getCentersChildren(): jboolean; overload; virtual;
        procedure addLayoutComponent(para1: JLString; para2: JAComponent); overload; virtual;
        procedure layoutContainer(para1: JAContainer); overload; virtual;
        function minimumLayoutSize(para1: JAContainer): JADimension; overload; virtual;
        function preferredLayoutSize(para1: JAContainer): JADimension; overload; virtual;
        procedure removeLayoutComponent(para1: JAComponent); overload; virtual;
      end;

      InnerPropertyChangeHandler = class external 'javax.swing.plaf.basic' name 'PropertyChangeHandler' 
      end;

  public
    const
      MinimumWidth = 262;
      MinimumHeight = 90;
  strict protected
    var
      foptionPane: JSJOptionPane; external name 'optionPane';
      fminimumSize: JADimension; external name 'minimumSize';
      finputComponent: JSJComponent; external name 'inputComponent';
      finitialFocusComponent: JAComponent; external name 'initialFocusComponent';
      fhasCustomComponents: jboolean; external name 'hasCustomComponents';
      fpropertyChangeListener: JBPropertyChangeListener; external name 'propertyChangeListener';
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure installDefaults(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
    procedure installComponents(); overload; virtual;
    procedure uninstallComponents(); overload; virtual;
    function createLayoutManager(): JALayoutManager; overload; virtual;
    procedure installListeners(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
    function createPropertyChangeListener(): JBPropertyChangeListener; overload; virtual;
    procedure installKeyboardActions(); overload; virtual;
    procedure uninstallKeyboardActions(); overload; virtual;
  public
    function getMinimumOptionPaneSize(): JADimension; overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
  strict protected
    function createMessageArea(): JAContainer; overload; virtual;
    procedure addMessageComponents(para1: JAContainer; para2: JAGridBagConstraints; para3: JLObject; para4: jint; para5: jboolean); overload; virtual;
    function getMessage(): JLObject; overload; virtual;
    procedure addIcon(para1: JAContainer); overload; virtual;
    function getIcon(): JSIcon; overload; virtual;
    function getIconForType(para1: jint): JSIcon; overload; virtual;
    function getMaxCharactersPerLineCount(): jint; overload; virtual;
    procedure burstStringInto(para1: JAContainer; para2: JLString; para3: jint); overload; virtual;
    function createSeparator(): JAContainer; overload; virtual;
    function createButtonArea(): JAContainer; overload; virtual;
    procedure addButtonComponents(para1: JAContainer; para2: Arr1JLObject; para3: jint); overload; virtual;
    procedure addButtonComponents(para1: JAContainer; var para2: array of JLObject; para3: jint); overload; virtual;
    function createButtonActionListener(para1: jint): JAEActionListener; overload; virtual;
    function getButtons(): Arr1JLObject; overload; virtual;
    function getSizeButtonsToSameWidth(): jboolean; overload; virtual;
    function getInitialValueIndex(): jint; overload; virtual;
    procedure resetInputValue(); overload; virtual;
  public
    procedure selectInitialValue(para1: JSJOptionPane); overload; virtual;
    function containsCustomComponents(para1: JSJOptionPane): jboolean; overload; virtual;
  end;

  JSPMMultiOptionPaneUI = class external 'javax.swing.plaf.multi' name 'MultiOptionPaneUI' (JSPOptionPaneUI)
  strict protected
    var
      fuis: JUVector; external name 'uis';
  public
    constructor create(); overload;
    function getUIs(): Arr1JSPComponentUI; overload; virtual;
    procedure selectInitialValue(para1: JSJOptionPane); overload; virtual;
    function containsCustomComponents(para1: JSJOptionPane): jboolean; overload; virtual;
    function contains(para1: JSJComponent; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getAccessibleChildrenCount(para1: JSJComponent): jint; overload; virtual;
    function getAccessibleChild(para1: JSJComponent; para2: jint): JAAccessible; overload; virtual;
  end;

  JSPBBasicPanelUI = class external 'javax.swing.plaf.basic' name 'BasicPanelUI' (JSPPanelUI)
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure installDefaults(para1: JSJPanel); overload; virtual;
    procedure uninstallDefaults(para1: JSJPanel); overload; virtual;
  public
    function getBaseline(para1: JSJComponent; para2: jint; para3: jint): jint; overload; virtual;
    function getBaselineResizeBehavior(para1: JSJComponent): JAComponent.InnerBaselineResizeBehavior; overload; virtual;
  end;

  JSPMMultiPanelUI = class external 'javax.swing.plaf.multi' name 'MultiPanelUI' (JSPPanelUI)
  strict protected
    var
      fuis: JUVector; external name 'uis';
  public
    constructor create(); overload;
    function getUIs(): Arr1JSPComponentUI; overload; virtual;
    function contains(para1: JSJComponent; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getAccessibleChildrenCount(para1: JSJComponent): jint; overload; virtual;
    function getAccessibleChild(para1: JSJComponent; para2: jint): JAAccessible; overload; virtual;
  end;

  JSPBBasicPopupMenuUI = class external 'javax.swing.plaf.basic' name 'BasicPopupMenuUI' (JSPPopupMenuUI)
  public
    type
      InnerActions = class;
      Arr1InnerActions = array of InnerActions;
      Arr2InnerActions = array of Arr1InnerActions;
      Arr3InnerActions = array of Arr2InnerActions;
      InnerBasicMenuKeyListener = class;
      Arr1InnerBasicMenuKeyListener = array of InnerBasicMenuKeyListener;
      Arr2InnerBasicMenuKeyListener = array of Arr1InnerBasicMenuKeyListener;
      Arr3InnerBasicMenuKeyListener = array of Arr2InnerBasicMenuKeyListener;
      InnerBasicPopupMenuListener = class;
      Arr1InnerBasicPopupMenuListener = array of InnerBasicPopupMenuListener;
      Arr2InnerBasicPopupMenuListener = array of Arr1InnerBasicPopupMenuListener;
      Arr3InnerBasicPopupMenuListener = array of Arr2InnerBasicPopupMenuListener;
      InnerMenuKeyboardHelper = class;
      Arr1InnerMenuKeyboardHelper = array of InnerMenuKeyboardHelper;
      Arr2InnerMenuKeyboardHelper = array of Arr1InnerMenuKeyboardHelper;
      Arr3InnerMenuKeyboardHelper = array of Arr2InnerMenuKeyboardHelper;
      InnerMouseGrabber = class;
      Arr1InnerMouseGrabber = array of InnerMouseGrabber;
      Arr2InnerMouseGrabber = array of Arr1InnerMouseGrabber;
      Arr3InnerMouseGrabber = array of Arr2InnerMouseGrabber;
      InnerActions = class external 'javax.swing.plaf.basic' name 'Actions' 
      end;

      InnerBasicMenuKeyListener = class external 'javax.swing.plaf.basic' name 'BasicMenuKeyListener' 
      end;

      InnerBasicPopupMenuListener = class external 'javax.swing.plaf.basic' name 'BasicPopupMenuListener' 
      end;

      InnerMenuKeyboardHelper = class external 'javax.swing.plaf.basic' name 'MenuKeyboardHelper' 
      end;

      InnerMouseGrabber = class external 'javax.swing.plaf.basic' name 'MouseGrabber' 
      end;

  strict protected
    var
      fpopupMenu: JSJPopupMenu; external name 'popupMenu';
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    constructor create(); overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure installDefaults(); overload; virtual;
  strict protected
    procedure installListeners(); overload; virtual;
    procedure installKeyboardActions(); overload; virtual;
  public
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure uninstallDefaults(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
    procedure uninstallKeyboardActions(); overload; virtual;
  public
    function isPopupTrigger(para1: JAEMouseEvent): jboolean; overload; virtual;
  end;

  JSPMMultiPopupMenuUI = class external 'javax.swing.plaf.multi' name 'MultiPopupMenuUI' (JSPPopupMenuUI)
  strict protected
    var
      fuis: JUVector; external name 'uis';
  public
    constructor create(); overload;
    function getUIs(): Arr1JSPComponentUI; overload; virtual;
    function isPopupTrigger(para1: JAEMouseEvent): jboolean; overload; virtual;
    function getPopup(para1: JSJPopupMenu; para2: jint; para3: jint): JSPopup; overload; virtual;
    function contains(para1: JSJComponent; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getAccessibleChildrenCount(para1: JSJComponent): jint; overload; virtual;
    function getAccessibleChild(para1: JSJComponent; para2: jint): JAAccessible; overload; virtual;
  end;

  JSPBBasicProgressBarUI = class external 'javax.swing.plaf.basic' name 'BasicProgressBarUI' (JSPProgressBarUI)
  public
    type
      InnerAnimator = class;
      Arr1InnerAnimator = array of InnerAnimator;
      Arr2InnerAnimator = array of Arr1InnerAnimator;
      Arr3InnerAnimator = array of Arr2InnerAnimator;
      InnerHandler = class;
      Arr1InnerHandler = array of InnerHandler;
      Arr2InnerHandler = array of Arr1InnerHandler;
      Arr3InnerHandler = array of Arr2InnerHandler;
      InnerAnimator = class external 'javax.swing.plaf.basic' name 'Animator' 
      end;

      InnerHandler = class external 'javax.swing.plaf.basic' name 'Handler' 
      end;

  public
    type
      InnerChangeHandler = class;
      Arr1InnerChangeHandler = array of InnerChangeHandler;
      Arr2InnerChangeHandler = array of Arr1InnerChangeHandler;
      Arr3InnerChangeHandler = array of Arr2InnerChangeHandler;
      InnerChangeHandler = class external 'javax.swing.plaf.basic' name 'ChangeHandler' 
      end;

  strict protected
    var
      fprogressBar: JSJProgressBar; external name 'progressBar';
      fchangeListener: JSEChangeListener; external name 'changeListener';
      fboxRect: JARectangle; external name 'boxRect';
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure installDefaults(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
    procedure installListeners(); overload; virtual;
    procedure startAnimationTimer(); overload; virtual;
    procedure stopAnimationTimer(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
  public
    function getBaseline(para1: JSJComponent; para2: jint; para3: jint): jint; overload; virtual;
    function getBaselineResizeBehavior(para1: JSJComponent): JAComponent.InnerBaselineResizeBehavior; overload; virtual;
  strict protected
    function getPreferredInnerHorizontal(): JADimension; overload; virtual;
    function getPreferredInnerVertical(): JADimension; overload; virtual;
    function getSelectionForeground(): JAColor; overload; virtual;
    function getSelectionBackground(): JAColor; overload; virtual;
    function getCellLength(): jint; overload; virtual;
    procedure setCellLength(para1: jint); overload; virtual;
    function getCellSpacing(): jint; overload; virtual;
    procedure setCellSpacing(para1: jint); overload; virtual;
    function getAmountFull(para1: JAInsets; para2: jint; para3: jint): jint; overload; virtual;
  public
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    function getBox(para1: JARectangle): JARectangle; overload; virtual;
    function getBoxLength(para1: jint; para2: jint): jint; overload; virtual;
    procedure paintIndeterminate(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paintDeterminate(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paintString(para1: JAGraphics; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: JAInsets); overload; virtual;
    function getStringPlacement(para1: JAGraphics; para2: JLString; para3: jint; para4: jint; para5: jint; para6: jint): JAPoint; overload; virtual;
  public
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
  strict protected
    function getAnimationIndex(): jint; overload; virtual;
    function getFrameCount(): jint; overload; virtual; final;
    procedure setAnimationIndex(para1: jint); overload; virtual;
    procedure incrementAnimationIndex(); overload; virtual;
  end;

  JSPMMultiProgressBarUI = class external 'javax.swing.plaf.multi' name 'MultiProgressBarUI' (JSPProgressBarUI)
  strict protected
    var
      fuis: JUVector; external name 'uis';
  public
    constructor create(); overload;
    function getUIs(): Arr1JSPComponentUI; overload; virtual;
    function contains(para1: JSJComponent; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getAccessibleChildrenCount(para1: JSJComponent): jint; overload; virtual;
    function getAccessibleChild(para1: JSJComponent; para2: jint): JAAccessible; overload; virtual;
  end;

  JSPBBasicRootPaneUI = class external 'javax.swing.plaf.basic' name 'BasicRootPaneUI' (JSPRootPaneUI, JBPropertyChangeListener)
  public
    type
      InnerActions = class;
      Arr1InnerActions = array of InnerActions;
      Arr2InnerActions = array of Arr1InnerActions;
      Arr3InnerActions = array of Arr2InnerActions;
      InnerRootPaneInputMap = class;
      Arr1InnerRootPaneInputMap = array of InnerRootPaneInputMap;
      Arr2InnerRootPaneInputMap = array of Arr1InnerRootPaneInputMap;
      Arr3InnerRootPaneInputMap = array of Arr2InnerRootPaneInputMap;
      InnerActions = class external 'javax.swing.plaf.basic' name 'Actions' 
      end;

      InnerRootPaneInputMap = class external 'javax.swing.plaf.basic' name 'RootPaneInputMap' 
      end;

  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure installDefaults(para1: JSJRootPane); overload; virtual;
    procedure installComponents(para1: JSJRootPane); overload; virtual;
    procedure installListeners(para1: JSJRootPane); overload; virtual;
    procedure installKeyboardActions(para1: JSJRootPane); overload; virtual;
    procedure uninstallDefaults(para1: JSJRootPane); overload; virtual;
    procedure uninstallComponents(para1: JSJRootPane); overload; virtual;
    procedure uninstallListeners(para1: JSJRootPane); overload; virtual;
    procedure uninstallKeyboardActions(para1: JSJRootPane); overload; virtual;
  public
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  end;

  JSPMMultiRootPaneUI = class external 'javax.swing.plaf.multi' name 'MultiRootPaneUI' (JSPRootPaneUI)
  strict protected
    var
      fuis: JUVector; external name 'uis';
  public
    constructor create(); overload;
    function getUIs(): Arr1JSPComponentUI; overload; virtual;
    function contains(para1: JSJComponent; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getAccessibleChildrenCount(para1: JSJComponent): jint; overload; virtual;
    function getAccessibleChild(para1: JSJComponent; para2: jint): JAAccessible; overload; virtual;
  end;

  JSPBBasicScrollBarUI = class external 'javax.swing.plaf.basic' name 'BasicScrollBarUI' (JSPScrollBarUI, JALayoutManager, JSSwingConstants)
  public
    type
      InnerActions = class;
      Arr1InnerActions = array of InnerActions;
      Arr2InnerActions = array of Arr1InnerActions;
      Arr3InnerActions = array of Arr2InnerActions;
      InnerHandler = class;
      Arr1InnerHandler = array of InnerHandler;
      Arr2InnerHandler = array of Arr1InnerHandler;
      Arr3InnerHandler = array of Arr2InnerHandler;
      InnerActions = class external 'javax.swing.plaf.basic' name 'Actions' 
      end;

      InnerHandler = class external 'javax.swing.plaf.basic' name 'Handler' 
      end;

  public
    type
      InnerArrowButtonListener = class;
      Arr1InnerArrowButtonListener = array of InnerArrowButtonListener;
      Arr2InnerArrowButtonListener = array of Arr1InnerArrowButtonListener;
      Arr3InnerArrowButtonListener = array of Arr2InnerArrowButtonListener;
      InnerPropertyChangeHandler = class;
      Arr1InnerPropertyChangeHandler = array of InnerPropertyChangeHandler;
      Arr2InnerPropertyChangeHandler = array of Arr1InnerPropertyChangeHandler;
      Arr3InnerPropertyChangeHandler = array of Arr2InnerPropertyChangeHandler;
      InnerModelListener = class;
      Arr1InnerModelListener = array of InnerModelListener;
      Arr2InnerModelListener = array of Arr1InnerModelListener;
      Arr3InnerModelListener = array of Arr2InnerModelListener;
      InnerScrollListener = class;
      Arr1InnerScrollListener = array of InnerScrollListener;
      Arr2InnerScrollListener = array of Arr1InnerScrollListener;
      Arr3InnerScrollListener = array of Arr2InnerScrollListener;
      InnerTrackListener = class;
      Arr1InnerTrackListener = array of InnerTrackListener;
      Arr2InnerTrackListener = array of Arr1InnerTrackListener;
      Arr3InnerTrackListener = array of Arr2InnerTrackListener;
      InnerArrowButtonListener = class external 'javax.swing.plaf.basic' name 'ArrowButtonListener' 
      end;

      InnerPropertyChangeHandler = class external 'javax.swing.plaf.basic' name 'PropertyChangeHandler' 
      end;

      InnerModelListener = class external 'javax.swing.plaf.basic' name 'ModelListener' 
      end;

      InnerScrollListener = class external 'javax.swing.plaf.basic' name 'ScrollListener' 
      end;

      InnerTrackListener = class external 'javax.swing.plaf.basic' name 'TrackListener' 
      end;

  strict protected
    var
      fminimumThumbSize: JADimension; external name 'minimumThumbSize';
      fmaximumThumbSize: JADimension; external name 'maximumThumbSize';
      fthumbHighlightColor: JAColor; external name 'thumbHighlightColor';
      fthumbLightShadowColor: JAColor; external name 'thumbLightShadowColor';
      fthumbDarkShadowColor: JAColor; external name 'thumbDarkShadowColor';
      fthumbColor: JAColor; external name 'thumbColor';
      ftrackColor: JAColor; external name 'trackColor';
      ftrackHighlightColor: JAColor; external name 'trackHighlightColor';
      fscrollbar: JSJScrollBar; external name 'scrollbar';
      fincrButton: JSJButton; external name 'incrButton';
      fdecrButton: JSJButton; external name 'decrButton';
      fisDragging: jboolean; external name 'isDragging';
      ftrackListener: JSPBBasicScrollBarUI.InnerTrackListener; external name 'trackListener';
      fbuttonListener: JSPBBasicScrollBarUI.InnerArrowButtonListener; external name 'buttonListener';
      fmodelListener: JSPBBasicScrollBarUI.InnerModelListener; external name 'modelListener';
      fthumbRect: JARectangle; external name 'thumbRect';
      ftrackRect: JARectangle; external name 'trackRect';
      ftrackHighlight: jint; external name 'trackHighlight';
  strict protected
    const
      NO_HIGHLIGHT = 0;
      DECREASE_HIGHLIGHT = 1;
      INCREASE_HIGHLIGHT = 2;
  strict protected
    var
      fscrollListener: JSPBBasicScrollBarUI.InnerScrollListener; external name 'scrollListener';
      fpropertyChangeListener: JBPropertyChangeListener; external name 'propertyChangeListener';
      fscrollTimer: JSTimer; external name 'scrollTimer';
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    procedure configureScrollBarColors(); overload; virtual;
  public
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure installDefaults(); overload; virtual;
    procedure installComponents(); overload; virtual;
    procedure uninstallComponents(); overload; virtual;
    procedure installListeners(); overload; virtual;
    procedure installKeyboardActions(); overload; virtual;
    procedure uninstallKeyboardActions(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
    function createTrackListener(): JSPBBasicScrollBarUI.InnerTrackListener; overload; virtual;
    function createArrowButtonListener(): JSPBBasicScrollBarUI.InnerArrowButtonListener; overload; virtual;
    function createModelListener(): JSPBBasicScrollBarUI.InnerModelListener; overload; virtual;
    function createScrollListener(): JSPBBasicScrollBarUI.InnerScrollListener; overload; virtual;
    function createPropertyChangeListener(): JBPropertyChangeListener; overload; virtual;
    procedure setThumbRollover(para1: jboolean); overload; virtual;
  public
    function isThumbRollover(): jboolean; overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
  strict protected
    function createDecreaseButton(para1: jint): JSJButton; overload; virtual;
    function createIncreaseButton(para1: jint): JSJButton; overload; virtual;
    procedure paintDecreaseHighlight(para1: JAGraphics); overload; virtual;
    procedure paintIncreaseHighlight(para1: JAGraphics); overload; virtual;
    procedure paintTrack(para1: JAGraphics; para2: JSJComponent; para3: JARectangle); overload; virtual;
    procedure paintThumb(para1: JAGraphics; para2: JSJComponent; para3: JARectangle); overload; virtual;
    function getMinimumThumbSize(): JADimension; overload; virtual;
    function getMaximumThumbSize(): JADimension; overload; virtual;
  public
    procedure addLayoutComponent(para1: JLString; para2: JAComponent); overload; virtual;
    procedure removeLayoutComponent(para1: JAComponent); overload; virtual;
    function preferredLayoutSize(para1: JAContainer): JADimension; overload; virtual;
    function minimumLayoutSize(para1: JAContainer): JADimension; overload; virtual;
  strict protected
    procedure layoutVScrollbar(para1: JSJScrollBar); overload; virtual;
    procedure layoutHScrollbar(para1: JSJScrollBar); overload; virtual;
  public
    procedure layoutContainer(para1: JAContainer); overload; virtual;
  strict protected
    procedure setThumbBounds(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
    function getThumbBounds(): JARectangle; overload; virtual;
    function getTrackBounds(): JARectangle; overload; virtual;
    procedure scrollByBlock(para1: jint); overload; virtual;
    procedure scrollByUnit(para1: jint); overload; virtual;
  public
    function getSupportsAbsolutePositioning(): jboolean; overload; virtual;
  end;

  JSPMMultiScrollBarUI = class external 'javax.swing.plaf.multi' name 'MultiScrollBarUI' (JSPScrollBarUI)
  strict protected
    var
      fuis: JUVector; external name 'uis';
  public
    constructor create(); overload;
    function getUIs(): Arr1JSPComponentUI; overload; virtual;
    function contains(para1: JSJComponent; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getAccessibleChildrenCount(para1: JSJComponent): jint; overload; virtual;
    function getAccessibleChild(para1: JSJComponent; para2: jint): JAAccessible; overload; virtual;
  end;

  JSPBBasicScrollPaneUI = class external 'javax.swing.plaf.basic' name 'BasicScrollPaneUI' (JSPScrollPaneUI, JSScrollPaneConstants)
  public
    type
      InnerActions = class;
      Arr1InnerActions = array of InnerActions;
      Arr2InnerActions = array of Arr1InnerActions;
      Arr3InnerActions = array of Arr2InnerActions;
      InnerHandler = class;
      Arr1InnerHandler = array of InnerHandler;
      Arr2InnerHandler = array of Arr1InnerHandler;
      Arr3InnerHandler = array of Arr2InnerHandler;
      InnerActions = class external 'javax.swing.plaf.basic' name 'Actions' 
      end;

      InnerHandler = class external 'javax.swing.plaf.basic' name 'Handler' 
      end;

  public
    type
      InnerHSBChangeListener = class;
      Arr1InnerHSBChangeListener = array of InnerHSBChangeListener;
      Arr2InnerHSBChangeListener = array of Arr1InnerHSBChangeListener;
      Arr3InnerHSBChangeListener = array of Arr2InnerHSBChangeListener;
      InnerVSBChangeListener = class;
      Arr1InnerVSBChangeListener = array of InnerVSBChangeListener;
      Arr2InnerVSBChangeListener = array of Arr1InnerVSBChangeListener;
      Arr3InnerVSBChangeListener = array of Arr2InnerVSBChangeListener;
      InnerViewportChangeHandler = class;
      Arr1InnerViewportChangeHandler = array of InnerViewportChangeHandler;
      Arr2InnerViewportChangeHandler = array of Arr1InnerViewportChangeHandler;
      Arr3InnerViewportChangeHandler = array of Arr2InnerViewportChangeHandler;
      InnerPropertyChangeHandler = class;
      Arr1InnerPropertyChangeHandler = array of InnerPropertyChangeHandler;
      Arr2InnerPropertyChangeHandler = array of Arr1InnerPropertyChangeHandler;
      Arr3InnerPropertyChangeHandler = array of Arr2InnerPropertyChangeHandler;
      InnerMouseWheelHandler = class;
      Arr1InnerMouseWheelHandler = array of InnerMouseWheelHandler;
      Arr2InnerMouseWheelHandler = array of Arr1InnerMouseWheelHandler;
      Arr3InnerMouseWheelHandler = array of Arr2InnerMouseWheelHandler;
      InnerHSBChangeListener = class external 'javax.swing.plaf.basic' name 'HSBChangeListener' 
      end;

      InnerVSBChangeListener = class external 'javax.swing.plaf.basic' name 'VSBChangeListener' 
      end;

      InnerViewportChangeHandler = class external 'javax.swing.plaf.basic' name 'ViewportChangeHandler' 
      end;

      InnerPropertyChangeHandler = class external 'javax.swing.plaf.basic' name 'PropertyChangeHandler' 
      end;

      InnerMouseWheelHandler = class external 'javax.swing.plaf.basic' name 'MouseWheelHandler' 
      end;

  strict protected
    var
      fscrollpane: JSJScrollPane; external name 'scrollpane';
      fvsbChangeListener: JSEChangeListener; external name 'vsbChangeListener';
      fhsbChangeListener: JSEChangeListener; external name 'hsbChangeListener';
      fviewportChangeListener: JSEChangeListener; external name 'viewportChangeListener';
      fspPropertyChangeListener: JBPropertyChangeListener; external name 'spPropertyChangeListener';
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
  strict protected
    procedure installDefaults(para1: JSJScrollPane); overload; virtual;
    procedure installListeners(para1: JSJScrollPane); overload; virtual;
    procedure installKeyboardActions(para1: JSJScrollPane); overload; virtual;
  public
    procedure installUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure uninstallDefaults(para1: JSJScrollPane); overload; virtual;
    procedure uninstallListeners(para1: JSJComponent); overload; virtual;
    procedure uninstallKeyboardActions(para1: JSJScrollPane); overload; virtual;
  public
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure syncScrollPaneWithViewport(); overload; virtual;
  public
    function getBaseline(para1: JSJComponent; para2: jint; para3: jint): jint; overload; virtual;
    function getBaselineResizeBehavior(para1: JSJComponent): JAComponent.InnerBaselineResizeBehavior; overload; virtual;
  strict protected
    function createViewportChangeListener(): JSEChangeListener; overload; virtual;
    function createHSBChangeListener(): JSEChangeListener; overload; virtual;
    function createVSBChangeListener(): JSEChangeListener; overload; virtual;
    function createMouseWheelListener(): JAEMouseWheelListener; overload; virtual;
    procedure updateScrollBarDisplayPolicy(para1: JBPropertyChangeEvent); overload; virtual;
    procedure updateViewport(para1: JBPropertyChangeEvent); overload; virtual;
    procedure updateRowHeader(para1: JBPropertyChangeEvent); overload; virtual;
    procedure updateColumnHeader(para1: JBPropertyChangeEvent); overload; virtual;
    function createPropertyChangeListener(): JBPropertyChangeListener; overload; virtual;
  end;

  JSPMMultiScrollPaneUI = class external 'javax.swing.plaf.multi' name 'MultiScrollPaneUI' (JSPScrollPaneUI)
  strict protected
    var
      fuis: JUVector; external name 'uis';
  public
    constructor create(); overload;
    function getUIs(): Arr1JSPComponentUI; overload; virtual;
    function contains(para1: JSJComponent; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getAccessibleChildrenCount(para1: JSJComponent): jint; overload; virtual;
    function getAccessibleChild(para1: JSJComponent; para2: jint): JAAccessible; overload; virtual;
  end;

  JSPBBasicSeparatorUI = class external 'javax.swing.plaf.basic' name 'BasicSeparatorUI' (JSPSeparatorUI)
  strict protected
    var
      fshadow: JAColor; external name 'shadow';
      fhighlight: JAColor; external name 'highlight';
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure installDefaults(para1: JSJSeparator); overload; virtual;
    procedure uninstallDefaults(para1: JSJSeparator); overload; virtual;
    procedure installListeners(para1: JSJSeparator); overload; virtual;
    procedure uninstallListeners(para1: JSJSeparator); overload; virtual;
  public
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
  end;

  JSPMMultiSeparatorUI = class external 'javax.swing.plaf.multi' name 'MultiSeparatorUI' (JSPSeparatorUI)
  strict protected
    var
      fuis: JUVector; external name 'uis';
  public
    constructor create(); overload;
    function getUIs(): Arr1JSPComponentUI; overload; virtual;
    function contains(para1: JSJComponent; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getAccessibleChildrenCount(para1: JSJComponent): jint; overload; virtual;
    function getAccessibleChild(para1: JSJComponent; para2: jint): JAAccessible; overload; virtual;
  end;

  JSPSSynthSeparatorUI = class external 'javax.swing.plaf.synth' name 'SynthSeparatorUI' (JSPSeparatorUI, JBPropertyChangeListener, SSPSSynthUI)
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallDefaults(para1: JSJComponent); overload; virtual;
    procedure installDefaults(para1: JSJSeparator); overload; virtual;
    procedure uninstallDefaults(para1: JSJSeparator); overload; virtual;
    procedure installListeners(para1: JSJSeparator); overload; virtual;
    procedure uninstallListeners(para1: JSJSeparator); overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paint(para1: JSPSSynthContext; para2: JAGraphics); overload; virtual;
  public
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  end;

  JSPBBasicSliderUI = class external 'javax.swing.plaf.basic' name 'BasicSliderUI' (JSPSliderUI)
  public
    type
      InnerSharedActionScroller = class;
      Arr1InnerSharedActionScroller = array of InnerSharedActionScroller;
      Arr2InnerSharedActionScroller = array of Arr1InnerSharedActionScroller;
      Arr3InnerSharedActionScroller = array of Arr2InnerSharedActionScroller;
      InnerActions = class;
      Arr1InnerActions = array of InnerActions;
      Arr2InnerActions = array of Arr1InnerActions;
      Arr3InnerActions = array of Arr2InnerActions;
      InnerHandler = class;
      Arr1InnerHandler = array of InnerHandler;
      Arr2InnerHandler = array of Arr1InnerHandler;
      Arr3InnerHandler = array of Arr2InnerHandler;
      InnerSharedActionScroller = class external 'javax.swing.plaf.basic' name 'SharedActionScroller' 
      end;

      InnerActions = class external 'javax.swing.plaf.basic' name 'Actions' 
      end;

      InnerHandler = class external 'javax.swing.plaf.basic' name 'Handler' 
      end;

  public
    type
      InnerActionScroller = class;
      Arr1InnerActionScroller = array of InnerActionScroller;
      Arr2InnerActionScroller = array of Arr1InnerActionScroller;
      Arr3InnerActionScroller = array of Arr2InnerActionScroller;
      InnerChangeHandler = class;
      Arr1InnerChangeHandler = array of InnerChangeHandler;
      Arr2InnerChangeHandler = array of Arr1InnerChangeHandler;
      Arr3InnerChangeHandler = array of Arr2InnerChangeHandler;
      InnerComponentHandler = class;
      Arr1InnerComponentHandler = array of InnerComponentHandler;
      Arr2InnerComponentHandler = array of Arr1InnerComponentHandler;
      Arr3InnerComponentHandler = array of Arr2InnerComponentHandler;
      InnerFocusHandler = class;
      Arr1InnerFocusHandler = array of InnerFocusHandler;
      Arr2InnerFocusHandler = array of Arr1InnerFocusHandler;
      Arr3InnerFocusHandler = array of Arr2InnerFocusHandler;
      InnerPropertyChangeHandler = class;
      Arr1InnerPropertyChangeHandler = array of InnerPropertyChangeHandler;
      Arr2InnerPropertyChangeHandler = array of Arr1InnerPropertyChangeHandler;
      Arr3InnerPropertyChangeHandler = array of Arr2InnerPropertyChangeHandler;
      InnerScrollListener = class;
      Arr1InnerScrollListener = array of InnerScrollListener;
      Arr2InnerScrollListener = array of Arr1InnerScrollListener;
      Arr3InnerScrollListener = array of Arr2InnerScrollListener;
      InnerTrackListener = class;
      Arr1InnerTrackListener = array of InnerTrackListener;
      Arr2InnerTrackListener = array of Arr1InnerTrackListener;
      Arr3InnerTrackListener = array of Arr2InnerTrackListener;
      InnerActionScroller = class external 'javax.swing.plaf.basic' name 'ActionScroller' 
      end;

      InnerChangeHandler = class external 'javax.swing.plaf.basic' name 'ChangeHandler' 
      end;

      InnerComponentHandler = class external 'javax.swing.plaf.basic' name 'ComponentHandler' 
      end;

      InnerFocusHandler = class external 'javax.swing.plaf.basic' name 'FocusHandler' 
      end;

      InnerPropertyChangeHandler = class external 'javax.swing.plaf.basic' name 'PropertyChangeHandler' 
      end;

      InnerScrollListener = class external 'javax.swing.plaf.basic' name 'ScrollListener' 
      end;

      InnerTrackListener = class external 'javax.swing.plaf.basic' name 'TrackListener' 
      end;

  public
    const
      POSITIVE_SCROLL = 1;
      NEGATIVE_SCROLL = -1;
      MIN_SCROLL = -2;
      MAX_SCROLL = 2;
  strict protected
    var
      fscrollTimer: JSTimer; external name 'scrollTimer';
      fslider: JSJSlider; external name 'slider';
      ffocusInsets: JAInsets; external name 'focusInsets';
      finsetCache: JAInsets; external name 'insetCache';
      fleftToRightCache: jboolean; external name 'leftToRightCache';
      ffocusRect: JARectangle; external name 'focusRect';
      fcontentRect: JARectangle; external name 'contentRect';
      flabelRect: JARectangle; external name 'labelRect';
      ftickRect: JARectangle; external name 'tickRect';
      ftrackRect: JARectangle; external name 'trackRect';
      fthumbRect: JARectangle; external name 'thumbRect';
      ftrackBuffer: jint; external name 'trackBuffer';
      ftrackListener: JSPBBasicSliderUI.InnerTrackListener; external name 'trackListener';
      fchangeListener: JSEChangeListener; external name 'changeListener';
      fcomponentListener: JAEComponentListener; external name 'componentListener';
      ffocusListener: JAEFocusListener; external name 'focusListener';
      fscrollListener: JSPBBasicSliderUI.InnerScrollListener; external name 'scrollListener';
      fpropertyChangeListener: JBPropertyChangeListener; external name 'propertyChangeListener';
  strict protected
    function getShadowColor(): JAColor; overload; virtual;
    function getHighlightColor(): JAColor; overload; virtual;
    function getFocusColor(): JAColor; overload; virtual;
    function isDragging(): jboolean; overload; virtual;
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    constructor create(para1: JSJSlider); overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure installDefaults(para1: JSJSlider); overload; virtual;
    function createTrackListener(para1: JSJSlider): JSPBBasicSliderUI.InnerTrackListener; overload; virtual;
    function createChangeListener(para1: JSJSlider): JSEChangeListener; overload; virtual;
    function createComponentListener(para1: JSJSlider): JAEComponentListener; overload; virtual;
    function createFocusListener(para1: JSJSlider): JAEFocusListener; overload; virtual;
    function createScrollListener(para1: JSJSlider): JSPBBasicSliderUI.InnerScrollListener; overload; virtual;
    function createPropertyChangeListener(para1: JSJSlider): JBPropertyChangeListener; overload; virtual;
    procedure installListeners(para1: JSJSlider); overload; virtual;
    procedure uninstallListeners(para1: JSJSlider); overload; virtual;
    procedure installKeyboardActions(para1: JSJSlider); overload; virtual;
    procedure uninstallKeyboardActions(para1: JSJSlider); overload; virtual;
  public
    function getBaseline(para1: JSJComponent; para2: jint; para3: jint): jint; overload; virtual;
    function getBaselineResizeBehavior(para1: JSJComponent): JAComponent.InnerBaselineResizeBehavior; overload; virtual;
  strict protected
    function labelsHaveSameBaselines(): jboolean; overload; virtual;
  public
    function getPreferredHorizontalSize(): JADimension; overload; virtual;
    function getPreferredVerticalSize(): JADimension; overload; virtual;
    function getMinimumHorizontalSize(): JADimension; overload; virtual;
    function getMinimumVerticalSize(): JADimension; overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
  strict protected
    procedure calculateGeometry(); overload; virtual;
    procedure calculateFocusRect(); overload; virtual;
    procedure calculateThumbSize(); overload; virtual;
    procedure calculateContentRect(); overload; virtual;
    procedure calculateThumbLocation(); overload; virtual;
    procedure calculateTrackBuffer(); overload; virtual;
    procedure calculateTrackRect(); overload; virtual;
    function getTickLength(): jint; overload; virtual;
    procedure calculateTickRect(); overload; virtual;
    procedure calculateLabelRect(); overload; virtual;
    function getThumbSize(): JADimension; overload; virtual;
    function getWidthOfWidestLabel(): jint; overload; virtual;
    function getHeightOfTallestLabel(): jint; overload; virtual;
    function getWidthOfHighValueLabel(): jint; overload; virtual;
    function getWidthOfLowValueLabel(): jint; overload; virtual;
    function getHeightOfHighValueLabel(): jint; overload; virtual;
    function getHeightOfLowValueLabel(): jint; overload; virtual;
    function drawInverted(): jboolean; overload; virtual;
    function getHighestValue(): JLInteger; overload; virtual;
    function getLowestValue(): JLInteger; overload; virtual;
    function getLowestValueLabel(): JAComponent; overload; virtual;
    function getHighestValueLabel(): JAComponent; overload; virtual;
  public
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure recalculateIfInsetsChanged(); overload; virtual;
    procedure recalculateIfOrientationChanged(); overload; virtual;
  public
    procedure paintFocus(para1: JAGraphics); overload; virtual;
    procedure paintTrack(para1: JAGraphics); overload; virtual;
    procedure paintTicks(para1: JAGraphics); overload; virtual;
  strict protected
    procedure paintMinorTickForHorizSlider(para1: JAGraphics; para2: JARectangle; para3: jint); overload; virtual;
    procedure paintMajorTickForHorizSlider(para1: JAGraphics; para2: JARectangle; para3: jint); overload; virtual;
    procedure paintMinorTickForVertSlider(para1: JAGraphics; para2: JARectangle; para3: jint); overload; virtual;
    procedure paintMajorTickForVertSlider(para1: JAGraphics; para2: JARectangle; para3: jint); overload; virtual;
  public
    procedure paintLabels(para1: JAGraphics); overload; virtual;
  strict protected
    procedure paintHorizontalLabel(para1: JAGraphics; para2: jint; para3: JAComponent); overload; virtual;
    procedure paintVerticalLabel(para1: JAGraphics; para2: jint; para3: JAComponent); overload; virtual;
  public
    procedure paintThumb(para1: JAGraphics); overload; virtual;
    procedure setThumbLocation(para1: jint; para2: jint); overload; virtual;
    procedure scrollByBlock(para1: jint); overload; virtual;
    procedure scrollByUnit(para1: jint); overload; virtual;
  strict protected
    procedure scrollDueToClickInTrack(para1: jint); overload; virtual;
    function xPositionForValue(para1: jint): jint; overload; virtual;
    function yPositionForValue(para1: jint): jint; overload; virtual;
    function yPositionForValue(para1: jint; para2: jint; para3: jint): jint; overload; virtual;
  public
    function valueForYPosition(para1: jint): jint; overload; virtual;
    function valueForXPosition(para1: jint): jint; overload; virtual;
  end;

  JSPMMultiSliderUI = class external 'javax.swing.plaf.multi' name 'MultiSliderUI' (JSPSliderUI)
  strict protected
    var
      fuis: JUVector; external name 'uis';
  public
    constructor create(); overload;
    function getUIs(): Arr1JSPComponentUI; overload; virtual;
    function contains(para1: JSJComponent; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getAccessibleChildrenCount(para1: JSJComponent): jint; overload; virtual;
    function getAccessibleChild(para1: JSJComponent; para2: jint): JAAccessible; overload; virtual;
  end;

  JSPBBasicSpinnerUI = class external 'javax.swing.plaf.basic' name 'BasicSpinnerUI' (JSPSpinnerUI)
  public
    type
      InnerArrowButtonHandler = class;
      Arr1InnerArrowButtonHandler = array of InnerArrowButtonHandler;
      Arr2InnerArrowButtonHandler = array of Arr1InnerArrowButtonHandler;
      Arr3InnerArrowButtonHandler = array of Arr2InnerArrowButtonHandler;
      InnerHandler = class;
      Arr1InnerHandler = array of InnerHandler;
      Arr2InnerHandler = array of Arr1InnerHandler;
      Arr3InnerHandler = array of Arr2InnerHandler;
      InnerArrowButtonHandler = class external 'javax.swing.plaf.basic' name 'ArrowButtonHandler' 
      end;

      InnerHandler = class external 'javax.swing.plaf.basic' name 'Handler' 
      end;

  strict protected
    var
      fspinner: JSJSpinner; external name 'spinner';
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure installListeners(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
    procedure installDefaults(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
    procedure installNextButtonListeners(para1: JAComponent); overload; virtual;
    procedure installPreviousButtonListeners(para1: JAComponent); overload; virtual;
    function createLayout(): JALayoutManager; overload; virtual;
    function createPropertyChangeListener(): JBPropertyChangeListener; overload; virtual;
    function createPreviousButton(): JAComponent; overload; virtual;
    function createNextButton(): JAComponent; overload; virtual;
    function createEditor(): JSJComponent; overload; virtual;
    procedure replaceEditor(para1: JSJComponent; para2: JSJComponent); overload; virtual;
    procedure installKeyboardActions(); overload; virtual;
  public
    function getBaseline(para1: JSJComponent; para2: jint; para3: jint): jint; overload; virtual;
    function getBaselineResizeBehavior(para1: JSJComponent): JAComponent.InnerBaselineResizeBehavior; overload; virtual;
  end;

  JSPMMultiSpinnerUI = class external 'javax.swing.plaf.multi' name 'MultiSpinnerUI' (JSPSpinnerUI)
  strict protected
    var
      fuis: JUVector; external name 'uis';
  public
    constructor create(); overload;
    function getUIs(): Arr1JSPComponentUI; overload; virtual;
    function contains(para1: JSJComponent; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getAccessibleChildrenCount(para1: JSJComponent): jint; overload; virtual;
    function getAccessibleChild(para1: JSJComponent; para2: jint): JAAccessible; overload; virtual;
  end;

  JSPBBasicSplitPaneUI = class external 'javax.swing.plaf.basic' name 'BasicSplitPaneUI' (JSPSplitPaneUI)
  public
    type
      InnerActions = class;
      Arr1InnerActions = array of InnerActions;
      Arr2InnerActions = array of Arr1InnerActions;
      Arr3InnerActions = array of Arr2InnerActions;
      InnerHandler = class;
      Arr1InnerHandler = array of InnerHandler;
      Arr2InnerHandler = array of Arr1InnerHandler;
      Arr3InnerHandler = array of Arr2InnerHandler;
      InnerActions = class external 'javax.swing.plaf.basic' name 'Actions' 
      end;

      InnerHandler = class external 'javax.swing.plaf.basic' name 'Handler' 
      end;

  public
    type
      InnerBasicHorizontalLayoutManager = class;
      Arr1InnerBasicHorizontalLayoutManager = array of InnerBasicHorizontalLayoutManager;
      Arr2InnerBasicHorizontalLayoutManager = array of Arr1InnerBasicHorizontalLayoutManager;
      Arr3InnerBasicHorizontalLayoutManager = array of Arr2InnerBasicHorizontalLayoutManager;
      InnerBasicVerticalLayoutManager = class;
      Arr1InnerBasicVerticalLayoutManager = array of InnerBasicVerticalLayoutManager;
      Arr2InnerBasicVerticalLayoutManager = array of Arr1InnerBasicVerticalLayoutManager;
      Arr3InnerBasicVerticalLayoutManager = array of Arr2InnerBasicVerticalLayoutManager;
      InnerFocusHandler = class;
      Arr1InnerFocusHandler = array of InnerFocusHandler;
      Arr2InnerFocusHandler = array of Arr1InnerFocusHandler;
      Arr3InnerFocusHandler = array of Arr2InnerFocusHandler;
      InnerPropertyHandler = class;
      Arr1InnerPropertyHandler = array of InnerPropertyHandler;
      Arr2InnerPropertyHandler = array of Arr1InnerPropertyHandler;
      Arr3InnerPropertyHandler = array of Arr2InnerPropertyHandler;
      InnerKeyboardDownRightHandler = class;
      Arr1InnerKeyboardDownRightHandler = array of InnerKeyboardDownRightHandler;
      Arr2InnerKeyboardDownRightHandler = array of Arr1InnerKeyboardDownRightHandler;
      Arr3InnerKeyboardDownRightHandler = array of Arr2InnerKeyboardDownRightHandler;
      InnerKeyboardEndHandler = class;
      Arr1InnerKeyboardEndHandler = array of InnerKeyboardEndHandler;
      Arr2InnerKeyboardEndHandler = array of Arr1InnerKeyboardEndHandler;
      Arr3InnerKeyboardEndHandler = array of Arr2InnerKeyboardEndHandler;
      InnerKeyboardHomeHandler = class;
      Arr1InnerKeyboardHomeHandler = array of InnerKeyboardHomeHandler;
      Arr2InnerKeyboardHomeHandler = array of Arr1InnerKeyboardHomeHandler;
      Arr3InnerKeyboardHomeHandler = array of Arr2InnerKeyboardHomeHandler;
      InnerKeyboardResizeToggleHandler = class;
      Arr1InnerKeyboardResizeToggleHandler = array of InnerKeyboardResizeToggleHandler;
      Arr2InnerKeyboardResizeToggleHandler = array of Arr1InnerKeyboardResizeToggleHandler;
      Arr3InnerKeyboardResizeToggleHandler = array of Arr2InnerKeyboardResizeToggleHandler;
      InnerKeyboardUpLeftHandler = class;
      Arr1InnerKeyboardUpLeftHandler = array of InnerKeyboardUpLeftHandler;
      Arr2InnerKeyboardUpLeftHandler = array of Arr1InnerKeyboardUpLeftHandler;
      Arr3InnerKeyboardUpLeftHandler = array of Arr2InnerKeyboardUpLeftHandler;
      InnerBasicHorizontalLayoutManager = class external 'javax.swing.plaf.basic' name 'BasicHorizontalLayoutManager' 
      end;

      InnerBasicVerticalLayoutManager = class external 'javax.swing.plaf.basic' name 'BasicVerticalLayoutManager' 
      end;

      InnerFocusHandler = class external 'javax.swing.plaf.basic' name 'FocusHandler' 
      end;

      InnerPropertyHandler = class external 'javax.swing.plaf.basic' name 'PropertyHandler' 
      end;

      InnerKeyboardDownRightHandler = class external 'javax.swing.plaf.basic' name 'KeyboardDownRightHandler' 
      end;

      InnerKeyboardEndHandler = class external 'javax.swing.plaf.basic' name 'KeyboardEndHandler' 
      end;

      InnerKeyboardHomeHandler = class external 'javax.swing.plaf.basic' name 'KeyboardHomeHandler' 
      end;

      InnerKeyboardResizeToggleHandler = class external 'javax.swing.plaf.basic' name 'KeyboardResizeToggleHandler' 
      end;

      InnerKeyboardUpLeftHandler = class external 'javax.swing.plaf.basic' name 'KeyboardUpLeftHandler' 
      end;

  strict protected
    const
      NON_CONTINUOUS_DIVIDER = 'nonContinuousDivider';
  strict protected
    class var
      fKEYBOARD_DIVIDER_MOVE_OFFSET: jint; external name 'KEYBOARD_DIVIDER_MOVE_OFFSET';
  strict protected
    var
      fsplitPane: JSJSplitPane; external name 'splitPane';
      flayoutManager: JSPBBasicSplitPaneUI.InnerBasicHorizontalLayoutManager; external name 'layoutManager';
      fdivider: JSPBBasicSplitPaneDivider; external name 'divider';
      fpropertyChangeListener: JBPropertyChangeListener; external name 'propertyChangeListener';
      ffocusListener: JAEFocusListener; external name 'focusListener';
      fdividerSize: jint; external name 'dividerSize';
      fnonContinuousLayoutDivider: JAComponent; external name 'nonContinuousLayoutDivider';
      fdraggingHW: jboolean; external name 'draggingHW';
      fbeginDragDividerLocation: jint; external name 'beginDragDividerLocation';
      fupKey: JSKeyStroke deprecated; external name 'upKey';
      fdownKey: JSKeyStroke deprecated; external name 'downKey';
      fleftKey: JSKeyStroke deprecated; external name 'leftKey';
      frightKey: JSKeyStroke deprecated; external name 'rightKey';
      fhomeKey: JSKeyStroke deprecated; external name 'homeKey';
      fendKey: JSKeyStroke deprecated; external name 'endKey';
      fdividerResizeToggleKey: JSKeyStroke deprecated; external name 'dividerResizeToggleKey';
      fkeyboardUpLeftListener: JAEActionListener deprecated; external name 'keyboardUpLeftListener';
      fkeyboardDownRightListener: JAEActionListener deprecated; external name 'keyboardDownRightListener';
      fkeyboardHomeListener: JAEActionListener deprecated; external name 'keyboardHomeListener';
      fkeyboardEndListener: JAEActionListener deprecated; external name 'keyboardEndListener';
      fkeyboardResizeToggleListener: JAEActionListener deprecated; external name 'keyboardResizeToggleListener';
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure installDefaults(); overload; virtual;
    procedure installListeners(); overload; virtual;
    procedure installKeyboardActions(); overload; virtual;
  public
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure uninstallDefaults(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
    procedure uninstallKeyboardActions(); overload; virtual;
    function createPropertyChangeListener(): JBPropertyChangeListener; overload; virtual;
    function createFocusListener(): JAEFocusListener; overload; virtual;
    function createKeyboardUpLeftListener(): JAEActionListener; overload; virtual;
    function createKeyboardDownRightListener(): JAEActionListener; overload; virtual;
    function createKeyboardHomeListener(): JAEActionListener; overload; virtual;
    function createKeyboardEndListener(): JAEActionListener; overload; virtual;
    function createKeyboardResizeToggleListener(): JAEActionListener; overload; virtual;
  public
    function getOrientation(): jint; overload; virtual;
    procedure setOrientation(para1: jint); overload; virtual;
    function isContinuousLayout(): jboolean; overload; virtual;
    procedure setContinuousLayout(para1: jboolean); overload; virtual;
    function getLastDragLocation(): jint; overload; virtual;
    procedure setLastDragLocation(para1: jint); overload; virtual;
    function getDivider(): JSPBBasicSplitPaneDivider; overload; virtual;
  strict protected
    function createDefaultNonContinuousLayoutDivider(): JAComponent; overload; virtual;
    procedure setNonContinuousLayoutDivider(para1: JAComponent); overload; virtual;
    procedure setNonContinuousLayoutDivider(para1: JAComponent; para2: jboolean); overload; virtual;
  public
    function getNonContinuousLayoutDivider(): JAComponent; overload; virtual;
    function getSplitPane(): JSJSplitPane; overload; virtual;
    function createDefaultDivider(): JSPBBasicSplitPaneDivider; overload; virtual;
    procedure resetToPreferredSizes(para1: JSJSplitPane); overload; virtual;
    procedure setDividerLocation(para1: JSJSplitPane; para2: jint); overload; virtual;
    function getDividerLocation(para1: JSJSplitPane): jint; overload; virtual;
    function getMinimumDividerLocation(para1: JSJSplitPane): jint; overload; virtual;
    function getMaximumDividerLocation(para1: JSJSplitPane): jint; overload; virtual;
    procedure finishedPaintingChildren(para1: JSJSplitPane; para2: JAGraphics); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getInsets(para1: JSJComponent): JAInsets; overload; virtual;
  strict protected
    procedure resetLayoutManager(); overload; virtual;
    procedure startDragging(); overload; virtual;
    procedure dragDividerTo(para1: jint); overload; virtual;
    procedure finishDraggingTo(para1: jint); overload; virtual;
    function getDividerBorderSize(): jint; overload; virtual;
  end;

  JSPMMultiSplitPaneUI = class external 'javax.swing.plaf.multi' name 'MultiSplitPaneUI' (JSPSplitPaneUI)
  strict protected
    var
      fuis: JUVector; external name 'uis';
  public
    constructor create(); overload;
    function getUIs(): Arr1JSPComponentUI; overload; virtual;
    procedure resetToPreferredSizes(para1: JSJSplitPane); overload; virtual;
    procedure setDividerLocation(para1: JSJSplitPane; para2: jint); overload; virtual;
    function getDividerLocation(para1: JSJSplitPane): jint; overload; virtual;
    function getMinimumDividerLocation(para1: JSJSplitPane): jint; overload; virtual;
    function getMaximumDividerLocation(para1: JSJSplitPane): jint; overload; virtual;
    procedure finishedPaintingChildren(para1: JSJSplitPane; para2: JAGraphics); overload; virtual;
    function contains(para1: JSJComponent; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getAccessibleChildrenCount(para1: JSJComponent): jint; overload; virtual;
    function getAccessibleChild(para1: JSJComponent; para2: jint): JAAccessible; overload; virtual;
  end;

  JSPBBasicTabbedPaneUI = class external 'javax.swing.plaf.basic' name 'BasicTabbedPaneUI' (JSPTabbedPaneUI, JSSwingConstants)
  public
    type
      InnerActions = class;
      Arr1InnerActions = array of InnerActions;
      Arr2InnerActions = array of Arr1InnerActions;
      Arr3InnerActions = array of Arr2InnerActions;
      InnerCroppedEdge = class;
      Arr1InnerCroppedEdge = array of InnerCroppedEdge;
      Arr2InnerCroppedEdge = array of Arr1InnerCroppedEdge;
      Arr3InnerCroppedEdge = array of Arr2InnerCroppedEdge;
      InnerScrollableTabPanel = class;
      Arr1InnerScrollableTabPanel = array of InnerScrollableTabPanel;
      Arr2InnerScrollableTabPanel = array of Arr1InnerScrollableTabPanel;
      Arr3InnerScrollableTabPanel = array of Arr2InnerScrollableTabPanel;
      InnerTabContainer = class;
      Arr1InnerTabContainer = array of InnerTabContainer;
      Arr2InnerTabContainer = array of Arr1InnerTabContainer;
      Arr3InnerTabContainer = array of Arr2InnerTabContainer;
      InnerHandler = class;
      Arr1InnerHandler = array of InnerHandler;
      Arr2InnerHandler = array of Arr1InnerHandler;
      Arr3InnerHandler = array of Arr2InnerHandler;
      InnerScrollableTabButton = class;
      Arr1InnerScrollableTabButton = array of InnerScrollableTabButton;
      Arr2InnerScrollableTabButton = array of Arr1InnerScrollableTabButton;
      Arr3InnerScrollableTabButton = array of Arr2InnerScrollableTabButton;
      InnerScrollableTabSupport = class;
      Arr1InnerScrollableTabSupport = array of InnerScrollableTabSupport;
      Arr2InnerScrollableTabSupport = array of Arr1InnerScrollableTabSupport;
      Arr3InnerScrollableTabSupport = array of Arr2InnerScrollableTabSupport;
      InnerTabbedPaneScrollLayout = class;
      Arr1InnerTabbedPaneScrollLayout = array of InnerTabbedPaneScrollLayout;
      Arr2InnerTabbedPaneScrollLayout = array of Arr1InnerTabbedPaneScrollLayout;
      Arr3InnerTabbedPaneScrollLayout = array of Arr2InnerTabbedPaneScrollLayout;
      InnerScrollableTabViewport = class;
      Arr1InnerScrollableTabViewport = array of InnerScrollableTabViewport;
      Arr2InnerScrollableTabViewport = array of Arr1InnerScrollableTabViewport;
      Arr3InnerScrollableTabViewport = array of Arr2InnerScrollableTabViewport;
      InnerActions = class external 'javax.swing.plaf.basic' name 'Actions' 
      end;

      InnerCroppedEdge = class external 'javax.swing.plaf.basic' name 'CroppedEdge' 
      end;

      InnerScrollableTabPanel = class external 'javax.swing.plaf.basic' name 'ScrollableTabPanel' 
      end;

      InnerTabContainer = class external 'javax.swing.plaf.basic' name 'TabContainer' 
      end;

      InnerHandler = class external 'javax.swing.plaf.basic' name 'Handler' 
      end;

      InnerScrollableTabButton = class external 'javax.swing.plaf.basic' name 'ScrollableTabButton' 
      end;

      InnerScrollableTabSupport = class external 'javax.swing.plaf.basic' name 'ScrollableTabSupport' 
      end;

      InnerTabbedPaneScrollLayout = class external 'javax.swing.plaf.basic' name 'TabbedPaneScrollLayout' 
      end;

      InnerScrollableTabViewport = class external 'javax.swing.plaf.basic' name 'ScrollableTabViewport' 
      end;

  public
    type
      InnerFocusHandler = class;
      Arr1InnerFocusHandler = array of InnerFocusHandler;
      Arr2InnerFocusHandler = array of Arr1InnerFocusHandler;
      Arr3InnerFocusHandler = array of Arr2InnerFocusHandler;
      InnerTabSelectionHandler = class;
      Arr1InnerTabSelectionHandler = array of InnerTabSelectionHandler;
      Arr2InnerTabSelectionHandler = array of Arr1InnerTabSelectionHandler;
      Arr3InnerTabSelectionHandler = array of Arr2InnerTabSelectionHandler;
      InnerPropertyChangeHandler = class;
      Arr1InnerPropertyChangeHandler = array of InnerPropertyChangeHandler;
      Arr2InnerPropertyChangeHandler = array of Arr1InnerPropertyChangeHandler;
      Arr3InnerPropertyChangeHandler = array of Arr2InnerPropertyChangeHandler;
      InnerMouseHandler = class;
      Arr1InnerMouseHandler = array of InnerMouseHandler;
      Arr2InnerMouseHandler = array of Arr1InnerMouseHandler;
      Arr3InnerMouseHandler = array of Arr2InnerMouseHandler;
      InnerTabbedPaneLayout = class;
      Arr1InnerTabbedPaneLayout = array of InnerTabbedPaneLayout;
      Arr2InnerTabbedPaneLayout = array of Arr1InnerTabbedPaneLayout;
      Arr3InnerTabbedPaneLayout = array of Arr2InnerTabbedPaneLayout;
      InnerFocusHandler = class external 'javax.swing.plaf.basic' name 'FocusHandler' 
      end;

      InnerTabSelectionHandler = class external 'javax.swing.plaf.basic' name 'TabSelectionHandler' 
      end;

      InnerPropertyChangeHandler = class external 'javax.swing.plaf.basic' name 'PropertyChangeHandler' 
      end;

      InnerMouseHandler = class external 'javax.swing.plaf.basic' name 'MouseHandler' 
      end;

      InnerTabbedPaneLayout = class external 'javax.swing.plaf.basic' name 'TabbedPaneLayout' 
      end;

  strict protected
    var
      ftabPane: JSJTabbedPane; external name 'tabPane';
      fhighlight: JAColor; external name 'highlight';
      flightHighlight: JAColor; external name 'lightHighlight';
      fshadow: JAColor; external name 'shadow';
      fdarkShadow: JAColor; external name 'darkShadow';
      ffocus: JAColor; external name 'focus';
      ftextIconGap: jint; external name 'textIconGap';
      ftabRunOverlay: jint; external name 'tabRunOverlay';
      ftabInsets: JAInsets; external name 'tabInsets';
      fselectedTabPadInsets: JAInsets; external name 'selectedTabPadInsets';
      ftabAreaInsets: JAInsets; external name 'tabAreaInsets';
      fcontentBorderInsets: JAInsets; external name 'contentBorderInsets';
      fupKey: JSKeyStroke deprecated; external name 'upKey';
      fdownKey: JSKeyStroke deprecated; external name 'downKey';
      fleftKey: JSKeyStroke deprecated; external name 'leftKey';
      frightKey: JSKeyStroke deprecated; external name 'rightKey';
      ftabRuns: Arr1jint; external name 'tabRuns';
      frunCount: jint; external name 'runCount';
      fselectedRun: jint; external name 'selectedRun';
      frects: Arr1JARectangle; external name 'rects';
      fmaxTabHeight: jint; external name 'maxTabHeight';
      fmaxTabWidth: jint; external name 'maxTabWidth';
      ftabChangeListener: JSEChangeListener; external name 'tabChangeListener';
      fpropertyChangeListener: JBPropertyChangeListener; external name 'propertyChangeListener';
      fmouseListener: JAEMouseListener; external name 'mouseListener';
      ffocusListener: JAEFocusListener; external name 'focusListener';
      fcalcRect: JARectangle; external name 'calcRect';
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    function createLayoutManager(): JALayoutManager; overload; virtual;
    procedure installComponents(); overload; virtual;
    function createScrollButton(para1: jint): JSJButton; overload; virtual;
    procedure uninstallComponents(); overload; virtual;
    procedure installDefaults(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
    procedure installListeners(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
    function createMouseListener(): JAEMouseListener; overload; virtual;
    function createFocusListener(): JAEFocusListener; overload; virtual;
    function createChangeListener(): JSEChangeListener; overload; virtual;
    function createPropertyChangeListener(): JBPropertyChangeListener; overload; virtual;
    procedure installKeyboardActions(); overload; virtual;
    procedure uninstallKeyboardActions(); overload; virtual;
    procedure setRolloverTab(para1: jint); overload; virtual;
    function getRolloverTab(): jint; overload; virtual;
  public
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getBaseline(para1: JSJComponent; para2: jint; para3: jint): jint; overload; virtual;
    function getBaselineResizeBehavior(para1: JSJComponent): JAComponent.InnerBaselineResizeBehavior; overload; virtual;
  strict protected
    function getBaseline(para1: jint): jint; overload; virtual;
    function getBaselineOffset(): jint; overload; virtual;
  public
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paintTabArea(para1: JAGraphics; para2: jint; para3: jint); overload; virtual;
    procedure paintTab(para1: JAGraphics; para2: jint; para3: Arr1JARectangle; para4: jint; para5: JARectangle; para6: JARectangle); overload; virtual;
    procedure paintTab(para1: JAGraphics; para2: jint; var para3: array of JARectangle; para4: jint; para5: JARectangle; para6: JARectangle); overload; virtual;
    procedure layoutLabel(para1: jint; para2: JAFontMetrics; para3: jint; para4: JLString; para5: JSIcon; para6: JARectangle; para7: JARectangle; para8: JARectangle; para9: jboolean); overload; virtual;
    procedure paintIcon(para1: JAGraphics; para2: jint; para3: jint; para4: JSIcon; para5: JARectangle; para6: jboolean); overload; virtual;
    procedure paintText(para1: JAGraphics; para2: jint; para3: JAFont; para4: JAFontMetrics; para5: jint; para6: JLString; para7: JARectangle; para8: jboolean); overload; virtual;
    function getTabLabelShiftX(para1: jint; para2: jint; para3: jboolean): jint; overload; virtual;
    function getTabLabelShiftY(para1: jint; para2: jint; para3: jboolean): jint; overload; virtual;
    procedure paintFocusIndicator(para1: JAGraphics; para2: jint; para3: Arr1JARectangle; para4: jint; para5: JARectangle; para6: JARectangle; para7: jboolean); overload; virtual;
    procedure paintFocusIndicator(para1: JAGraphics; para2: jint; var para3: array of JARectangle; para4: jint; para5: JARectangle; para6: JARectangle; para7: jboolean); overload; virtual;
    procedure paintTabBorder(para1: JAGraphics; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jboolean); overload; virtual;
    procedure paintTabBackground(para1: JAGraphics; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jboolean); overload; virtual;
    procedure paintContentBorder(para1: JAGraphics; para2: jint; para3: jint); overload; virtual;
    procedure paintContentBorderTopEdge(para1: JAGraphics; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintContentBorderLeftEdge(para1: JAGraphics; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintContentBorderBottomEdge(para1: JAGraphics; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintContentBorderRightEdge(para1: JAGraphics; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
  public
    function getTabBounds(para1: JSJTabbedPane; para2: jint): JARectangle; overload; virtual;
    function getTabRunCount(para1: JSJTabbedPane): jint; overload; virtual;
    function tabForCoordinate(para1: JSJTabbedPane; para2: jint; para3: jint): jint; overload; virtual;
  strict protected
    function getTabBounds(para1: jint; para2: JARectangle): JARectangle; overload; virtual;
    function getVisibleComponent(): JAComponent; overload; virtual;
    procedure setVisibleComponent(para1: JAComponent); overload; virtual;
    procedure assureRectsCreated(para1: jint); overload; virtual;
    procedure expandTabRunsArray(); overload; virtual;
    function getRunForTab(para1: jint; para2: jint): jint; overload; virtual;
    function lastTabInRun(para1: jint; para2: jint): jint; overload; virtual;
    function getTabRunOverlay(para1: jint): jint; overload; virtual;
    function getTabRunIndent(para1: jint; para2: jint): jint; overload; virtual;
    function shouldPadTabRun(para1: jint; para2: jint): jboolean; overload; virtual;
    function shouldRotateTabRuns(para1: jint): jboolean; overload; virtual;
    function getIconForTab(para1: jint): JSIcon; overload; virtual;
    function getTextViewForTab(para1: jint): JSTView; overload; virtual;
    function calculateTabHeight(para1: jint; para2: jint; para3: jint): jint; overload; virtual;
    function calculateMaxTabHeight(para1: jint): jint; overload; virtual;
    function calculateTabWidth(para1: jint; para2: jint; para3: JAFontMetrics): jint; overload; virtual;
    function calculateMaxTabWidth(para1: jint): jint; overload; virtual;
    function calculateTabAreaHeight(para1: jint; para2: jint; para3: jint): jint; overload; virtual;
    function calculateTabAreaWidth(para1: jint; para2: jint; para3: jint): jint; overload; virtual;
    function getTabInsets(para1: jint; para2: jint): JAInsets; overload; virtual;
    function getSelectedTabPadInsets(para1: jint): JAInsets; overload; virtual;
    function getTabAreaInsets(para1: jint): JAInsets; overload; virtual;
    function getContentBorderInsets(para1: jint): JAInsets; overload; virtual;
    function getFontMetrics(): JAFontMetrics; overload; virtual;
    procedure navigateSelectedTab(para1: jint); overload; virtual;
    procedure selectNextTabInRun(para1: jint); overload; virtual;
    procedure selectPreviousTabInRun(para1: jint); overload; virtual;
    procedure selectNextTab(para1: jint); overload; virtual;
    procedure selectPreviousTab(para1: jint); overload; virtual;
    procedure selectAdjacentRunTab(para1: jint; para2: jint; para3: jint); overload; virtual;
    function getFocusIndex(): jint; overload; virtual;
    function getTabRunOffset(para1: jint; para2: jint; para3: jint; para4: jboolean): jint; overload; virtual;
    function getPreviousTabIndex(para1: jint): jint; overload; virtual;
    function getNextTabIndex(para1: jint): jint; overload; virtual;
    function getNextTabIndexInRun(para1: jint; para2: jint): jint; overload; virtual;
    function getPreviousTabIndexInRun(para1: jint; para2: jint): jint; overload; virtual;
    function getPreviousTabRun(para1: jint): jint; overload; virtual;
    function getNextTabRun(para1: jint): jint; overload; virtual;
    class procedure rotateInsets(para1: JAInsets; para2: JAInsets; para3: jint); static; overload;
  end;

  JSPMMultiTabbedPaneUI = class external 'javax.swing.plaf.multi' name 'MultiTabbedPaneUI' (JSPTabbedPaneUI)
  strict protected
    var
      fuis: JUVector; external name 'uis';
  public
    constructor create(); overload;
    function getUIs(): Arr1JSPComponentUI; overload; virtual;
    function tabForCoordinate(para1: JSJTabbedPane; para2: jint; para3: jint): jint; overload; virtual;
    function getTabBounds(para1: JSJTabbedPane; para2: jint): JARectangle; overload; virtual;
    function getTabRunCount(para1: JSJTabbedPane): jint; overload; virtual;
    function contains(para1: JSJComponent; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getAccessibleChildrenCount(para1: JSJComponent): jint; overload; virtual;
    function getAccessibleChild(para1: JSJComponent; para2: jint): JAAccessible; overload; virtual;
  end;

  JSPBBasicTableHeaderUI = class external 'javax.swing.plaf.basic' name 'BasicTableHeaderUI' (JSPTableHeaderUI)
  public
    type
      InnerActions = class;
      Arr1InnerActions = array of InnerActions;
      Arr2InnerActions = array of Arr1InnerActions;
      Arr3InnerActions = array of Arr2InnerActions;
      InnerActions = class external 'javax.swing.plaf.basic' name 'Actions' 
      end;

  public
    type
      InnerMouseInputHandler = class;
      Arr1InnerMouseInputHandler = array of InnerMouseInputHandler;
      Arr2InnerMouseInputHandler = array of Arr1InnerMouseInputHandler;
      Arr3InnerMouseInputHandler = array of Arr2InnerMouseInputHandler;
      InnerMouseInputHandler = class external 'javax.swing.plaf.basic' name 'MouseInputHandler' 
      end;

  strict protected
    var
      fheader: JSTJTableHeader; external name 'header';
      frendererPane: JSCellRendererPane; external name 'rendererPane';
      fmouseInputListener: JSEMouseInputListener; external name 'mouseInputListener';
  public
    constructor create(); overload;
  strict protected
    function createMouseInputListener(): JSEMouseInputListener; overload; virtual;
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure installDefaults(); overload; virtual;
    procedure installListeners(); overload; virtual;
    procedure installKeyboardActions(); overload; virtual;
  public
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure uninstallDefaults(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
    procedure uninstallKeyboardActions(); overload; virtual;
    function getRolloverColumn(): jint; overload; virtual;
    procedure rolloverColumnUpdated(para1: jint; para2: jint); overload; virtual;
  public
    function getBaseline(para1: JSJComponent; para2: jint; para3: jint): jint; overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
  end;

  JSPMMultiTableHeaderUI = class external 'javax.swing.plaf.multi' name 'MultiTableHeaderUI' (JSPTableHeaderUI)
  strict protected
    var
      fuis: JUVector; external name 'uis';
  public
    constructor create(); overload;
    function getUIs(): Arr1JSPComponentUI; overload; virtual;
    function contains(para1: JSJComponent; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getAccessibleChildrenCount(para1: JSJComponent): jint; overload; virtual;
    function getAccessibleChild(para1: JSJComponent; para2: jint): JAAccessible; overload; virtual;
  end;

  JSPBBasicTableUI = class external 'javax.swing.plaf.basic' name 'BasicTableUI' (JSPTableUI)
  public
    type
      InnerActions = class;
      Arr1InnerActions = array of InnerActions;
      Arr2InnerActions = array of Arr1InnerActions;
      Arr3InnerActions = array of Arr2InnerActions;
      InnerHandler = class;
      Arr1InnerHandler = array of InnerHandler;
      Arr2InnerHandler = array of Arr1InnerHandler;
      Arr3InnerHandler = array of Arr2InnerHandler;
      InnerTableTransferHandler = class;
      Arr1InnerTableTransferHandler = array of InnerTableTransferHandler;
      Arr2InnerTableTransferHandler = array of Arr1InnerTableTransferHandler;
      Arr3InnerTableTransferHandler = array of Arr2InnerTableTransferHandler;
      InnerActions = class external 'javax.swing.plaf.basic' name 'Actions' 
      end;

      InnerHandler = class external 'javax.swing.plaf.basic' name 'Handler' 
      end;

      InnerTableTransferHandler = class external 'javax.swing.plaf.basic' name 'TableTransferHandler' 
      end;

  public
    type
      InnerFocusHandler = class;
      Arr1InnerFocusHandler = array of InnerFocusHandler;
      Arr2InnerFocusHandler = array of Arr1InnerFocusHandler;
      Arr3InnerFocusHandler = array of Arr2InnerFocusHandler;
      InnerMouseInputHandler = class;
      Arr1InnerMouseInputHandler = array of InnerMouseInputHandler;
      Arr2InnerMouseInputHandler = array of Arr1InnerMouseInputHandler;
      Arr3InnerMouseInputHandler = array of Arr2InnerMouseInputHandler;
      InnerKeyHandler = class;
      Arr1InnerKeyHandler = array of InnerKeyHandler;
      Arr2InnerKeyHandler = array of Arr1InnerKeyHandler;
      Arr3InnerKeyHandler = array of Arr2InnerKeyHandler;
      InnerFocusHandler = class external 'javax.swing.plaf.basic' name 'FocusHandler' 
      end;

      InnerMouseInputHandler = class external 'javax.swing.plaf.basic' name 'MouseInputHandler' 
      end;

      InnerKeyHandler = class external 'javax.swing.plaf.basic' name 'KeyHandler' 
      end;

  strict protected
    var
      ftable: JSJTable; external name 'table';
      frendererPane: JSCellRendererPane; external name 'rendererPane';
      fkeyListener: JAEKeyListener; external name 'keyListener';
      ffocusListener: JAEFocusListener; external name 'focusListener';
      fmouseInputListener: JSEMouseInputListener; external name 'mouseInputListener';
  public
    constructor create(); overload;
  strict protected
    function createKeyListener(): JAEKeyListener; overload; virtual;
    function createFocusListener(): JAEFocusListener; overload; virtual;
    function createMouseInputListener(): JSEMouseInputListener; overload; virtual;
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure installDefaults(); overload; virtual;
    procedure installListeners(); overload; virtual;
    procedure installKeyboardActions(); overload; virtual;
  public
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure uninstallDefaults(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
    procedure uninstallKeyboardActions(); overload; virtual;
  public
    function getBaseline(para1: JSJComponent; para2: jint; para3: jint): jint; overload; virtual;
    function getBaselineResizeBehavior(para1: JSJComponent): JAComponent.InnerBaselineResizeBehavior; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  end;

  JSPMMultiTableUI = class external 'javax.swing.plaf.multi' name 'MultiTableUI' (JSPTableUI)
  strict protected
    var
      fuis: JUVector; external name 'uis';
  public
    constructor create(); overload;
    function getUIs(): Arr1JSPComponentUI; overload; virtual;
    function contains(para1: JSJComponent; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getAccessibleChildrenCount(para1: JSJComponent): jint; overload; virtual;
    function getAccessibleChild(para1: JSJComponent; para2: jint): JAAccessible; overload; virtual;
  end;

  JSPMMultiTextUI = class external 'javax.swing.plaf.multi' name 'MultiTextUI' (JSPTextUI)
  strict protected
    var
      fuis: JUVector; external name 'uis';
  public
    constructor create(); overload;
    function getUIs(): Arr1JSPComponentUI; overload; virtual;
    function getToolTipText(para1: JSTJTextComponent; para2: JAPoint): JLString; overload; virtual;
    function modelToView(para1: JSTJTextComponent; para2: jint): JARectangle; overload; virtual;  // throws javax.swing.text.BadLocationException
    function modelToView(para1: JSTJTextComponent; para2: jint; para3: JSTPosition.InnerBias): JARectangle; overload; virtual;  // throws javax.swing.text.BadLocationException
    function viewToModel(para1: JSTJTextComponent; para2: JAPoint): jint; overload; virtual;
    function viewToModel(para1: JSTJTextComponent; para2: JAPoint; para3: JSTPosition.Arr1InnerBias): jint; overload; virtual;
    function viewToModel(para1: JSTJTextComponent; para2: JAPoint; var para3: array of JSTPosition.InnerBias): jint; overload; virtual;
    function getNextVisualPositionFrom(para1: JSTJTextComponent; para2: jint; para3: JSTPosition.InnerBias; para4: jint; para5: JSTPosition.Arr1InnerBias): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
    function getNextVisualPositionFrom(para1: JSTJTextComponent; para2: jint; para3: JSTPosition.InnerBias; para4: jint; var para5: array of JSTPosition.InnerBias): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
    procedure damageRange(para1: JSTJTextComponent; para2: jint; para3: jint); overload; virtual;
    procedure damageRange(para1: JSTJTextComponent; para2: jint; para3: jint; para4: JSTPosition.InnerBias; para5: JSTPosition.InnerBias); overload; virtual;
    function getEditorKit(para1: JSTJTextComponent): JSTEditorKit; overload; virtual;
    function getRootView(para1: JSTJTextComponent): JSTView; overload; virtual;
    function contains(para1: JSJComponent; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getAccessibleChildrenCount(para1: JSJComponent): jint; overload; virtual;
    function getAccessibleChild(para1: JSJComponent; para2: jint): JAAccessible; overload; virtual;
  end;

  JSPBBasicToolBarUI = class external 'javax.swing.plaf.basic' name 'BasicToolBarUI' (JSPToolBarUI, JSSwingConstants)
  public
    type
      InnerActions = class;
      Arr1InnerActions = array of InnerActions;
      Arr2InnerActions = array of Arr1InnerActions;
      Arr3InnerActions = array of Arr2InnerActions;
      InnerHandler = class;
      Arr1InnerHandler = array of InnerHandler;
      Arr2InnerHandler = array of Arr1InnerHandler;
      Arr3InnerHandler = array of Arr2InnerHandler;
      InnerActions = class external 'javax.swing.plaf.basic' name 'Actions' 
      end;

      InnerHandler = class external 'javax.swing.plaf.basic' name 'Handler' 
      end;

  public
    type
      InnerDockingListener = class;
      Arr1InnerDockingListener = array of InnerDockingListener;
      Arr2InnerDockingListener = array of Arr1InnerDockingListener;
      Arr3InnerDockingListener = array of Arr2InnerDockingListener;
      InnerDragWindow = class;
      Arr1InnerDragWindow = array of InnerDragWindow;
      Arr2InnerDragWindow = array of Arr1InnerDragWindow;
      Arr3InnerDragWindow = array of Arr2InnerDragWindow;
      InnerFrameListener = class;
      Arr1InnerFrameListener = array of InnerFrameListener;
      Arr2InnerFrameListener = array of Arr1InnerFrameListener;
      Arr3InnerFrameListener = array of Arr2InnerFrameListener;
      InnerToolBarContListener = class;
      Arr1InnerToolBarContListener = array of InnerToolBarContListener;
      Arr2InnerToolBarContListener = array of Arr1InnerToolBarContListener;
      Arr3InnerToolBarContListener = array of Arr2InnerToolBarContListener;
      InnerToolBarFocusListener = class;
      Arr1InnerToolBarFocusListener = array of InnerToolBarFocusListener;
      Arr2InnerToolBarFocusListener = array of Arr1InnerToolBarFocusListener;
      Arr3InnerToolBarFocusListener = array of Arr2InnerToolBarFocusListener;
      InnerPropertyListener = class;
      Arr1InnerPropertyListener = array of InnerPropertyListener;
      Arr2InnerPropertyListener = array of Arr1InnerPropertyListener;
      Arr3InnerPropertyListener = array of Arr2InnerPropertyListener;
      InnerDockingListener = class external 'javax.swing.plaf.basic' name 'DockingListener' 
      end;

      InnerDragWindow = class external 'javax.swing.plaf.basic' name 'DragWindow' 
      end;

      InnerFrameListener = class external 'javax.swing.plaf.basic' name 'FrameListener' 
      end;

      InnerToolBarContListener = class external 'javax.swing.plaf.basic' name 'ToolBarContListener' 
      end;

      InnerToolBarFocusListener = class external 'javax.swing.plaf.basic' name 'ToolBarFocusListener' 
      end;

      InnerPropertyListener = class external 'javax.swing.plaf.basic' name 'PropertyListener' 
      end;

  strict protected
    var
      ftoolBar: JSJToolBar; external name 'toolBar';
      fdragWindow: JSPBBasicToolBarUI.InnerDragWindow; external name 'dragWindow';
      ffocusedCompIndex: jint; external name 'focusedCompIndex';
      fdockingColor: JAColor; external name 'dockingColor';
      ffloatingColor: JAColor; external name 'floatingColor';
      fdockingBorderColor: JAColor; external name 'dockingBorderColor';
      ffloatingBorderColor: JAColor; external name 'floatingBorderColor';
      fdockingListener: JSEMouseInputListener; external name 'dockingListener';
      fpropertyListener: JBPropertyChangeListener; external name 'propertyListener';
      ftoolBarContListener: JAEContainerListener; external name 'toolBarContListener';
      ftoolBarFocusListener: JAEFocusListener; external name 'toolBarFocusListener';
      fconstraintBeforeFloating: JLString; external name 'constraintBeforeFloating';
      fupKey: JSKeyStroke deprecated; external name 'upKey';
      fdownKey: JSKeyStroke deprecated; external name 'downKey';
      fleftKey: JSKeyStroke deprecated; external name 'leftKey';
      frightKey: JSKeyStroke deprecated; external name 'rightKey';
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure installDefaults(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
    procedure installComponents(); overload; virtual;
    procedure uninstallComponents(); overload; virtual;
    procedure installListeners(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
    procedure installKeyboardActions(); overload; virtual;
    procedure uninstallKeyboardActions(); overload; virtual;
    procedure navigateFocusedComp(para1: jint); overload; virtual;
    function createRolloverBorder(): JSBBorder; overload; virtual;
    function createNonRolloverBorder(): JSBBorder; overload; virtual;
    function createFloatingFrame(para1: JSJToolBar): JSJFrame; overload; virtual;
    function createFloatingWindow(para1: JSJToolBar): JSRootPaneContainer; overload; virtual;
    function createDragWindow(para1: JSJToolBar): JSPBBasicToolBarUI.InnerDragWindow; overload; virtual;
  public
    function isRolloverBorders(): jboolean; overload; virtual;
    procedure setRolloverBorders(para1: jboolean); overload; virtual;
  strict protected
    procedure installRolloverBorders(para1: JSJComponent); overload; virtual;
    procedure installNonRolloverBorders(para1: JSJComponent); overload; virtual;
    procedure installNormalBorders(para1: JSJComponent); overload; virtual;
    procedure setBorderToRollover(para1: JAComponent); overload; virtual;
    function getRolloverBorder(para1: JSAbstractButton): JSBBorder; overload; virtual;
    procedure setBorderToNonRollover(para1: JAComponent); overload; virtual;
    function getNonRolloverBorder(para1: JSAbstractButton): JSBBorder; overload; virtual;
    procedure setBorderToNormal(para1: JAComponent); overload; virtual;
  public
    procedure setFloatingLocation(para1: jint; para2: jint); overload; virtual;
    function isFloating(): jboolean; overload; virtual;
    procedure setFloating(para1: jboolean; para2: JAPoint); overload; virtual;
    procedure setOrientation(para1: jint); overload; virtual;
    function getDockingColor(): JAColor; overload; virtual;
    procedure setDockingColor(para1: JAColor); overload; virtual;
    function getFloatingColor(): JAColor; overload; virtual;
    procedure setFloatingColor(para1: JAColor); overload; virtual;
    function canDock(para1: JAComponent; para2: JAPoint): jboolean; overload; virtual;
  strict protected
    procedure dragTo(para1: JAPoint; para2: JAPoint); overload; virtual;
    procedure floatAt(para1: JAPoint; para2: JAPoint); overload; virtual;
    function createToolBarContListener(): JAEContainerListener; overload; virtual;
    function createToolBarFocusListener(): JAEFocusListener; overload; virtual;
    function createPropertyListener(): JBPropertyChangeListener; overload; virtual;
    function createDockingListener(): JSEMouseInputListener; overload; virtual;
    function createFrameListener(): JAEWindowListener; overload; virtual;
    procedure paintDragWindow(para1: JAGraphics); overload; virtual;
  end;

  JSPMMultiToolBarUI = class external 'javax.swing.plaf.multi' name 'MultiToolBarUI' (JSPToolBarUI)
  strict protected
    var
      fuis: JUVector; external name 'uis';
  public
    constructor create(); overload;
    function getUIs(): Arr1JSPComponentUI; overload; virtual;
    function contains(para1: JSJComponent; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getAccessibleChildrenCount(para1: JSJComponent): jint; overload; virtual;
    function getAccessibleChild(para1: JSJComponent; para2: jint): JAAccessible; overload; virtual;
  end;

  JSPBBasicToolTipUI = class external 'javax.swing.plaf.basic' name 'BasicToolTipUI' (JSPToolTipUI)
  public
    type
      InnerPropertyChangeHandler = class;
      Arr1InnerPropertyChangeHandler = array of InnerPropertyChangeHandler;
      Arr2InnerPropertyChangeHandler = array of Arr1InnerPropertyChangeHandler;
      Arr3InnerPropertyChangeHandler = array of Arr2InnerPropertyChangeHandler;
      InnerPropertyChangeHandler = class external 'javax.swing.plaf.basic' name 'PropertyChangeHandler' 
      end;

  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    constructor create(); overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure installDefaults(para1: JSJComponent); overload; virtual;
    procedure uninstallDefaults(para1: JSJComponent); overload; virtual;
    procedure installListeners(para1: JSJComponent); overload; virtual;
    procedure uninstallListeners(para1: JSJComponent); overload; virtual;
  public
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
  end;

  JSPMMultiToolTipUI = class external 'javax.swing.plaf.multi' name 'MultiToolTipUI' (JSPToolTipUI)
  strict protected
    var
      fuis: JUVector; external name 'uis';
  public
    constructor create(); overload;
    function getUIs(): Arr1JSPComponentUI; overload; virtual;
    function contains(para1: JSJComponent; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getAccessibleChildrenCount(para1: JSJComponent): jint; overload; virtual;
    function getAccessibleChild(para1: JSJComponent; para2: jint): JAAccessible; overload; virtual;
  end;

  JSPBBasicTreeUI = class external 'javax.swing.plaf.basic' name 'BasicTreeUI' (JSPTreeUI)
  public
    type
      InnerActions = class;
      Arr1InnerActions = array of InnerActions;
      Arr2InnerActions = array of Arr1InnerActions;
      Arr3InnerActions = array of Arr2InnerActions;
      InnerHandler = class;
      Arr1InnerHandler = array of InnerHandler;
      Arr2InnerHandler = array of Arr1InnerHandler;
      Arr3InnerHandler = array of Arr2InnerHandler;
      InnerTreeTransferHandler = class;
      Arr1InnerTreeTransferHandler = array of InnerTreeTransferHandler;
      Arr2InnerTreeTransferHandler = array of Arr1InnerTreeTransferHandler;
      Arr3InnerTreeTransferHandler = array of Arr2InnerTreeTransferHandler;
      InnerActions = class external 'javax.swing.plaf.basic' name 'Actions' 
      end;

      InnerHandler = class external 'javax.swing.plaf.basic' name 'Handler' 
      end;

      InnerTreeTransferHandler = class external 'javax.swing.plaf.basic' name 'TreeTransferHandler' 
      end;

  public
    type
      InnerCellEditorHandler = class;
      Arr1InnerCellEditorHandler = array of InnerCellEditorHandler;
      Arr2InnerCellEditorHandler = array of Arr1InnerCellEditorHandler;
      Arr3InnerCellEditorHandler = array of Arr2InnerCellEditorHandler;
      InnerComponentHandler = class;
      Arr1InnerComponentHandler = array of InnerComponentHandler;
      Arr2InnerComponentHandler = array of Arr1InnerComponentHandler;
      Arr3InnerComponentHandler = array of Arr2InnerComponentHandler;
      InnerFocusHandler = class;
      Arr1InnerFocusHandler = array of InnerFocusHandler;
      Arr2InnerFocusHandler = array of Arr1InnerFocusHandler;
      Arr3InnerFocusHandler = array of Arr2InnerFocusHandler;
      InnerTreeSelectionHandler = class;
      Arr1InnerTreeSelectionHandler = array of InnerTreeSelectionHandler;
      Arr2InnerTreeSelectionHandler = array of Arr1InnerTreeSelectionHandler;
      Arr3InnerTreeSelectionHandler = array of Arr2InnerTreeSelectionHandler;
      InnerTreeModelHandler = class;
      Arr1InnerTreeModelHandler = array of InnerTreeModelHandler;
      Arr2InnerTreeModelHandler = array of Arr1InnerTreeModelHandler;
      Arr3InnerTreeModelHandler = array of Arr2InnerTreeModelHandler;
      InnerPropertyChangeHandler = class;
      Arr1InnerPropertyChangeHandler = array of InnerPropertyChangeHandler;
      Arr2InnerPropertyChangeHandler = array of Arr1InnerPropertyChangeHandler;
      Arr3InnerPropertyChangeHandler = array of Arr2InnerPropertyChangeHandler;
      InnerSelectionModelPropertyChangeHandler = class;
      Arr1InnerSelectionModelPropertyChangeHandler = array of InnerSelectionModelPropertyChangeHandler;
      Arr2InnerSelectionModelPropertyChangeHandler = array of Arr1InnerSelectionModelPropertyChangeHandler;
      Arr3InnerSelectionModelPropertyChangeHandler = array of Arr2InnerSelectionModelPropertyChangeHandler;
      InnerTreeExpansionHandler = class;
      Arr1InnerTreeExpansionHandler = array of InnerTreeExpansionHandler;
      Arr2InnerTreeExpansionHandler = array of Arr1InnerTreeExpansionHandler;
      Arr3InnerTreeExpansionHandler = array of Arr2InnerTreeExpansionHandler;
      InnerKeyHandler = class;
      Arr1InnerKeyHandler = array of InnerKeyHandler;
      Arr2InnerKeyHandler = array of Arr1InnerKeyHandler;
      Arr3InnerKeyHandler = array of Arr2InnerKeyHandler;
      InnerMouseHandler = class;
      Arr1InnerMouseHandler = array of InnerMouseHandler;
      Arr2InnerMouseHandler = array of Arr1InnerMouseHandler;
      Arr3InnerMouseHandler = array of Arr2InnerMouseHandler;
      InnerMouseInputHandler = class;
      Arr1InnerMouseInputHandler = array of InnerMouseInputHandler;
      Arr2InnerMouseInputHandler = array of Arr1InnerMouseInputHandler;
      Arr3InnerMouseInputHandler = array of Arr2InnerMouseInputHandler;
      InnerNodeDimensionsHandler = class;
      Arr1InnerNodeDimensionsHandler = array of InnerNodeDimensionsHandler;
      Arr2InnerNodeDimensionsHandler = array of Arr1InnerNodeDimensionsHandler;
      Arr3InnerNodeDimensionsHandler = array of Arr2InnerNodeDimensionsHandler;
      InnerTreeCancelEditingAction = class;
      Arr1InnerTreeCancelEditingAction = array of InnerTreeCancelEditingAction;
      Arr2InnerTreeCancelEditingAction = array of Arr1InnerTreeCancelEditingAction;
      Arr3InnerTreeCancelEditingAction = array of Arr2InnerTreeCancelEditingAction;
      InnerTreeHomeAction = class;
      Arr1InnerTreeHomeAction = array of InnerTreeHomeAction;
      Arr2InnerTreeHomeAction = array of Arr1InnerTreeHomeAction;
      Arr3InnerTreeHomeAction = array of Arr2InnerTreeHomeAction;
      InnerTreeIncrementAction = class;
      Arr1InnerTreeIncrementAction = array of InnerTreeIncrementAction;
      Arr2InnerTreeIncrementAction = array of Arr1InnerTreeIncrementAction;
      Arr3InnerTreeIncrementAction = array of Arr2InnerTreeIncrementAction;
      InnerTreePageAction = class;
      Arr1InnerTreePageAction = array of InnerTreePageAction;
      Arr2InnerTreePageAction = array of Arr1InnerTreePageAction;
      Arr3InnerTreePageAction = array of Arr2InnerTreePageAction;
      InnerTreeToggleAction = class;
      Arr1InnerTreeToggleAction = array of InnerTreeToggleAction;
      Arr2InnerTreeToggleAction = array of Arr1InnerTreeToggleAction;
      Arr3InnerTreeToggleAction = array of Arr2InnerTreeToggleAction;
      InnerTreeTraverseAction = class;
      Arr1InnerTreeTraverseAction = array of InnerTreeTraverseAction;
      Arr2InnerTreeTraverseAction = array of Arr1InnerTreeTraverseAction;
      Arr3InnerTreeTraverseAction = array of Arr2InnerTreeTraverseAction;
      InnerCellEditorHandler = class external 'javax.swing.plaf.basic' name 'CellEditorHandler' 
      end;

      InnerComponentHandler = class external 'javax.swing.plaf.basic' name 'ComponentHandler' 
      end;

      InnerFocusHandler = class external 'javax.swing.plaf.basic' name 'FocusHandler' 
      end;

      InnerTreeSelectionHandler = class external 'javax.swing.plaf.basic' name 'TreeSelectionHandler' 
      end;

      InnerTreeModelHandler = class external 'javax.swing.plaf.basic' name 'TreeModelHandler' 
      end;

      InnerPropertyChangeHandler = class external 'javax.swing.plaf.basic' name 'PropertyChangeHandler' 
      end;

      InnerSelectionModelPropertyChangeHandler = class external 'javax.swing.plaf.basic' name 'SelectionModelPropertyChangeHandler' 
      end;

      InnerTreeExpansionHandler = class external 'javax.swing.plaf.basic' name 'TreeExpansionHandler' 
      end;

      InnerKeyHandler = class external 'javax.swing.plaf.basic' name 'KeyHandler' 
      end;

      InnerMouseHandler = class external 'javax.swing.plaf.basic' name 'MouseHandler' 
      end;

      InnerMouseInputHandler = class external 'javax.swing.plaf.basic' name 'MouseInputHandler' 
      end;

      InnerNodeDimensionsHandler = class external 'javax.swing.plaf.basic' name 'NodeDimensionsHandler' 
      end;

      InnerTreeCancelEditingAction = class external 'javax.swing.plaf.basic' name 'TreeCancelEditingAction' 
      end;

      InnerTreeHomeAction = class external 'javax.swing.plaf.basic' name 'TreeHomeAction' 
      end;

      InnerTreeIncrementAction = class external 'javax.swing.plaf.basic' name 'TreeIncrementAction' 
      end;

      InnerTreePageAction = class external 'javax.swing.plaf.basic' name 'TreePageAction' 
      end;

      InnerTreeToggleAction = class external 'javax.swing.plaf.basic' name 'TreeToggleAction' 
      end;

      InnerTreeTraverseAction = class external 'javax.swing.plaf.basic' name 'TreeTraverseAction' 
      end;

  strict protected
    var
      fcollapsedIcon: JSIcon; external name 'collapsedIcon';
      fexpandedIcon: JSIcon; external name 'expandedIcon';
      fleftChildIndent: jint; external name 'leftChildIndent';
      frightChildIndent: jint; external name 'rightChildIndent';
      ftotalChildIndent: jint; external name 'totalChildIndent';
      fpreferredMinSize: JADimension; external name 'preferredMinSize';
      flastSelectedRow: jint; external name 'lastSelectedRow';
      ftree: JSJTree; external name 'tree';
      fcurrentCellRenderer: JSTTreeCellRenderer; external name 'currentCellRenderer';
      fcreatedRenderer: jboolean; external name 'createdRenderer';
      fcellEditor: JSTTreeCellEditor; external name 'cellEditor';
      fcreatedCellEditor: jboolean; external name 'createdCellEditor';
      fstopEditingInCompleteEditing: jboolean; external name 'stopEditingInCompleteEditing';
      frendererPane: JSCellRendererPane; external name 'rendererPane';
      fpreferredSize: JADimension; external name 'preferredSize';
      fvalidCachedPreferredSize: jboolean; external name 'validCachedPreferredSize';
      ftreeState: JSTAbstractLayoutCache; external name 'treeState';
      fdrawingCache: JUHashtable; external name 'drawingCache';
      flargeModel: jboolean; external name 'largeModel';
      fnodeDimensions: JSTAbstractLayoutCache.InnerNodeDimensions; external name 'nodeDimensions';
      ftreeModel: JSTTreeModel; external name 'treeModel';
      ftreeSelectionModel: JSTTreeSelectionModel; external name 'treeSelectionModel';
      fdepthOffset: jint; external name 'depthOffset';
      feditingComponent: JAComponent; external name 'editingComponent';
      feditingPath: JSTTreePath; external name 'editingPath';
      feditingRow: jint; external name 'editingRow';
      feditorHasDifferentSize: jboolean; external name 'editorHasDifferentSize';
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    constructor create(); overload;
  strict protected
    function getHashColor(): JAColor; overload; virtual;
    procedure setHashColor(para1: JAColor); overload; virtual;
  public
    procedure setLeftChildIndent(para1: jint); overload; virtual;
    function getLeftChildIndent(): jint; overload; virtual;
    procedure setRightChildIndent(para1: jint); overload; virtual;
    function getRightChildIndent(): jint; overload; virtual;
    procedure setExpandedIcon(para1: JSIcon); overload; virtual;
    function getExpandedIcon(): JSIcon; overload; virtual;
    procedure setCollapsedIcon(para1: JSIcon); overload; virtual;
    function getCollapsedIcon(): JSIcon; overload; virtual;
  strict protected
    procedure setLargeModel(para1: jboolean); overload; virtual;
    function isLargeModel(): jboolean; overload; virtual;
    procedure setRowHeight(para1: jint); overload; virtual;
    function getRowHeight(): jint; overload; virtual;
    procedure setCellRenderer(para1: JSTTreeCellRenderer); overload; virtual;
    function getCellRenderer(): JSTTreeCellRenderer; overload; virtual;
    procedure setModel(para1: JSTTreeModel); overload; virtual;
    function getModel(): JSTTreeModel; overload; virtual;
    procedure setRootVisible(para1: jboolean); overload; virtual;
    function isRootVisible(): jboolean; overload; virtual;
    procedure setShowsRootHandles(para1: jboolean); overload; virtual;
    function getShowsRootHandles(): jboolean; overload; virtual;
    procedure setCellEditor(para1: JSTTreeCellEditor); overload; virtual;
    function getCellEditor(): JSTTreeCellEditor; overload; virtual;
    procedure setEditable(para1: jboolean); overload; virtual;
    function isEditable(): jboolean; overload; virtual;
    procedure setSelectionModel(para1: JSTTreeSelectionModel); overload; virtual;
    function getSelectionModel(): JSTTreeSelectionModel; overload; virtual;
  public
    function getPathBounds(para1: JSJTree; para2: JSTTreePath): JARectangle; overload; virtual;
    function getPathForRow(para1: JSJTree; para2: jint): JSTTreePath; overload; virtual;
    function getRowForPath(para1: JSJTree; para2: JSTTreePath): jint; overload; virtual;
    function getRowCount(para1: JSJTree): jint; overload; virtual;
    function getClosestPathForLocation(para1: JSJTree; para2: jint; para3: jint): JSTTreePath; overload; virtual;
    function isEditing(para1: JSJTree): jboolean; overload; virtual;
    function stopEditing(para1: JSJTree): jboolean; overload; virtual;
    procedure cancelEditing(para1: JSJTree); overload; virtual;
    procedure startEditingAtPath(para1: JSJTree; para2: JSTTreePath); overload; virtual;
    function getEditingPath(para1: JSJTree): JSTTreePath; overload; virtual;
    procedure installUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure prepareForUIInstall(); overload; virtual;
    procedure completeUIInstall(); overload; virtual;
    procedure installDefaults(); overload; virtual;
    procedure installListeners(); overload; virtual;
    procedure installKeyboardActions(); overload; virtual;
    procedure installComponents(); overload; virtual;
    function createNodeDimensions(): JSTAbstractLayoutCache.InnerNodeDimensions; overload; virtual;
    function createPropertyChangeListener(): JBPropertyChangeListener; overload; virtual;
    function createMouseListener(): JAEMouseListener; overload; virtual;
    function createFocusListener(): JAEFocusListener; overload; virtual;
    function createKeyListener(): JAEKeyListener; overload; virtual;
    function createSelectionModelPropertyChangeListener(): JBPropertyChangeListener; overload; virtual;
    function createTreeSelectionListener(): JSETreeSelectionListener; overload; virtual;
    function createCellEditorListener(): JSECellEditorListener; overload; virtual;
    function createComponentListener(): JAEComponentListener; overload; virtual;
    function createTreeExpansionListener(): JSETreeExpansionListener; overload; virtual;
    function createLayoutCache(): JSTAbstractLayoutCache; overload; virtual;
    function createCellRendererPane(): JSCellRendererPane; overload; virtual;
    function createDefaultCellEditor(): JSTTreeCellEditor; overload; virtual;
    function createDefaultCellRenderer(): JSTTreeCellRenderer; overload; virtual;
    function createTreeModelListener(): JSETreeModelListener; overload; virtual;
  public
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure prepareForUIUninstall(); overload; virtual;
    procedure completeUIUninstall(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
    procedure uninstallKeyboardActions(); overload; virtual;
    procedure uninstallComponents(); overload; virtual;
  public
    function getBaseline(para1: JSJComponent; para2: jint; para3: jint): jint; overload; virtual;
    function getBaselineResizeBehavior(para1: JSJComponent): JAComponent.InnerBaselineResizeBehavior; overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paintHorizontalPartOfLeg(para1: JAGraphics; para2: JARectangle; para3: JAInsets; para4: JARectangle; para5: JSTTreePath; para6: jint; para7: jboolean; para8: jboolean; para9: jboolean); overload; virtual;
    procedure paintVerticalPartOfLeg(para1: JAGraphics; para2: JARectangle; para3: JAInsets; para4: JSTTreePath); overload; virtual;
    procedure paintExpandControl(para1: JAGraphics; para2: JARectangle; para3: JAInsets; para4: JARectangle; para5: JSTTreePath; para6: jint; para7: jboolean; para8: jboolean; para9: jboolean); overload; virtual;
    procedure paintRow(para1: JAGraphics; para2: JARectangle; para3: JAInsets; para4: JARectangle; para5: JSTTreePath; para6: jint; para7: jboolean; para8: jboolean; para9: jboolean); overload; virtual;
    function shouldPaintExpandControl(para1: JSTTreePath; para2: jint; para3: jboolean; para4: jboolean; para5: jboolean): jboolean; overload; virtual;
    procedure paintVerticalLine(para1: JAGraphics; para2: JSJComponent; para3: jint; para4: jint; para5: jint); overload; virtual;
    procedure paintHorizontalLine(para1: JAGraphics; para2: JSJComponent; para3: jint; para4: jint; para5: jint); overload; virtual;
    function getVerticalLegBuffer(): jint; overload; virtual;
    function getHorizontalLegBuffer(): jint; overload; virtual;
    procedure drawCentered(para1: JAComponent; para2: JAGraphics; para3: JSIcon; para4: jint; para5: jint); overload; virtual;
    procedure drawDashedHorizontalLine(para1: JAGraphics; para2: jint; para3: jint; para4: jint); overload; virtual;
    procedure drawDashedVerticalLine(para1: JAGraphics; para2: jint; para3: jint; para4: jint); overload; virtual;
    function getRowX(para1: jint; para2: jint): jint; overload; virtual;
    procedure updateLayoutCacheExpandedNodes(); overload; virtual;
    procedure updateExpandedDescendants(para1: JSTTreePath); overload; virtual;
    function getLastChildPath(para1: JSTTreePath): JSTTreePath; overload; virtual;
    procedure updateDepthOffset(); overload; virtual;
    procedure updateCellEditor(); overload; virtual;
    procedure updateRenderer(); overload; virtual;
    procedure configureLayoutCache(); overload; virtual;
    procedure updateSize(); overload; virtual;
    procedure updateCachedPreferredSize(); overload; virtual;
    procedure pathWasExpanded(para1: JSTTreePath); overload; virtual;
    procedure pathWasCollapsed(para1: JSTTreePath); overload; virtual;
    procedure ensureRowsAreVisible(para1: jint; para2: jint); overload; virtual;
  public
    procedure setPreferredMinSize(para1: JADimension); overload; virtual;
    function getPreferredMinSize(): JADimension; overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getPreferredSize(para1: JSJComponent; para2: jboolean): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
  strict protected
    procedure completeEditing(); overload; virtual;
    procedure completeEditing(para1: jboolean; para2: jboolean; para3: jboolean); overload; virtual;
    function startEditing(para1: JSTTreePath; para2: JAEMouseEvent): jboolean; overload; virtual;
    procedure checkForClickInExpandControl(para1: JSTTreePath; para2: jint; para3: jint); overload; virtual;
    function isLocationInExpandControl(para1: JSTTreePath; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure handleExpandControlClick(para1: JSTTreePath; para2: jint; para3: jint); overload; virtual;
    procedure toggleExpandState(para1: JSTTreePath); overload; virtual;
    function isToggleSelectionEvent(para1: JAEMouseEvent): jboolean; overload; virtual;
    function isMultiSelectEvent(para1: JAEMouseEvent): jboolean; overload; virtual;
    function isToggleEvent(para1: JAEMouseEvent): jboolean; overload; virtual;
    procedure selectPathForEvent(para1: JSTTreePath; para2: JAEMouseEvent); overload; virtual;
    function isLeaf(para1: jint): jboolean; overload; virtual;
  end;

  JSPMMultiTreeUI = class external 'javax.swing.plaf.multi' name 'MultiTreeUI' (JSPTreeUI)
  strict protected
    var
      fuis: JUVector; external name 'uis';
  public
    constructor create(); overload;
    function getUIs(): Arr1JSPComponentUI; overload; virtual;
    function getPathBounds(para1: JSJTree; para2: JSTTreePath): JARectangle; overload; virtual;
    function getPathForRow(para1: JSJTree; para2: jint): JSTTreePath; overload; virtual;
    function getRowForPath(para1: JSJTree; para2: JSTTreePath): jint; overload; virtual;
    function getRowCount(para1: JSJTree): jint; overload; virtual;
    function getClosestPathForLocation(para1: JSJTree; para2: jint; para3: jint): JSTTreePath; overload; virtual;
    function isEditing(para1: JSJTree): jboolean; overload; virtual;
    function stopEditing(para1: JSJTree): jboolean; overload; virtual;
    procedure cancelEditing(para1: JSJTree); overload; virtual;
    procedure startEditingAtPath(para1: JSJTree; para2: JSTTreePath); overload; virtual;
    function getEditingPath(para1: JSJTree): JSTTreePath; overload; virtual;
    function contains(para1: JSJComponent; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getAccessibleChildrenCount(para1: JSJComponent): jint; overload; virtual;
    function getAccessibleChild(para1: JSJComponent; para2: jint): JAAccessible; overload; virtual;
  end;

  JSPBBasicViewportUI = class external 'javax.swing.plaf.basic' name 'BasicViewportUI' (JSPViewportUI)
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure installDefaults(para1: JSJComponent); overload; virtual;
    procedure uninstallDefaults(para1: JSJComponent); overload; virtual;
  end;

  JSPMMultiViewportUI = class external 'javax.swing.plaf.multi' name 'MultiViewportUI' (JSPViewportUI)
  strict protected
    var
      fuis: JUVector; external name 'uis';
  public
    constructor create(); overload;
    function getUIs(): Arr1JSPComponentUI; overload; virtual;
    function contains(para1: JSJComponent; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getAccessibleChildrenCount(para1: JSJComponent): jint; overload; virtual;
    function getAccessibleChild(para1: JSJComponent; para2: jint): JAAccessible; overload; virtual;
  end;

  JSPSSynthViewportUI = class external 'javax.swing.plaf.synth' name 'SynthViewportUI' (JSPViewportUI, JBPropertyChangeListener, SSPSSynthUI)
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure installDefaults(para1: JSJComponent); overload; virtual;
    procedure installListeners(para1: JSJComponent); overload; virtual;
    procedure uninstallListeners(para1: JSJComponent); overload; virtual;
    procedure uninstallDefaults(para1: JSJComponent); overload; virtual;
  public
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paint(para1: JSPSSynthContext; para2: JAGraphics); overload; virtual;
  public
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  end;

  JUZGZIPInputStream = class external 'java.util.zip' name 'GZIPInputStream' (JUZInflaterInputStream)
  strict protected
    var
      fcrc: JUZCRC32; external name 'crc';
      feos: jboolean; external name 'eos';
  public
    const
      GZIP_MAGIC = 35615;
  public
    constructor create(para1: JIInputStream; para2: jint); overload;  // throws java.io.IOException
    constructor create(para1: JIInputStream); overload;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  JUZZipInputStream = class external 'java.util.zip' name 'ZipInputStream' (JUZInflaterInputStream, JUZZipConstants)
  public
    constructor create(para1: JIInputStream); overload;
    function getNextEntry(): JUZZipEntry; overload; virtual;  // throws java.io.IOException
    procedure closeEntry(); overload; virtual;  // throws java.io.IOException
    function available(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function skip(para1: jlong): jlong; overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  strict protected
    function createZipEntry(para1: JLString): JUZZipEntry; overload; virtual;
  end;

  JNCSelectableChannel = class abstract external 'java.nio.channels' name 'SelectableChannel' (JNCSAbstractInterruptibleChannel, JNCChannel)
  strict protected
    constructor create(); overload;
  public
    function provider(): JNCSSelectorProvider; overload; virtual; abstract;
    function validOps(): jint; overload; virtual; abstract;
    function isRegistered(): jboolean; overload; virtual; abstract;
    function keyFor(para1: JNCSelector): JNCSelectionKey; overload; virtual; abstract;
    function register(para1: JNCSelector; para2: jint; para3: JLObject): JNCSelectionKey; overload; virtual; abstract;  // throws java.nio.channels.ClosedChannelException
    function register(para1: JNCSelector; para2: jint): JNCSelectionKey; overload; virtual; final;  // throws java.nio.channels.ClosedChannelException
    function configureBlocking(para1: jboolean): JNCSelectableChannel; overload; virtual; abstract;  // throws java.io.IOException
    function isBlocking(): jboolean; overload; virtual; abstract;
    function blockingLock(): JLObject; overload; virtual; abstract;
  end;

  JNCFileChannel = class abstract external 'java.nio.channels' name 'FileChannel' (JNCSAbstractInterruptibleChannel, JNCByteChannel, JNCGatheringByteChannel, JNCScatteringByteChannel)
  public
    type
      InnerMapMode = class;
      Arr1InnerMapMode = array of InnerMapMode;
      Arr2InnerMapMode = array of Arr1InnerMapMode;
      Arr3InnerMapMode = array of Arr2InnerMapMode;
      InnerMapMode = class external 'java.nio.channels' name 'MapMode' (JLObject)
      public
        final class var
          fREAD_ONLY: JNCFileChannel.InnerMapMode; external name 'READ_ONLY';
          fREAD_WRITE: JNCFileChannel.InnerMapMode; external name 'READ_WRITE';
          fPRIVATE: JNCFileChannel.InnerMapMode; external name 'PRIVATE';
      public
        function toString(): JLString; overload; virtual;
      end;

  strict protected
    constructor create(); overload;
  public
    function read(para1: JNByteBuffer): jint; overload; virtual; abstract;  // throws java.io.IOException
    function read(para1: Arr1JNByteBuffer; para2: jint; para3: jint): jlong; overload; virtual; abstract;  // throws java.io.IOException
    function read(var para1: array of JNByteBuffer; para2: jint; para3: jint): jlong; overload; virtual; abstract;  // throws java.io.IOException
    function read(para1: Arr1JNByteBuffer): jlong; overload; virtual; final;  // throws java.io.IOException
    function read(var para1: array of JNByteBuffer): jlong; overload; virtual; final;  // throws java.io.IOException
    function write(para1: JNByteBuffer): jint; overload; virtual; abstract;  // throws java.io.IOException
    function write(para1: Arr1JNByteBuffer; para2: jint; para3: jint): jlong; overload; virtual; abstract;  // throws java.io.IOException
    function write(var para1: array of JNByteBuffer; para2: jint; para3: jint): jlong; overload; virtual; abstract;  // throws java.io.IOException
    function write(para1: Arr1JNByteBuffer): jlong; overload; virtual; final;  // throws java.io.IOException
    function write(var para1: array of JNByteBuffer): jlong; overload; virtual; final;  // throws java.io.IOException
    function position(): jlong; overload; virtual; abstract;  // throws java.io.IOException
    function position(para1: jlong): JNCFileChannel; overload; virtual; abstract;  // throws java.io.IOException
    function size(): jlong; overload; virtual; abstract;  // throws java.io.IOException
    function truncate(para1: jlong): JNCFileChannel; overload; virtual; abstract;  // throws java.io.IOException
    procedure force(para1: jboolean); overload; virtual; abstract;  // throws java.io.IOException
    function transferTo(para1: jlong; para2: jlong; para3: JNCWritableByteChannel): jlong; overload; virtual; abstract;  // throws java.io.IOException
    function transferFrom(para1: JNCReadableByteChannel; para2: jlong; para3: jlong): jlong; overload; virtual; abstract;  // throws java.io.IOException
    function read(para1: JNByteBuffer; para2: jlong): jint; overload; virtual; abstract;  // throws java.io.IOException
    function write(para1: JNByteBuffer; para2: jlong): jint; overload; virtual; abstract;  // throws java.io.IOException
    function map(para1: JNCFileChannel.InnerMapMode; para2: jlong; para3: jlong): JNMappedByteBuffer; overload; virtual; abstract;  // throws java.io.IOException
    function lock(para1: jlong; para2: jlong; para3: jboolean): JNCFileLock; overload; virtual; abstract;  // throws java.io.IOException
    function lock(): JNCFileLock; overload; virtual; final;  // throws java.io.IOException
    function tryLock(para1: jlong; para2: jlong; para3: jboolean): JNCFileLock; overload; virtual; abstract;  // throws java.io.IOException
    function tryLock(): JNCFileLock; overload; virtual; final;  // throws java.io.IOException
  end;

  JISFileCacheImageOutputStream = class external 'javax.imageio.stream' name 'FileCacheImageOutputStream' (JISImageOutputStreamImpl)
  public
    constructor create(para1: JIOutputStream; para2: JIFile); overload;  // throws java.io.IOException
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    function length(): jlong; overload; virtual;
    procedure seek(para1: jlong); overload; virtual;  // throws java.io.IOException
    function isCached(): jboolean; overload; virtual;
    function isCachedFile(): jboolean; overload; virtual;
    function isCachedMemory(): jboolean; overload; virtual;
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure flushBefore(para1: jlong); overload; virtual;  // throws java.io.IOException
  end;

  JISFileImageOutputStream = class external 'javax.imageio.stream' name 'FileImageOutputStream' (JISImageOutputStreamImpl)
  public
    constructor create(para1: JIFile); overload;  // throws java.io.FileNotFoundException, java.io.IOException
    constructor create(para1: JIRandomAccessFile); overload;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    function length(): jlong; overload; virtual;
    procedure seek(para1: jlong); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  strict protected
    procedure finalize(); overload; virtual;  // throws java.lang.Throwable
  end;

  JISMemoryCacheImageOutputStream = class external 'javax.imageio.stream' name 'MemoryCacheImageOutputStream' (JISImageOutputStreamImpl)
  public
    constructor create(para1: JIOutputStream); overload;
    function read(): jint; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    procedure write(para1: jint); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    function length(): jlong; overload; virtual;
    function isCached(): jboolean; overload; virtual;
    function isCachedFile(): jboolean; overload; virtual;
    function isCachedMemory(): jboolean; overload; virtual;
    procedure close(); overload; virtual;  // throws java.io.IOException
    procedure flushBefore(para1: jlong); overload; virtual;  // throws java.io.IOException
  end;

  JRSLogStream = class external 'java.rmi.server' name 'LogStream' (JIPrintStream)
  public
    const
      SILENT = 0;
      BRIEF = 10;
      VERBOSE = 20;
  public
    class function log(para1: JLString): JRSLogStream; static; overload;
    class function getDefaultStream(): JIPrintStream; static; overload;
    class procedure setDefaultStream(para1: JIPrintStream); static; overload;
    function getOutputStream(): JIOutputStream; overload; virtual;
    procedure setOutputStream(para1: JIOutputStream); overload; virtual;
    procedure write(para1: jint); overload; virtual;
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;
    function toString(): JLString; overload; virtual;
    class function parseLevel(para1: JLString): jint; static; overload;
  end;

  JUZGZIPOutputStream = class external 'java.util.zip' name 'GZIPOutputStream' (JUZDeflaterOutputStream)
  strict protected
    var
      fcrc: JUZCRC32; external name 'crc';
  public
    constructor create(para1: JIOutputStream; para2: jint); overload;  // throws java.io.IOException
    constructor create(para1: JIOutputStream); overload;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure finish(); overload; virtual;  // throws java.io.IOException
  end;

  JUZZipOutputStream = class external 'java.util.zip' name 'ZipOutputStream' (JUZDeflaterOutputStream, JUZZipConstants)
  public
    type
      InnerXEntry = class;
      Arr1InnerXEntry = array of InnerXEntry;
      Arr2InnerXEntry = array of Arr1InnerXEntry;
      Arr3InnerXEntry = array of Arr2InnerXEntry;
      InnerXEntry = class external 'java.util.zip' name 'XEntry' 
      end;

  public
    const
      STORED = 0;
      DEFLATED = 8;
  public
    constructor create(para1: JIOutputStream); overload;
    procedure setComment(para1: JLString); overload; virtual;
    procedure setMethod(para1: jint); overload; virtual;
    procedure setLevel(para1: jint); overload; virtual;
    procedure putNextEntry(para1: JUZZipEntry); overload; virtual;  // throws java.io.IOException
    procedure closeEntry(); overload; virtual;  // throws java.io.IOException
    procedure write(para1: Arr1jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure write(var para1: array of jbyte; para2: jint; para3: jint); overload; virtual;  // throws java.io.IOException
    procedure finish(); overload; virtual;  // throws java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
  end;

  JSTRRTFReader = class external 'javax.swing.text.rtf' name 'RTFReader' (JSTRRTFParser)
  public
    type
      InnerDestination = interface;
      Arr1InnerDestination = array of InnerDestination;
      Arr2InnerDestination = array of Arr1InnerDestination;
      Arr3InnerDestination = array of Arr2InnerDestination;
      InnerAttributeTrackingDestination = class;
      Arr1InnerAttributeTrackingDestination = array of InnerAttributeTrackingDestination;
      Arr2InnerAttributeTrackingDestination = array of Arr1InnerAttributeTrackingDestination;
      Arr3InnerAttributeTrackingDestination = array of Arr2InnerAttributeTrackingDestination;
      InnerColortblDestination = class;
      Arr1InnerColortblDestination = array of InnerColortblDestination;
      Arr2InnerColortblDestination = array of Arr1InnerColortblDestination;
      Arr3InnerColortblDestination = array of Arr2InnerColortblDestination;
      InnerDiscardingDestination = class;
      Arr1InnerDiscardingDestination = array of InnerDiscardingDestination;
      Arr2InnerDiscardingDestination = array of Arr1InnerDiscardingDestination;
      Arr3InnerDiscardingDestination = array of Arr2InnerDiscardingDestination;
      InnerDocumentDestination = class;
      Arr1InnerDocumentDestination = array of InnerDocumentDestination;
      Arr2InnerDocumentDestination = array of Arr1InnerDocumentDestination;
      Arr3InnerDocumentDestination = array of Arr2InnerDocumentDestination;
      InnerFonttblDestination = class;
      Arr1InnerFonttblDestination = array of InnerFonttblDestination;
      Arr2InnerFonttblDestination = array of Arr1InnerFonttblDestination;
      Arr3InnerFonttblDestination = array of Arr2InnerFonttblDestination;
      InnerInfoDestination = class;
      Arr1InnerInfoDestination = array of InnerInfoDestination;
      Arr2InnerInfoDestination = array of Arr1InnerInfoDestination;
      Arr3InnerInfoDestination = array of Arr2InnerInfoDestination;
      InnerStylesheetDestination = class;
      Arr1InnerStylesheetDestination = array of InnerStylesheetDestination;
      Arr2InnerStylesheetDestination = array of Arr1InnerStylesheetDestination;
      Arr3InnerStylesheetDestination = array of Arr2InnerStylesheetDestination;
      InnerTextHandlingDestination = class;
      Arr1InnerTextHandlingDestination = array of InnerTextHandlingDestination;
      Arr2InnerTextHandlingDestination = array of Arr1InnerTextHandlingDestination;
      Arr3InnerTextHandlingDestination = array of Arr2InnerTextHandlingDestination;
      InnerDestination = interface external 'javax.swing.text.rtf' name 'Destination' 
      end;

      InnerAttributeTrackingDestination = class abstract external 'javax.swing.text.rtf' name 'AttributeTrackingDestination' 
      end;

      InnerColortblDestination = class external 'javax.swing.text.rtf' name 'ColortblDestination' 
      end;

      InnerDiscardingDestination = class external 'javax.swing.text.rtf' name 'DiscardingDestination' 
      end;

      InnerDocumentDestination = class external 'javax.swing.text.rtf' name 'DocumentDestination' 
      end;

      InnerFonttblDestination = class external 'javax.swing.text.rtf' name 'FonttblDestination' 
      end;

      InnerInfoDestination = class external 'javax.swing.text.rtf' name 'InfoDestination' 
      end;

      InnerStylesheetDestination = class external 'javax.swing.text.rtf' name 'StylesheetDestination' 
      public
        type
          InnerStyleDefiningDestination = class;
          Arr1InnerStyleDefiningDestination = array of InnerStyleDefiningDestination;
          Arr2InnerStyleDefiningDestination = array of Arr1InnerStyleDefiningDestination;
          Arr3InnerStyleDefiningDestination = array of Arr2InnerStyleDefiningDestination;
          InnerStyleDefiningDestination = class external 'javax.swing.text.rtf' name 'StyleDefiningDestination' 
          end;

      end;

      InnerTextHandlingDestination = class abstract external 'javax.swing.text.rtf' name 'TextHandlingDestination' 
      end;

  public
    constructor create(para1: JSTStyledDocument); overload;
    procedure handleBinaryBlob(para1: Arr1jbyte); overload; virtual;
    procedure handleBinaryBlob(var para1: array of jbyte); overload; virtual;
    procedure handleText(para1: JLString); overload; virtual;
    procedure begingroup(); overload; virtual;
    procedure endgroup(); overload; virtual;
  strict protected
    procedure setRTFDestination(para1: JSTRRTFReader.InnerDestination); overload; virtual;
  public
    procedure close(); overload; virtual;  // throws java.io.IOException
    function handleKeyword(para1: JLString): jboolean; overload; virtual;
    function handleKeyword(para1: JLString; para2: jint): jboolean; overload; virtual;
    procedure setCharacterSet(para1: JLString); overload; virtual;
    class procedure defineCharacterSet(para1: JLString; para2: Arr1jchar); static; overload;
    class procedure defineCharacterSet(para1: JLString; var para2: array of jchar); static; overload;
    class function getCharacterSet(para1: JLString): JLObject; static; overload;  // throws java.io.IOException
  end;

  JMLPrivateMLet = class external 'javax.management.loading' name 'PrivateMLet' (JMLMLet, JMLPrivateClassLoader)
  public
    constructor create(para1: Arr1JNURL; para2: jboolean); overload;
    constructor create(const para1: array of JNURL; para2: jboolean); overload;
    constructor create(para1: Arr1JNURL; para2: JLClassLoader; para3: jboolean); overload;
    constructor create(const para1: array of JNURL; para2: JLClassLoader; para3: jboolean); overload;
    constructor create(para1: Arr1JNURL; para2: JLClassLoader; para3: JNURLStreamHandlerFactory; para4: jboolean); overload;
    constructor create(const para1: array of JNURL; para2: JLClassLoader; para3: JNURLStreamHandlerFactory; para4: jboolean); overload;
  end;

  JRAActivationGroup = class abstract external 'java.rmi.activation' name 'ActivationGroup' (JRSUnicastRemoteObject, JRAActivationInstantiator)
  strict protected
    constructor create(para1: JRAActivationGroupID); overload;  // throws java.rmi.RemoteException
  public
    function inactiveObject(para1: JRAActivationID): jboolean; overload; virtual;  // throws java.rmi.activation.ActivationException, java.rmi.activation.UnknownObjectException, java.rmi.RemoteException
    procedure activeObject(para1: JRAActivationID; para2: JRRemote); overload; virtual; abstract;  // throws java.rmi.activation.ActivationException, java.rmi.activation.UnknownObjectException, java.rmi.RemoteException
    class function createGroup(para1: JRAActivationGroupID; para2: JRAActivationGroupDesc; para3: jlong): JRAActivationGroup; static; overload;  // throws java.rmi.activation.ActivationException
    class function currentGroupID(): JRAActivationGroupID; static; overload;
    class procedure setSystem(para1: JRAActivationSystem); static; overload;  // throws java.rmi.activation.ActivationException
    class function getSystem(): JRAActivationSystem; static; overload;  // throws java.rmi.activation.ActivationException
  strict protected
    procedure activeObject(para1: JRAActivationID; para2: JRMarshalledObject); overload; virtual;  // throws java.rmi.activation.ActivationException, java.rmi.activation.UnknownObjectException, java.rmi.RemoteException
    procedure inactiveGroup(); overload; virtual;  // throws java.rmi.activation.UnknownGroupException, java.rmi.RemoteException
  end;

  JSRWebRowSet = interface external 'javax.sql.rowset' name 'WebRowSet' (JSRCachedRowSet)
    const
      PUBLIC_XML_SCHEMA = '--//Sun Microsystems, Inc.//XSD Schema//EN';
      SCHEMA_SYSTEM_ID = 'http://java.sun.com/xml/ns/jdbc/webrowset.xsd';
    procedure readXml(para1: JIReader); overload;  // throws java.sql.SQLException
    procedure readXml(para1: JIInputStream); overload;  // throws java.sql.SQLException, java.io.IOException
    procedure writeXml(para1: JSResultSet; para2: JIWriter); overload;  // throws java.sql.SQLException
    procedure writeXml(para1: JSResultSet; para2: JIOutputStream); overload;  // throws java.sql.SQLException, java.io.IOException
    procedure writeXml(para1: JIWriter); overload;  // throws java.sql.SQLException
    procedure writeXml(para1: JIOutputStream); overload;  // throws java.sql.SQLException, java.io.IOException
  end;

  JSAuthProvider = class abstract external 'java.security' name 'AuthProvider' (JSProvider)
  strict protected
    constructor create(para1: JLString; para2: jdouble; para3: JLString); overload;
  public
    procedure login(para1: JSASubject; para2: JSACCallbackHandler); overload; virtual; abstract;  // throws javax.security.auth.login.LoginException
    procedure logout(); overload; virtual; abstract;  // throws javax.security.auth.login.LoginException
    procedure setCallbackHandler(para1: JSACCallbackHandler); overload; virtual; abstract;
  end;

  OJXDIDXMLDSigRI = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'XMLDSigRI' (JSProvider)
  public
    constructor create(); overload;
  end;

  JSTTextAction = class abstract external 'javax.swing.text' name 'TextAction' (JSAbstractAction)
  public
    constructor create(para1: JLString); overload;
  strict protected
    function getTextComponent(para1: JAEActionEvent): JSTJTextComponent; overload; virtual; final;
  public
    class function augmentList(para1: Arr1JSAction; para2: Arr1JSAction): Arr1JSAction; static; overload; final;
    class function augmentList(var para1: array of JSAction; var para2: array of JSAction): Arr1JSAction; static; overload; final;
  strict protected
    function getFocusedComponent(): JSTJTextComponent; overload; virtual; final;
  end;

  JBBBeanContextSupport = class external 'java.beans.beancontext' name 'BeanContextSupport' (JBBBeanContextChildSupport, JBBBeanContext, JISerializable, JBPropertyChangeListener, JBVetoableChangeListener)
  public
    type
      InnerBCSChild = class;
      Arr1InnerBCSChild = array of InnerBCSChild;
      Arr2InnerBCSChild = array of Arr1InnerBCSChild;
      Arr3InnerBCSChild = array of Arr2InnerBCSChild;
      InnerBCSIterator = class;
      Arr1InnerBCSIterator = array of InnerBCSIterator;
      Arr2InnerBCSIterator = array of Arr1InnerBCSIterator;
      Arr3InnerBCSIterator = array of Arr2InnerBCSIterator;
      InnerBCSChild = class external 'java.beans.beancontext' name 'BCSChild' 
      end;

      InnerBCSIterator = class sealed external 'java.beans.beancontext' name 'BCSIterator' (JLObject, JUIterator)
      public
        function hasNext(): jboolean; overload; virtual;
        function next(): JLObject; overload; virtual;
        procedure remove(); overload; virtual;
      end;

  strict protected
    var
      fchildren: JUHashMap; external name 'children';
      fbcmListeners: JUArrayList; external name 'bcmListeners';
      flocale: JULocale; external name 'locale';
      fokToUseGui: jboolean; external name 'okToUseGui';
      fdesignTime: jboolean; external name 'designTime';
  public
    constructor create(para1: JBBBeanContext; para2: JULocale; para3: jboolean; para4: jboolean); overload;
    constructor create(para1: JBBBeanContext; para2: JULocale; para3: jboolean); overload;
    constructor create(para1: JBBBeanContext; para2: JULocale); overload;
    constructor create(para1: JBBBeanContext); overload;
    constructor create(); overload;
    function getBeanContextPeer(): JBBBeanContext; overload; virtual;
    function instantiateChild(para1: JLString): JLObject; overload; virtual;  // throws java.io.IOException, java.lang.ClassNotFoundException
    function size(): jint; overload; virtual;
    function isEmpty(): jboolean; overload; virtual;
    function contains(para1: JLObject): jboolean; overload; virtual;
    function containsKey(para1: JLObject): jboolean; overload; virtual;
    function iterator(): JUIterator; overload; virtual;
    function toArray(): Arr1JLObject; overload; virtual;
    function toArray(para1: Arr1JLObject): Arr1JLObject; overload; virtual;
    function toArray(var para1: array of JLObject): Arr1JLObject; overload; virtual;
  strict protected
    function createBCSChild(para1: JLObject; para2: JLObject): JBBBeanContextSupport.InnerBCSChild; overload; virtual;
  public
    function add(para1: JLObject): jboolean; overload; virtual;
    function remove(para1: JLObject): jboolean; overload; virtual;
  strict protected
    function remove(para1: JLObject; para2: jboolean): jboolean; overload; virtual;
  public
    function containsAll(para1: JUCollection): jboolean; overload; virtual;
    function addAll(para1: JUCollection): jboolean; overload; virtual;
    function removeAll(para1: JUCollection): jboolean; overload; virtual;
    function retainAll(para1: JUCollection): jboolean; overload; virtual;
    procedure clear(); overload; virtual;
    procedure addBeanContextMembershipListener(para1: JBBBeanContextMembershipListener); overload; virtual;
    procedure removeBeanContextMembershipListener(para1: JBBBeanContextMembershipListener); overload; virtual;
    function getResourceAsStream(para1: JLString; para2: JBBBeanContextChild): JIInputStream; overload; virtual;
    function getResource(para1: JLString; para2: JBBBeanContextChild): JNURL; overload; virtual;
    procedure setDesignTime(para1: jboolean); overload; virtual;
    function isDesignTime(): jboolean; overload; virtual;
    procedure setLocale(para1: JULocale); overload; virtual;  // throws java.beans.PropertyVetoException
    function getLocale(): JULocale; overload; virtual;
    function needsGui(): jboolean; overload; virtual;
    procedure dontUseGui(); overload; virtual;
    procedure okToUseGui(); overload; virtual;
    function avoidingGui(): jboolean; overload; virtual;
    function isSerializing(): jboolean; overload; virtual;
  strict protected
    function bcsChildren(): JUIterator; overload; virtual;
    procedure bcsPreSerializationHook(para1: JIObjectOutputStream); overload; virtual;  // throws java.io.IOException
    procedure bcsPreDeserializationHook(para1: JIObjectInputStream); overload; virtual;  // throws java.io.IOException, java.lang.ClassNotFoundException
    procedure childDeserializedHook(para1: JLObject; para2: JBBBeanContextSupport.InnerBCSChild); overload; virtual;
    procedure serialize(para1: JIObjectOutputStream; para2: JUCollection); overload; virtual; final;  // throws java.io.IOException
    procedure deserialize(para1: JIObjectInputStream; para2: JUCollection); overload; virtual; final;  // throws java.io.IOException, java.lang.ClassNotFoundException
  public
    procedure writeChildren(para1: JIObjectOutputStream); overload; virtual; final;  // throws java.io.IOException
    procedure readChildren(para1: JIObjectInputStream); overload; virtual; final;  // throws java.io.IOException, java.lang.ClassNotFoundException
    procedure vetoableChange(para1: JBPropertyChangeEvent); overload; virtual;  // throws java.beans.PropertyVetoException
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  strict protected
    function validatePendingAdd(para1: JLObject): jboolean; overload; virtual;
    function validatePendingRemove(para1: JLObject): jboolean; overload; virtual;
    procedure childJustAddedHook(para1: JLObject; para2: JBBBeanContextSupport.InnerBCSChild); overload; virtual;
    procedure childJustRemovedHook(para1: JLObject; para2: JBBBeanContextSupport.InnerBCSChild); overload; virtual;
    class function getChildVisibility(para1: JLObject): JBVisibility; static; overload; final;
    class function getChildSerializable(para1: JLObject): JISerializable; static; overload; final;
    class function getChildPropertyChangeListener(para1: JLObject): JBPropertyChangeListener; static; overload; final;
    class function getChildVetoableChangeListener(para1: JLObject): JBVetoableChangeListener; static; overload; final;
    class function getChildBeanContextMembershipListener(para1: JLObject): JBBBeanContextMembershipListener; static; overload; final;
    class function getChildBeanContextChild(para1: JLObject): JBBBeanContextChild; static; overload; final;
    procedure fireChildrenAdded(para1: JBBBeanContextMembershipEvent); overload; virtual; final;
    procedure fireChildrenRemoved(para1: JBBBeanContextMembershipEvent); overload; virtual; final;
    procedure initialize(); overload; virtual;
    function copyChildren(): Arr1JLObject; overload; virtual; final;
    class function classEquals(para1: JLClass; para2: JLClass): jboolean; static; overload; final;
  end;

  JUCScheduledThreadPoolExecutor = class external 'java.util.concurrent' name 'ScheduledThreadPoolExecutor' (JUCThreadPoolExecutor, JUCScheduledExecutorService)
  public
    type
      InnerDelayedWorkQueue = class;
      Arr1InnerDelayedWorkQueue = array of InnerDelayedWorkQueue;
      Arr2InnerDelayedWorkQueue = array of Arr1InnerDelayedWorkQueue;
      Arr3InnerDelayedWorkQueue = array of Arr2InnerDelayedWorkQueue;
      InnerScheduledFutureTask = class;
      Arr1InnerScheduledFutureTask = array of InnerScheduledFutureTask;
      Arr2InnerScheduledFutureTask = array of Arr1InnerScheduledFutureTask;
      Arr3InnerScheduledFutureTask = array of Arr2InnerScheduledFutureTask;
      InnerDelayedWorkQueue = class external 'java.util.concurrent' name 'DelayedWorkQueue' 
      end;

      InnerScheduledFutureTask = class external 'java.util.concurrent' name 'ScheduledFutureTask' 
      end;

  public
    function remove(para1: JLRunnable): jboolean; overload; virtual;
  strict protected
    function decorateTask(para1: JLRunnable; para2: JUCRunnableScheduledFuture): JUCRunnableScheduledFuture; overload; virtual;
    function decorateTask(para1: JUCCallable; para2: JUCRunnableScheduledFuture): JUCRunnableScheduledFuture; overload; virtual;
  public
    constructor create(para1: jint); overload;
    constructor create(para1: jint; para2: JUCThreadFactory); overload;
    constructor create(para1: jint; para2: JUCRejectedExecutionHandler); overload;
    constructor create(para1: jint; para2: JUCThreadFactory; para3: JUCRejectedExecutionHandler); overload;
    function schedule(para1: JLRunnable; para2: jlong; para3: JUCTimeUnit): JUCScheduledFuture; overload; virtual;
    function schedule(para1: JUCCallable; para2: jlong; para3: JUCTimeUnit): JUCScheduledFuture; overload; virtual;
    function scheduleAtFixedRate(para1: JLRunnable; para2: jlong; para3: jlong; para4: JUCTimeUnit): JUCScheduledFuture; overload; virtual;
    function scheduleWithFixedDelay(para1: JLRunnable; para2: jlong; para3: jlong; para4: JUCTimeUnit): JUCScheduledFuture; overload; virtual;
    procedure execute(para1: JLRunnable); overload; virtual;
    function submit(para1: JLRunnable): JUCFuture; overload; virtual;
    function submit(para1: JLRunnable; para2: JLObject): JUCFuture; overload; virtual;
    function submit(para1: JUCCallable): JUCFuture; overload; virtual;
    procedure setContinueExistingPeriodicTasksAfterShutdownPolicy(para1: jboolean); overload; virtual;
    function getContinueExistingPeriodicTasksAfterShutdownPolicy(): jboolean; overload; virtual;
    procedure setExecuteExistingDelayedTasksAfterShutdownPolicy(para1: jboolean); overload; virtual;
    function getExecuteExistingDelayedTasksAfterShutdownPolicy(): jboolean; overload; virtual;
    procedure shutdown(); overload; virtual;
    function shutdownNow(): JUList; overload; virtual;
    function getQueue(): JUCBlockingQueue; overload; virtual;
  end;

  JMMCounterMonitor = class external 'javax.management.monitor' name 'CounterMonitor' (JMMMonitor, JMMCounterMonitorMBean)
  public
    type
      InnerCounterMonitorObservedObject = class;
      Arr1InnerCounterMonitorObservedObject = array of InnerCounterMonitorObservedObject;
      Arr2InnerCounterMonitorObservedObject = array of Arr1InnerCounterMonitorObservedObject;
      Arr3InnerCounterMonitorObservedObject = array of Arr2InnerCounterMonitorObservedObject;
      InnerCounterMonitorObservedObject = class external 'javax.management.monitor' name 'CounterMonitorObservedObject' 
      end;

  public
    constructor create(); overload;
    procedure start(); overload; virtual;
    procedure stop(); overload; virtual;
    function getDerivedGauge(para1: JMObjectName): JLNumber; overload; virtual;
    function getDerivedGaugeTimeStamp(para1: JMObjectName): jlong; overload; virtual;
    function getThreshold(para1: JMObjectName): JLNumber; overload; virtual;
    function getInitThreshold(): JLNumber; overload; virtual;
    procedure setInitThreshold(para1: JLNumber); overload; virtual;  // throws java.lang.IllegalArgumentException
    function getDerivedGauge(): JLNumber; overload; virtual;
    function getDerivedGaugeTimeStamp(): jlong; overload; virtual;
    function getThreshold(): JLNumber; overload; virtual;
    procedure setThreshold(para1: JLNumber); overload; virtual;  // throws java.lang.IllegalArgumentException
    function getOffset(): JLNumber; overload; virtual;
    procedure setOffset(para1: JLNumber); overload; virtual;  // throws java.lang.IllegalArgumentException
    function getModulus(): JLNumber; overload; virtual;
    procedure setModulus(para1: JLNumber); overload; virtual;  // throws java.lang.IllegalArgumentException
    function getNotify(): jboolean; overload; virtual;
    procedure setNotify(para1: jboolean); overload; virtual;
    function getDifferenceMode(): jboolean; overload; virtual;
    procedure setDifferenceMode(para1: jboolean); overload; virtual;
    function getNotificationInfo(): Arr1JMMBeanNotificationInfo; overload; virtual;
    function getDerivedGauge(para1: JMObjectName): JLObject; overload; virtual;
  end;

  JMMGaugeMonitor = class external 'javax.management.monitor' name 'GaugeMonitor' (JMMMonitor, JMMGaugeMonitorMBean)
  public
    type
      InnerGaugeMonitorObservedObject = class;
      Arr1InnerGaugeMonitorObservedObject = array of InnerGaugeMonitorObservedObject;
      Arr2InnerGaugeMonitorObservedObject = array of Arr1InnerGaugeMonitorObservedObject;
      Arr3InnerGaugeMonitorObservedObject = array of Arr2InnerGaugeMonitorObservedObject;
      InnerGaugeMonitorObservedObject = class external 'javax.management.monitor' name 'GaugeMonitorObservedObject' 
      end;

  public
    constructor create(); overload;
    procedure start(); overload; virtual;
    procedure stop(); overload; virtual;
    function getDerivedGauge(para1: JMObjectName): JLNumber; overload; virtual;
    function getDerivedGaugeTimeStamp(para1: JMObjectName): jlong; overload; virtual;
    function getDerivedGauge(): JLNumber; overload; virtual;
    function getDerivedGaugeTimeStamp(): jlong; overload; virtual;
    function getHighThreshold(): JLNumber; overload; virtual;
    function getLowThreshold(): JLNumber; overload; virtual;
    procedure setThresholds(para1: JLNumber; para2: JLNumber); overload; virtual;  // throws java.lang.IllegalArgumentException
    function getNotifyHigh(): jboolean; overload; virtual;
    procedure setNotifyHigh(para1: jboolean); overload; virtual;
    function getNotifyLow(): jboolean; overload; virtual;
    procedure setNotifyLow(para1: jboolean); overload; virtual;
    function getDifferenceMode(): jboolean; overload; virtual;
    procedure setDifferenceMode(para1: jboolean); overload; virtual;
    function getNotificationInfo(): Arr1JMMBeanNotificationInfo; overload; virtual;
    function getDerivedGauge(para1: JMObjectName): JLObject; overload; virtual;
  end;

  JMMStringMonitor = class external 'javax.management.monitor' name 'StringMonitor' (JMMMonitor, JMMStringMonitorMBean)
  public
    type
      InnerStringMonitorObservedObject = class;
      Arr1InnerStringMonitorObservedObject = array of InnerStringMonitorObservedObject;
      Arr2InnerStringMonitorObservedObject = array of Arr1InnerStringMonitorObservedObject;
      Arr3InnerStringMonitorObservedObject = array of Arr2InnerStringMonitorObservedObject;
      InnerStringMonitorObservedObject = class external 'javax.management.monitor' name 'StringMonitorObservedObject' 
      end;

  public
    constructor create(); overload;
    procedure start(); overload; virtual;
    procedure stop(); overload; virtual;
    function getDerivedGauge(para1: JMObjectName): JLString; overload; virtual;
    function getDerivedGaugeTimeStamp(para1: JMObjectName): jlong; overload; virtual;
    function getDerivedGauge(): JLString; overload; virtual;
    function getDerivedGaugeTimeStamp(): jlong; overload; virtual;
    function getStringToCompare(): JLString; overload; virtual;
    procedure setStringToCompare(para1: JLString); overload; virtual;  // throws java.lang.IllegalArgumentException
    function getNotifyMatch(): jboolean; overload; virtual;
    procedure setNotifyMatch(para1: jboolean); overload; virtual;
    function getNotifyDiffer(): jboolean; overload; virtual;
    procedure setNotifyDiffer(para1: jboolean); overload; virtual;
    function getNotificationInfo(): Arr1JMMBeanNotificationInfo; overload; virtual;
    function getDerivedGauge(para1: JMObjectName): JLObject; overload; virtual;
  end;

  JMRRRMIConnectorServer = class external 'javax.management.remote.rmi' name 'RMIConnectorServer' (JMRJMXConnectorServer)
  public
    const
      JNDI_REBIND_ATTRIBUTE = 'jmx.remote.jndi.rebind';
      RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE = 'jmx.remote.rmi.client.socket.factory';
      RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE = 'jmx.remote.rmi.server.socket.factory';
  public
    constructor create(para1: JMRJMXServiceURL; para2: JUMap); overload;  // throws java.io.IOException
    constructor create(para1: JMRJMXServiceURL; para2: JUMap; para3: JMMBeanServer); overload;  // throws java.io.IOException
    constructor create(para1: JMRJMXServiceURL; para2: JUMap; para3: JMRRRMIServerImpl; para4: JMMBeanServer); overload;  // throws java.io.IOException
    function toJMXConnector(para1: JUMap): JMRJMXConnector; overload; virtual;  // throws java.io.IOException
    procedure start(); overload; virtual;  // throws java.io.IOException
    procedure stop(); overload; virtual;  // throws java.io.IOException
    function isActive(): jboolean; overload; virtual;
    function getAddress(): JMRJMXServiceURL; overload; virtual;
    function getAttributes(): JUMap; overload; virtual;
    procedure setMBeanServerForwarder(para1: JMRMBeanServerForwarder); overload; virtual;
  strict protected
    procedure connectionOpened(para1: JLString; para2: JLString; para3: JLObject); overload; virtual;
    procedure connectionClosed(para1: JLString; para2: JLString; para3: JLObject); overload; virtual;
    procedure connectionFailed(para1: JLString; para2: JLString; para3: JLObject); overload; virtual;
  end;

  JSTHOptionComboBoxModel = class external 'javax.swing.text.html' name 'OptionComboBoxModel' (JSDefaultComboBoxModel, JISerializable)
  public
    procedure setInitialSelection(para1: JSTHOption); overload; virtual;
    function getInitialSelection(): JSTHOption; overload; virtual;
  end;

  JSTHHiddenTagView = class external 'javax.swing.text.html' name 'HiddenTagView' (JSTHEditableView, JSEDocumentListener)
  public
    type
      InnerEndTagBorder = class;
      Arr1InnerEndTagBorder = array of InnerEndTagBorder;
      Arr2InnerEndTagBorder = array of Arr1InnerEndTagBorder;
      Arr3InnerEndTagBorder = array of Arr2InnerEndTagBorder;
      InnerStartTagBorder = class;
      Arr1InnerStartTagBorder = array of InnerStartTagBorder;
      Arr2InnerStartTagBorder = array of Arr1InnerStartTagBorder;
      Arr3InnerStartTagBorder = array of Arr2InnerStartTagBorder;
      InnerEndTagBorder = class external 'javax.swing.text.html' name 'EndTagBorder' 
      end;

      InnerStartTagBorder = class external 'javax.swing.text.html' name 'StartTagBorder' 
      end;

  strict protected
    function createComponent(): JAComponent; overload; virtual;
  public
    function getAlignment(para1: jint): jfloat; overload; virtual;
    function getMinimumSpan(para1: jint): jfloat; overload; virtual;
    function getPreferredSpan(para1: jint): jfloat; overload; virtual;
    function getMaximumSpan(para1: jint): jfloat; overload; virtual;
    procedure insertUpdate(para1: JSEDocumentEvent); overload; virtual;
    procedure removeUpdate(para1: JSEDocumentEvent); overload; virtual;
    procedure changedUpdate(para1: JSEDocumentEvent); overload; virtual;
    procedure changedUpdate(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
  end;

  JSTFlowView = class abstract external 'javax.swing.text' name 'FlowView' (JSTBoxView)
  public
    type
      InnerLogicalView = class;
      Arr1InnerLogicalView = array of InnerLogicalView;
      Arr2InnerLogicalView = array of Arr1InnerLogicalView;
      Arr3InnerLogicalView = array of Arr2InnerLogicalView;
      InnerLogicalView = class external 'javax.swing.text' name 'LogicalView' 
      end;

  public
    type
      InnerFlowStrategy = class;
      Arr1InnerFlowStrategy = array of InnerFlowStrategy;
      Arr2InnerFlowStrategy = array of Arr1InnerFlowStrategy;
      Arr3InnerFlowStrategy = array of Arr2InnerFlowStrategy;
      InnerFlowStrategy = class external 'javax.swing.text' name 'FlowStrategy' (JLObject)
      public
        constructor create(); overload;
        procedure insertUpdate(para1: JSTFlowView; para2: JSEDocumentEvent; para3: JARectangle); overload; virtual;
        procedure removeUpdate(para1: JSTFlowView; para2: JSEDocumentEvent; para3: JARectangle); overload; virtual;
        procedure changedUpdate(para1: JSTFlowView; para2: JSEDocumentEvent; para3: JARectangle); overload; virtual;
      strict protected
        function getLogicalView(para1: JSTFlowView): JSTView; overload; virtual;
      public
        procedure layout(para1: JSTFlowView); overload; virtual;
      strict protected
        function layoutRow(para1: JSTFlowView; para2: jint; para3: jint): jint; overload; virtual;
        procedure adjustRow(para1: JSTFlowView; para2: jint; para3: jint; para4: jint); overload; virtual;
        function createView(para1: JSTFlowView; para2: jint; para3: jint; para4: jint): JSTView; overload; virtual;
      end;

  strict protected
    var
      flayoutSpan: jint; external name 'layoutSpan';
      flayoutPool: JSTView; external name 'layoutPool';
      fstrategy: JSTFlowView.InnerFlowStrategy; external name 'strategy';
  public
    constructor create(para1: JSTElement; para2: jint); overload;
    function getFlowAxis(): jint; overload; virtual;
    function getFlowSpan(para1: jint): jint; overload; virtual;
    function getFlowStart(para1: jint): jint; overload; virtual;
  strict protected
    function createRow(): JSTView; overload; virtual; abstract;
    procedure loadChildren(para1: JSTViewFactory); overload; virtual;
    function getViewIndexAtPosition(para1: jint): jint; overload; virtual;
    procedure layout(para1: jint; para2: jint); overload; virtual;
    function calculateMinorAxisRequirements(para1: jint; para2: JSSizeRequirements): JSSizeRequirements; overload; virtual;
  public
    procedure insertUpdate(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
    procedure removeUpdate(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
    procedure changedUpdate(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
    procedure setParent(para1: JSTView); overload; virtual;
  end;

  JSTTableView = class abstract external 'javax.swing.text' name 'TableView' (JSTBoxView)
  public
    type
      InnerGridCell = interface;
      Arr1InnerGridCell = array of InnerGridCell;
      Arr2InnerGridCell = array of Arr1InnerGridCell;
      Arr3InnerGridCell = array of Arr2InnerGridCell;
      InnerGridCell = interface external 'javax.swing.text' name 'GridCell' 
      end;

  public
    type
      InnerTableCell = class;
      Arr1InnerTableCell = array of InnerTableCell;
      Arr2InnerTableCell = array of Arr1InnerTableCell;
      Arr3InnerTableCell = array of Arr2InnerTableCell;
      InnerTableRow = class;
      Arr1InnerTableRow = array of InnerTableRow;
      Arr2InnerTableRow = array of Arr1InnerTableRow;
      Arr3InnerTableRow = array of Arr2InnerTableRow;
      InnerTableCell = class external 'javax.swing.text' name 'TableCell' 
      end;

      InnerTableRow = class external 'javax.swing.text' name 'TableRow' 
      end;

  public
    constructor create(para1: JSTElement); overload;
  strict protected
    function createTableRow(para1: JSTElement): JSTTableView.InnerTableRow; overload; virtual;
    function createTableCell(para1: JSTElement): JSTTableView.InnerTableCell; overload; virtual;
    procedure forwardUpdate(para1: JSEDocumentEvent.InnerElementChange; para2: JSEDocumentEvent; para3: JAShape; para4: JSTViewFactory); overload; virtual;
  public
    procedure replace(para1: jint; para2: jint; para3: Arr1JSTView); overload; virtual;
    procedure replace(para1: jint; para2: jint; var para3: array of JSTView); overload; virtual;
  strict protected
    procedure layoutColumns(para1: jint; para2: Arr1jint; para3: Arr1jint; para4: Arr1JSSizeRequirements); overload; virtual;
    procedure layoutColumns(para1: jint; var para2: array of jint; var para3: array of jint; var para4: array of JSSizeRequirements); overload; virtual;
    procedure layoutMinorAxis(para1: jint; para2: jint; para3: Arr1jint; para4: Arr1jint); overload; virtual;
    procedure layoutMinorAxis(para1: jint; para2: jint; var para3: array of jint; var para4: array of jint); overload; virtual;
    function calculateMinorAxisRequirements(para1: jint; para2: JSSizeRequirements): JSSizeRequirements; overload; virtual;
    function getViewAtPosition(para1: jint; para2: JARectangle): JSTView; overload; virtual;
  end;

  JSTWrappedPlainView = class external 'javax.swing.text' name 'WrappedPlainView' (JSTBoxView, JSTTabExpander)
  public
    type
      InnerWrappedLine = class;
      Arr1InnerWrappedLine = array of InnerWrappedLine;
      Arr2InnerWrappedLine = array of Arr1InnerWrappedLine;
      Arr3InnerWrappedLine = array of Arr2InnerWrappedLine;
      InnerWrappedLine = class external 'javax.swing.text' name 'WrappedLine' 
      end;

  public
    constructor create(para1: JSTElement); overload;
    constructor create(para1: JSTElement; para2: jboolean); overload;
  strict protected
    function getTabSize(): jint; overload; virtual;
    procedure drawLine(para1: jint; para2: jint; para3: JAGraphics; para4: jint; para5: jint); overload; virtual;
    function drawUnselectedText(para1: JAGraphics; para2: jint; para3: jint; para4: jint; para5: jint): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
    function drawSelectedText(para1: JAGraphics; para2: jint; para3: jint; para4: jint; para5: jint): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
    function getLineBuffer(): JSTSegment; overload; virtual; final;
    function calculateBreakPosition(para1: jint; para2: jint): jint; overload; virtual;
    procedure loadChildren(para1: JSTViewFactory); overload; virtual;
  public
    function nextTabStop(para1: jfloat; para2: jint): jfloat; overload; virtual;
    procedure paint(para1: JAGraphics; para2: JAShape); overload; virtual;
    procedure setSize(para1: jfloat; para2: jfloat); overload; virtual;
    function getPreferredSpan(para1: jint): jfloat; overload; virtual;
    function getMinimumSpan(para1: jint): jfloat; overload; virtual;
    function getMaximumSpan(para1: jint): jfloat; overload; virtual;
    procedure insertUpdate(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
    procedure removeUpdate(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
    procedure changedUpdate(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
  end;

  JSTZoneView = class external 'javax.swing.text' name 'ZoneView' (JSTBoxView)
  public
    type
      InnerZone = class;
      Arr1InnerZone = array of InnerZone;
      Arr2InnerZone = array of Arr1InnerZone;
      Arr3InnerZone = array of Arr2InnerZone;
      InnerZone = class external 'javax.swing.text' name 'Zone' 
      end;

  public
    constructor create(para1: JSTElement; para2: jint); overload;
    function getMaximumZoneSize(): jint; overload; virtual;
    procedure setMaximumZoneSize(para1: jint); overload; virtual;
    function getMaxZonesLoaded(): jint; overload; virtual;
    procedure setMaxZonesLoaded(para1: jint); overload; virtual;
  strict protected
    procedure zoneWasLoaded(para1: JSTView); overload; virtual;
    procedure unloadZone(para1: JSTView); overload; virtual;
    function isZoneLoaded(para1: JSTView): jboolean; overload; virtual;
    function createZone(para1: jint; para2: jint): JSTView; overload; virtual;
    procedure loadChildren(para1: JSTViewFactory); overload; virtual;
    function getViewIndexAtPosition(para1: jint): jint; overload; virtual;
    function updateChildren(para1: JSEDocumentEvent.InnerElementChange; para2: JSEDocumentEvent; para3: JSTViewFactory): jboolean; overload; virtual;
  public
    procedure insertUpdate(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
    procedure removeUpdate(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
  end;

  JSTHBlockView = class external 'javax.swing.text.html' name 'BlockView' (JSTBoxView)
  public
    constructor create(para1: JSTElement; para2: jint); overload;
    procedure setParent(para1: JSTView); overload; virtual;
  strict protected
    function calculateMajorAxisRequirements(para1: jint; para2: JSSizeRequirements): JSSizeRequirements; overload; virtual;
    function calculateMinorAxisRequirements(para1: jint; para2: JSSizeRequirements): JSSizeRequirements; overload; virtual;
    procedure layoutMinorAxis(para1: jint; para2: jint; para3: Arr1jint; para4: Arr1jint); overload; virtual;
    procedure layoutMinorAxis(para1: jint; para2: jint; var para3: array of jint; var para4: array of jint); overload; virtual;
  public
    procedure paint(para1: JAGraphics; para2: JAShape); overload; virtual;
    function getAttributes(): JSTAttributeSet; overload; virtual;
    function getResizeWeight(para1: jint): jint; overload; virtual;
    function getAlignment(para1: jint): jfloat; overload; virtual;
    procedure changedUpdate(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
    function getPreferredSpan(para1: jint): jfloat; overload; virtual;
    function getMinimumSpan(para1: jint): jfloat; overload; virtual;
    function getMaximumSpan(para1: jint): jfloat; overload; virtual;
  strict protected
    procedure setPropertiesFromAttributes(); overload; virtual;
    function getStyleSheet(): JSTHStyleSheet; overload; virtual;
  end;

  JSTHFrameSetView = class external 'javax.swing.text.html' name 'FrameSetView' (JSTBoxView)
  public
    constructor create(para1: JSTElement; para2: jint); overload;
  strict protected
    procedure layoutMajorAxis(para1: jint; para2: jint; para3: Arr1jint; para4: Arr1jint); overload; virtual;
    procedure layoutMajorAxis(para1: jint; para2: jint; var para3: array of jint; var para4: array of jint); overload; virtual;
    function getChildRequests(para1: jint; para2: jint): Arr1JSSizeRequirements; overload; virtual;
  end;

  JSTHTableView = class external 'javax.swing.text.html' name 'TableView' (JSTBoxView, JSTViewFactory)
  public
    type
      InnerCellView = class;
      Arr1InnerCellView = array of InnerCellView;
      Arr2InnerCellView = array of Arr1InnerCellView;
      Arr3InnerCellView = array of Arr2InnerCellView;
      InnerColumnIterator = class;
      Arr1InnerColumnIterator = array of InnerColumnIterator;
      Arr2InnerColumnIterator = array of Arr1InnerColumnIterator;
      Arr3InnerColumnIterator = array of Arr2InnerColumnIterator;
      InnerRowIterator = class;
      Arr1InnerRowIterator = array of InnerRowIterator;
      Arr2InnerRowIterator = array of Arr1InnerRowIterator;
      Arr3InnerRowIterator = array of Arr2InnerRowIterator;
      InnerCellView = class external 'javax.swing.text.html' name 'CellView' 
      end;

      InnerColumnIterator = class external 'javax.swing.text.html' name 'ColumnIterator' 
      end;

      InnerRowIterator = class external 'javax.swing.text.html' name 'RowIterator' 
      end;

  public
    type
      InnerRowView = class;
      Arr1InnerRowView = array of InnerRowView;
      Arr2InnerRowView = array of Arr1InnerRowView;
      Arr3InnerRowView = array of Arr2InnerRowView;
      InnerRowView = class external 'javax.swing.text.html' name 'RowView' 
      end;

  public
    constructor create(para1: JSTElement); overload;
  strict protected
    function createTableRow(para1: JSTElement): JSTHTableView.InnerRowView; overload; virtual;
  public
    function getColumnCount(): jint; overload; virtual;
    function getColumnSpan(para1: jint): jint; overload; virtual;
    function getRowCount(): jint; overload; virtual;
    function getMultiRowSpan(para1: jint; para2: jint): jint; overload; virtual;
    function getRowSpan(para1: jint): jint; overload; virtual;
  strict protected
    function getViewAtPoint(para1: jint; para2: jint; para3: JARectangle): JSTView; overload; virtual;
    function getColumnsOccupied(para1: JSTView): jint; overload; virtual;
    function getRowsOccupied(para1: JSTView): jint; overload; virtual;
    procedure invalidateGrid(); overload; virtual;
    function getStyleSheet(): JSTHStyleSheet; overload; virtual;
    procedure setPropertiesFromAttributes(); overload; virtual;
    procedure layoutColumns(para1: jint; para2: Arr1jint; para3: Arr1jint; para4: Arr1JSSizeRequirements); overload; virtual;
    procedure layoutColumns(para1: jint; var para2: array of jint; var para3: array of jint; var para4: array of JSSizeRequirements); overload; virtual;
    function calculateMinorAxisRequirements(para1: jint; para2: JSSizeRequirements): JSSizeRequirements; overload; virtual;
    function calculateMajorAxisRequirements(para1: jint; para2: JSSizeRequirements): JSSizeRequirements; overload; virtual;
    procedure layoutMinorAxis(para1: jint; para2: jint; para3: Arr1jint; para4: Arr1jint); overload; virtual;
    procedure layoutMinorAxis(para1: jint; para2: jint; var para3: array of jint; var para4: array of jint); overload; virtual;
    procedure layoutMajorAxis(para1: jint; para2: jint; para3: Arr1jint; para4: Arr1jint); overload; virtual;
    procedure layoutMajorAxis(para1: jint; para2: jint; var para3: array of jint; var para4: array of jint); overload; virtual;
    function getViewAtPosition(para1: jint; para2: JARectangle): JSTView; overload; virtual;
  public
    function getAttributes(): JSTAttributeSet; overload; virtual;
    procedure paint(para1: JAGraphics; para2: JAShape); overload; virtual;
    procedure setParent(para1: JSTView); overload; virtual;
    function getViewFactory(): JSTViewFactory; overload; virtual;
    procedure insertUpdate(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
    procedure removeUpdate(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
    procedure changedUpdate(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
  strict protected
    procedure forwardUpdate(para1: JSEDocumentEvent.InnerElementChange; para2: JSEDocumentEvent; para3: JAShape; para4: JSTViewFactory); overload; virtual;
  public
    procedure replace(para1: jint; para2: jint; para3: Arr1JSTView); overload; virtual;
    procedure replace(para1: jint; para2: jint; var para3: array of JSTView); overload; virtual;
    function create_(para1: JSTElement): JSTView; external name 'create'; overload; virtual;
  end;

  JSTHInlineView = class external 'javax.swing.text.html' name 'InlineView' (JSTLabelView)
  public
    constructor create(para1: JSTElement); overload;
    procedure insertUpdate(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
    procedure removeUpdate(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
    procedure changedUpdate(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
    function getAttributes(): JSTAttributeSet; overload; virtual;
    function getBreakWeight(para1: jint; para2: jfloat; para3: jfloat): jint; overload; virtual;
    function breakView(para1: jint; para2: jint; para3: jfloat; para4: jfloat): JSTView; overload; virtual;
  strict protected
    procedure setPropertiesFromAttributes(); overload; virtual;
    function getStyleSheet(): JSTHStyleSheet; overload; virtual;
  end;

  JSTPasswordView = class external 'javax.swing.text' name 'PasswordView' (JSTFieldView)
  public
    constructor create(para1: JSTElement); overload;
  strict protected
    function drawUnselectedText(para1: JAGraphics; para2: jint; para3: jint; para4: jint; para5: jint): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
    function drawSelectedText(para1: JAGraphics; para2: jint; para3: jint; para4: jint; para5: jint): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
    function drawEchoCharacter(para1: JAGraphics; para2: jint; para3: jint; para4: jchar): jint; overload; virtual;
  public
    function modelToView(para1: jint; para2: JAShape; para3: JSTPosition.InnerBias): JAShape; overload; virtual;  // throws javax.swing.text.BadLocationException
    function viewToModel(para1: jfloat; para2: jfloat; para3: JAShape; para4: JSTPosition.Arr1InnerBias): jint; overload; virtual;
    function viewToModel(para1: jfloat; para2: jfloat; para3: JAShape; var para4: array of JSTPosition.InnerBias): jint; overload; virtual;
    function getPreferredSpan(para1: jint): jfloat; overload; virtual;
  end;

  JSTHTextAreaDocument = class external 'javax.swing.text.html' name 'TextAreaDocument' (JSTPlainDocument)
  end;

  JSTHStyleSheet = class external 'javax.swing.text.html' name 'StyleSheet' (JSTStyleContext)
  public
    type
      InnerSearchBuffer = class;
      Arr1InnerSearchBuffer = array of InnerSearchBuffer;
      Arr2InnerSearchBuffer = array of Arr1InnerSearchBuffer;
      Arr3InnerSearchBuffer = array of Arr2InnerSearchBuffer;
      InnerBackgroundImagePainter = class;
      Arr1InnerBackgroundImagePainter = array of InnerBackgroundImagePainter;
      Arr2InnerBackgroundImagePainter = array of Arr1InnerBackgroundImagePainter;
      Arr3InnerBackgroundImagePainter = array of Arr2InnerBackgroundImagePainter;
      InnerCssParser = class;
      Arr1InnerCssParser = array of InnerCssParser;
      Arr2InnerCssParser = array of Arr1InnerCssParser;
      Arr3InnerCssParser = array of Arr2InnerCssParser;
      InnerLargeConversionSet = class;
      Arr1InnerLargeConversionSet = array of InnerLargeConversionSet;
      Arr2InnerLargeConversionSet = array of Arr1InnerLargeConversionSet;
      Arr3InnerLargeConversionSet = array of Arr2InnerLargeConversionSet;
      InnerResolvedStyle = class;
      Arr1InnerResolvedStyle = array of InnerResolvedStyle;
      Arr2InnerResolvedStyle = array of Arr1InnerResolvedStyle;
      Arr3InnerResolvedStyle = array of Arr2InnerResolvedStyle;
      InnerViewAttributeSet = class;
      Arr1InnerViewAttributeSet = array of InnerViewAttributeSet;
      Arr2InnerViewAttributeSet = array of Arr1InnerViewAttributeSet;
      Arr3InnerViewAttributeSet = array of Arr2InnerViewAttributeSet;
      InnerSelectorMapping = class;
      Arr1InnerSelectorMapping = array of InnerSelectorMapping;
      Arr2InnerSelectorMapping = array of Arr1InnerSelectorMapping;
      Arr3InnerSelectorMapping = array of Arr2InnerSelectorMapping;
      InnerSmallConversionSet = class;
      Arr1InnerSmallConversionSet = array of InnerSmallConversionSet;
      Arr2InnerSmallConversionSet = array of Arr1InnerSmallConversionSet;
      Arr3InnerSmallConversionSet = array of Arr2InnerSmallConversionSet;
      InnerSearchBuffer = class external 'javax.swing.text.html' name 'SearchBuffer' 
      end;

      InnerBackgroundImagePainter = class external 'javax.swing.text.html' name 'BackgroundImagePainter' 
      end;

      InnerCssParser = class external 'javax.swing.text.html' name 'CssParser' 
      end;

      InnerLargeConversionSet = class external 'javax.swing.text.html' name 'LargeConversionSet' 
      end;

      InnerResolvedStyle = class external 'javax.swing.text.html' name 'ResolvedStyle' 
      end;

      InnerViewAttributeSet = class external 'javax.swing.text.html' name 'ViewAttributeSet' 
      end;

      InnerSelectorMapping = class external 'javax.swing.text.html' name 'SelectorMapping' 
      end;

      InnerSmallConversionSet = class external 'javax.swing.text.html' name 'SmallConversionSet' 
      end;

  public
    type
      InnerBoxPainter = class;
      Arr1InnerBoxPainter = array of InnerBoxPainter;
      Arr2InnerBoxPainter = array of Arr1InnerBoxPainter;
      Arr3InnerBoxPainter = array of Arr2InnerBoxPainter;
      InnerListPainter = class;
      Arr1InnerListPainter = array of InnerListPainter;
      Arr2InnerListPainter = array of Arr1InnerListPainter;
      Arr3InnerListPainter = array of Arr2InnerListPainter;
      InnerBoxPainter = class external 'javax.swing.text.html' name 'BoxPainter' (JLObject, JISerializable)
      public
        type
          InnerHorizontalMargin = class;
          Arr1InnerHorizontalMargin = array of InnerHorizontalMargin;
          Arr2InnerHorizontalMargin = array of Arr1InnerHorizontalMargin;
          Arr3InnerHorizontalMargin = array of Arr2InnerHorizontalMargin;
          InnerHorizontalMargin = class sealed external 'javax.swing.text.html' name 'HorizontalMargin' 
          end;

      public
        function getInset(para1: jint; para2: JSTView): jfloat; overload; virtual;
        procedure paint(para1: JAGraphics; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat; para6: JSTView); overload; virtual;
      end;

      InnerListPainter = class external 'javax.swing.text.html' name 'ListPainter' (JLObject, JISerializable)
      public
        procedure paint(para1: JAGraphics; para2: jfloat; para3: jfloat; para4: jfloat; para5: jfloat; para6: JSTView; para7: jint); overload; virtual;
      end;

  public
    constructor create(); overload;
    function getRule(para1: JSTHHTML.InnerTag; para2: JSTElement): JSTStyle; overload; virtual;
    function getRule(para1: JLString): JSTStyle; overload; virtual;
    procedure addRule(para1: JLString); overload; virtual;
    function getDeclaration(para1: JLString): JSTAttributeSet; overload; virtual;
    procedure loadRules(para1: JIReader; para2: JNURL); overload; virtual;  // throws java.io.IOException
    function getViewAttributes(para1: JSTView): JSTAttributeSet; overload; virtual;
    procedure removeStyle(para1: JLString); overload; virtual;
    procedure addStyleSheet(para1: JSTHStyleSheet); overload; virtual;
    procedure removeStyleSheet(para1: JSTHStyleSheet); overload; virtual;
    function getStyleSheets(): Arr1JSTHStyleSheet; overload; virtual;
    procedure importStyleSheet(para1: JNURL); overload; virtual;
    procedure setBase(para1: JNURL); overload; virtual;
    function getBase(): JNURL; overload; virtual;
    procedure addCSSAttribute(para1: JSTMutableAttributeSet; para2: JSTHCSS.InnerAttribute; para3: JLString); overload; virtual;
    function addCSSAttributeFromHTML(para1: JSTMutableAttributeSet; para2: JSTHCSS.InnerAttribute; para3: JLString): jboolean; overload; virtual;
    function translateHTMLToCSS(para1: JSTAttributeSet): JSTAttributeSet; overload; virtual;
    function addAttribute(para1: JSTAttributeSet; para2: JLObject; para3: JLObject): JSTAttributeSet; overload; virtual;
    function addAttributes(para1: JSTAttributeSet; para2: JSTAttributeSet): JSTAttributeSet; overload; virtual;
    function removeAttribute(para1: JSTAttributeSet; para2: JLObject): JSTAttributeSet; overload; virtual;
    function removeAttributes(para1: JSTAttributeSet; para2: JUEnumeration): JSTAttributeSet; overload; virtual;
    function removeAttributes(para1: JSTAttributeSet; para2: JSTAttributeSet): JSTAttributeSet; overload; virtual;
  strict protected
    function createSmallAttributeSet(para1: JSTAttributeSet): JSTStyleContext.InnerSmallAttributeSet; overload; virtual;
    function createLargeAttributeSet(para1: JSTAttributeSet): JSTMutableAttributeSet; overload; virtual;
  public
    function getFont(para1: JSTAttributeSet): JAFont; overload; virtual;
    function getForeground(para1: JSTAttributeSet): JAColor; overload; virtual;
    function getBackground(para1: JSTAttributeSet): JAColor; overload; virtual;
    function getBoxPainter(para1: JSTAttributeSet): JSTHStyleSheet.InnerBoxPainter; overload; virtual;
    function getListPainter(para1: JSTAttributeSet): JSTHStyleSheet.InnerListPainter; overload; virtual;
    procedure setBaseFontSize(para1: jint); overload; virtual;
    procedure setBaseFontSize(para1: JLString); overload; virtual;
    class function getIndexOfSize(para1: jfloat): jint; static; overload;
    function getPointSize(para1: jint): jfloat; overload; virtual;
    function getPointSize(para1: JLString): jfloat; overload; virtual;
    function stringToColor(para1: JLString): JAColor; overload; virtual;
  end;

  OJXDIDDOMCanonicalXMLC14NMethod = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'DOMCanonicalXMLC14NMethod' (OJXDIDApacheCanonicalizer)
  public
    constructor create(); overload;
    procedure init(para1: JXCDSTransformParameterSpec); overload; virtual;  // throws java.security.InvalidAlgorithmParameterException
    function transform(para1: JXCData; para2: JXCXMLCryptoContext): JXCData; overload; virtual;  // throws javax.xml.crypto.dsig.TransformException
  end;

  OJXDIDDOMExcC14NMethod = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'DOMExcC14NMethod' (OJXDIDApacheCanonicalizer)
  public
    constructor create(); overload;
    procedure init(para1: JXCDSTransformParameterSpec); overload; virtual;  // throws java.security.InvalidAlgorithmParameterException
    procedure init(para1: JXCXMLStructure; para2: JXCXMLCryptoContext); overload; virtual;  // throws java.security.InvalidAlgorithmParameterException
    procedure marshalParams(para1: JXCXMLStructure; para2: JXCXMLCryptoContext); overload; virtual;  // throws javax.xml.crypto.MarshalException
    function getParamsNSURI(): JLString; overload; virtual;
    function transform(para1: JXCData; para2: JXCXMLCryptoContext): JXCData; overload; virtual;  // throws javax.xml.crypto.dsig.TransformException
  end;

  OJXDIDDOMBase64Transform = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'DOMBase64Transform' (OJXDIDApacheTransform)
  public
    constructor create(); overload;
    procedure init(para1: JXCDSTransformParameterSpec); overload; virtual;  // throws java.security.InvalidAlgorithmParameterException
  end;

  OJXDIDDOMEnvelopedTransform = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'DOMEnvelopedTransform' (OJXDIDApacheTransform)
  public
    constructor create(); overload;
    procedure init(para1: JXCDSTransformParameterSpec); overload; virtual;  // throws java.security.InvalidAlgorithmParameterException
  end;

  OJXDIDDOMXPathFilter2Transform = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'DOMXPathFilter2Transform' (OJXDIDApacheTransform)
  public
    constructor create(); overload;
    procedure init(para1: JXCDSTransformParameterSpec); overload; virtual;  // throws java.security.InvalidAlgorithmParameterException
    procedure init(para1: JXCXMLStructure; para2: JXCXMLCryptoContext); overload; virtual;  // throws java.security.InvalidAlgorithmParameterException
    procedure marshalParams(para1: JXCXMLStructure; para2: JXCXMLCryptoContext); overload; virtual;  // throws javax.xml.crypto.MarshalException
  end;

  OJXDIDDOMXPathTransform = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'DOMXPathTransform' (OJXDIDApacheTransform)
  public
    constructor create(); overload;
    procedure init(para1: JXCDSTransformParameterSpec); overload; virtual;  // throws java.security.InvalidAlgorithmParameterException
    procedure init(para1: JXCXMLStructure; para2: JXCXMLCryptoContext); overload; virtual;  // throws java.security.InvalidAlgorithmParameterException
    procedure marshalParams(para1: JXCXMLStructure; para2: JXCXMLCryptoContext); overload; virtual;  // throws javax.xml.crypto.MarshalException
  end;

  OJXDIDDOMXSLTTransform = class sealed external 'org.jcp.xml.dsig.internal.dom' name 'DOMXSLTTransform' (OJXDIDApacheTransform)
  public
    constructor create(); overload;
    procedure init(para1: JXCDSTransformParameterSpec); overload; virtual;  // throws java.security.InvalidAlgorithmParameterException
    procedure init(para1: JXCXMLStructure; para2: JXCXMLCryptoContext); overload; virtual;  // throws java.security.InvalidAlgorithmParameterException
    procedure marshalParams(para1: JXCXMLStructure; para2: JXCXMLCryptoContext); overload; virtual;  // throws javax.xml.crypto.MarshalException
  end;

  JMRR_RMIConnection_Stub = class external 'javax.management.remote.rmi' name '_RMIConnection_Stub' (JRCStub, JMRRRMIConnection)
  public
    constructor create(); overload;
    function _ids(): Arr1JLString; overload; virtual;
    procedure addNotificationListener(para1: JMObjectName; para2: JMObjectName; para3: JRMarshalledObject; para4: JRMarshalledObject; para5: JSASubject); overload; virtual;  // throws javax.management.InstanceNotFoundException, java.io.IOException
    function addNotificationListeners(para1: Arr1JMObjectName; para2: Arr1JRMarshalledObject; para3: Arr1JSASubject): Arr1JLInteger; overload; virtual;  // throws javax.management.InstanceNotFoundException, java.io.IOException
    function addNotificationListeners(var para1: array of JMObjectName; var para2: array of JRMarshalledObject; var para3: array of JSASubject): Arr1JLInteger; overload; virtual;  // throws javax.management.InstanceNotFoundException, java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JRMarshalledObject; para4: Arr1JLString; para5: JSASubject): JMObjectInstance; overload; virtual;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, java.io.IOException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JRMarshalledObject; var para4: array of JLString; para5: JSASubject): JMObjectInstance; overload; virtual;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, java.io.IOException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JMObjectName; para4: JRMarshalledObject; para5: Arr1JLString; para6: JSASubject): JMObjectInstance; overload; virtual;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, javax.management.InstanceNotFoundException, java.io.IOException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JMObjectName; para4: JRMarshalledObject; var para5: array of JLString; para6: JSASubject): JMObjectInstance; overload; virtual;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, javax.management.InstanceNotFoundException, java.io.IOException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JMObjectName; para4: JSASubject): JMObjectInstance; overload; virtual;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, javax.management.InstanceNotFoundException, java.io.IOException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JSASubject): JMObjectInstance; overload; virtual;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, java.io.IOException
    function fetchNotifications(para1: jlong; para2: jint; para3: jlong): JMRNotificationResult; overload; virtual;  // throws java.io.IOException
    function getAttribute(para1: JMObjectName; para2: JLString; para3: JSASubject): JLObject; overload; virtual;  // throws javax.management.MBeanException, javax.management.AttributeNotFoundException, javax.management.InstanceNotFoundException, javax.management.ReflectionException, java.io.IOException
    function getAttributes(para1: JMObjectName; para2: Arr1JLString; para3: JSASubject): JMAttributeList; overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.ReflectionException, java.io.IOException
    function getAttributes(para1: JMObjectName; var para2: array of JLString; para3: JSASubject): JMAttributeList; overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.ReflectionException, java.io.IOException
    function getConnectionId(): JLString; overload; virtual;  // throws java.io.IOException
    function getDefaultDomain(para1: JSASubject): JLString; overload; virtual;  // throws java.io.IOException
    function getDomains(para1: JSASubject): Arr1JLString; overload; virtual;  // throws java.io.IOException
    function getMBeanCount(para1: JSASubject): JLInteger; overload; virtual;  // throws java.io.IOException
    function getMBeanInfo(para1: JMObjectName; para2: JSASubject): JMMBeanInfo; overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.IntrospectionException, javax.management.ReflectionException, java.io.IOException
    function getObjectInstance(para1: JMObjectName; para2: JSASubject): JMObjectInstance; overload; virtual;  // throws javax.management.InstanceNotFoundException, java.io.IOException
    function invoke(para1: JMObjectName; para2: JLString; para3: JRMarshalledObject; para4: Arr1JLString; para5: JSASubject): JLObject; overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.MBeanException, javax.management.ReflectionException, java.io.IOException
    function invoke(para1: JMObjectName; para2: JLString; para3: JRMarshalledObject; var para4: array of JLString; para5: JSASubject): JLObject; overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.MBeanException, javax.management.ReflectionException, java.io.IOException
    function isInstanceOf(para1: JMObjectName; para2: JLString; para3: JSASubject): jboolean; overload; virtual;  // throws javax.management.InstanceNotFoundException, java.io.IOException
    function isRegistered(para1: JMObjectName; para2: JSASubject): jboolean; overload; virtual;  // throws java.io.IOException
    function queryMBeans(para1: JMObjectName; para2: JRMarshalledObject; para3: JSASubject): JUSet; overload; virtual;  // throws java.io.IOException
    function queryNames(para1: JMObjectName; para2: JRMarshalledObject; para3: JSASubject): JUSet; overload; virtual;  // throws java.io.IOException
    procedure removeNotificationListener(para1: JMObjectName; para2: JMObjectName; para3: JRMarshalledObject; para4: JRMarshalledObject; para5: JSASubject); overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.ListenerNotFoundException, java.io.IOException
    procedure removeNotificationListener(para1: JMObjectName; para2: JMObjectName; para3: JSASubject); overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.ListenerNotFoundException, java.io.IOException
    procedure removeNotificationListeners(para1: JMObjectName; para2: Arr1JLInteger; para3: JSASubject); overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.ListenerNotFoundException, java.io.IOException
    procedure removeNotificationListeners(para1: JMObjectName; var para2: array of JLInteger; para3: JSASubject); overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.ListenerNotFoundException, java.io.IOException
    procedure setAttribute(para1: JMObjectName; para2: JRMarshalledObject; para3: JSASubject); overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.AttributeNotFoundException, javax.management.InvalidAttributeValueException, javax.management.MBeanException, javax.management.ReflectionException, java.io.IOException
    function setAttributes(para1: JMObjectName; para2: JRMarshalledObject; para3: JSASubject): JMAttributeList; overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.ReflectionException, java.io.IOException
    procedure unregisterMBean(para1: JMObjectName; para2: JSASubject); overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.MBeanRegistrationException, java.io.IOException
  end;

  JMRR_RMIServer_Stub = class external 'javax.management.remote.rmi' name '_RMIServer_Stub' (JRCStub, JMRRRMIServer)
  public
    constructor create(); overload;
    function _ids(): Arr1JLString; overload; virtual;
    function getVersion(): JLString; overload; virtual;  // throws java.rmi.RemoteException
    function newClient(para1: JLObject): JMRRRMIConnection; overload; virtual;  // throws java.io.IOException
  end;

  OOSJR_Remote_Stub = class sealed external 'org.omg.stub.java.rmi' name '_Remote_Stub' (JRCStub, JRRemote)
  public
    constructor create(); overload;
    function _ids(): Arr1JLString; overload; virtual;
  end;

  OOSJMRR_RMIConnection_Stub = class external 'org.omg.stub.javax.management.remote.rmi' name '_RMIConnection_Stub' (JRCStub, JMRRRMIConnection)
  public
    constructor create(); overload;
    function _ids(): Arr1JLString; overload; virtual;
    procedure addNotificationListener(para1: JMObjectName; para2: JMObjectName; para3: JRMarshalledObject; para4: JRMarshalledObject; para5: JSASubject); overload; virtual;  // throws javax.management.InstanceNotFoundException, java.io.IOException
    function addNotificationListeners(para1: Arr1JMObjectName; para2: Arr1JRMarshalledObject; para3: Arr1JSASubject): Arr1JLInteger; overload; virtual;  // throws javax.management.InstanceNotFoundException, java.io.IOException
    function addNotificationListeners(var para1: array of JMObjectName; var para2: array of JRMarshalledObject; var para3: array of JSASubject): Arr1JLInteger; overload; virtual;  // throws javax.management.InstanceNotFoundException, java.io.IOException
    procedure close(); overload; virtual;  // throws java.io.IOException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JRMarshalledObject; para4: Arr1JLString; para5: JSASubject): JMObjectInstance; overload; virtual;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, java.io.IOException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JRMarshalledObject; var para4: array of JLString; para5: JSASubject): JMObjectInstance; overload; virtual;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, java.io.IOException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JMObjectName; para4: JRMarshalledObject; para5: Arr1JLString; para6: JSASubject): JMObjectInstance; overload; virtual;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, javax.management.InstanceNotFoundException, java.io.IOException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JMObjectName; para4: JRMarshalledObject; var para5: array of JLString; para6: JSASubject): JMObjectInstance; overload; virtual;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, javax.management.InstanceNotFoundException, java.io.IOException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JMObjectName; para4: JSASubject): JMObjectInstance; overload; virtual;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, javax.management.InstanceNotFoundException, java.io.IOException
    function createMBean(para1: JLString; para2: JMObjectName; para3: JSASubject): JMObjectInstance; overload; virtual;  // throws javax.management.ReflectionException, javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.MBeanException, javax.management.NotCompliantMBeanException, java.io.IOException
    function fetchNotifications(para1: jlong; para2: jint; para3: jlong): JMRNotificationResult; overload; virtual;  // throws java.io.IOException
    function getAttribute(para1: JMObjectName; para2: JLString; para3: JSASubject): JLObject; overload; virtual;  // throws javax.management.MBeanException, javax.management.AttributeNotFoundException, javax.management.InstanceNotFoundException, javax.management.ReflectionException, java.io.IOException
    function getAttributes(para1: JMObjectName; para2: Arr1JLString; para3: JSASubject): JMAttributeList; overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.ReflectionException, java.io.IOException
    function getAttributes(para1: JMObjectName; var para2: array of JLString; para3: JSASubject): JMAttributeList; overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.ReflectionException, java.io.IOException
    function getConnectionId(): JLString; overload; virtual;  // throws java.io.IOException
    function getDefaultDomain(para1: JSASubject): JLString; overload; virtual;  // throws java.io.IOException
    function getDomains(para1: JSASubject): Arr1JLString; overload; virtual;  // throws java.io.IOException
    function getMBeanCount(para1: JSASubject): JLInteger; overload; virtual;  // throws java.io.IOException
    function getMBeanInfo(para1: JMObjectName; para2: JSASubject): JMMBeanInfo; overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.IntrospectionException, javax.management.ReflectionException, java.io.IOException
    function getObjectInstance(para1: JMObjectName; para2: JSASubject): JMObjectInstance; overload; virtual;  // throws javax.management.InstanceNotFoundException, java.io.IOException
    function invoke(para1: JMObjectName; para2: JLString; para3: JRMarshalledObject; para4: Arr1JLString; para5: JSASubject): JLObject; overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.MBeanException, javax.management.ReflectionException, java.io.IOException
    function invoke(para1: JMObjectName; para2: JLString; para3: JRMarshalledObject; var para4: array of JLString; para5: JSASubject): JLObject; overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.MBeanException, javax.management.ReflectionException, java.io.IOException
    function isInstanceOf(para1: JMObjectName; para2: JLString; para3: JSASubject): jboolean; overload; virtual;  // throws javax.management.InstanceNotFoundException, java.io.IOException
    function isRegistered(para1: JMObjectName; para2: JSASubject): jboolean; overload; virtual;  // throws java.io.IOException
    function queryMBeans(para1: JMObjectName; para2: JRMarshalledObject; para3: JSASubject): JUSet; overload; virtual;  // throws java.io.IOException
    function queryNames(para1: JMObjectName; para2: JRMarshalledObject; para3: JSASubject): JUSet; overload; virtual;  // throws java.io.IOException
    procedure removeNotificationListener(para1: JMObjectName; para2: JMObjectName; para3: JRMarshalledObject; para4: JRMarshalledObject; para5: JSASubject); overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.ListenerNotFoundException, java.io.IOException
    procedure removeNotificationListener(para1: JMObjectName; para2: JMObjectName; para3: JSASubject); overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.ListenerNotFoundException, java.io.IOException
    procedure removeNotificationListeners(para1: JMObjectName; para2: Arr1JLInteger; para3: JSASubject); overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.ListenerNotFoundException, java.io.IOException
    procedure removeNotificationListeners(para1: JMObjectName; var para2: array of JLInteger; para3: JSASubject); overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.ListenerNotFoundException, java.io.IOException
    procedure setAttribute(para1: JMObjectName; para2: JRMarshalledObject; para3: JSASubject); overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.AttributeNotFoundException, javax.management.InvalidAttributeValueException, javax.management.MBeanException, javax.management.ReflectionException, java.io.IOException
    function setAttributes(para1: JMObjectName; para2: JRMarshalledObject; para3: JSASubject): JMAttributeList; overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.ReflectionException, java.io.IOException
    procedure unregisterMBean(para1: JMObjectName; para2: JSASubject); overload; virtual;  // throws javax.management.InstanceNotFoundException, javax.management.MBeanRegistrationException, java.io.IOException
  end;

  OOSJMRR_RMIServer_Stub = class external 'org.omg.stub.javax.management.remote.rmi' name '_RMIServer_Stub' (JRCStub, JMRRRMIServer)
  public
    constructor create(); overload;
    function _ids(): Arr1JLString; overload; virtual;
    function getVersion(): JLString; overload; virtual;  // throws java.rmi.RemoteException
    function newClient(para1: JLObject): JMRRRMIConnection; overload; virtual;  // throws java.io.IOException
  end;

  JXSSOAPFault = interface external 'javax.xml.soap' name 'SOAPFault' (JXSSOAPBodyElement)
    procedure setFaultCode(para1: JXSName); overload;  // throws javax.xml.soap.SOAPException
    procedure setFaultCode(para1: JXNQName); overload;  // throws javax.xml.soap.SOAPException
    procedure setFaultCode(para1: JLString); overload;  // throws javax.xml.soap.SOAPException
    function getFaultCodeAsName(): JXSName; overload;
    function getFaultCodeAsQName(): JXNQName; overload;
    function getFaultSubcodes(): JUIterator; overload;
    procedure removeAllFaultSubcodes(); overload;
    procedure appendFaultSubcode(para1: JXNQName); overload;  // throws javax.xml.soap.SOAPException
    function getFaultCode(): JLString; overload;
    procedure setFaultActor(para1: JLString); overload;  // throws javax.xml.soap.SOAPException
    function getFaultActor(): JLString; overload;
    procedure setFaultString(para1: JLString); overload;  // throws javax.xml.soap.SOAPException
    procedure setFaultString(para1: JLString; para2: JULocale); overload;  // throws javax.xml.soap.SOAPException
    function getFaultString(): JLString; overload;
    function getFaultStringLocale(): JULocale; overload;
    function hasDetail(): jboolean; overload;
    function getDetail(): JXSDetail; overload;
    function addDetail(): JXSDetail; overload;  // throws javax.xml.soap.SOAPException
    function getFaultReasonLocales(): JUIterator; overload;  // throws javax.xml.soap.SOAPException
    function getFaultReasonTexts(): JUIterator; overload;  // throws javax.xml.soap.SOAPException
    function getFaultReasonText(para1: JULocale): JLString; overload;  // throws javax.xml.soap.SOAPException
    procedure addFaultReasonText(para1: JLString; para2: JULocale); overload;  // throws javax.xml.soap.SOAPException
    function getFaultNode(): JLString; overload;
    procedure setFaultNode(para1: JLString); overload;  // throws javax.xml.soap.SOAPException
    function getFaultRole(): JLString; overload;
    procedure setFaultRole(para1: JLString); overload;  // throws javax.xml.soap.SOAPException
  end;

  JXSDetail = interface external 'javax.xml.soap' name 'Detail' (JXSSOAPFaultElement)
    function addDetailEntry(para1: JXSName): JXSDetailEntry; overload;  // throws javax.xml.soap.SOAPException
    function addDetailEntry(para1: JXNQName): JXSDetailEntry; overload;  // throws javax.xml.soap.SOAPException
    function getDetailEntries(): JUIterator; overload;
  end;

  JAEKeyEvent = class external 'java.awt.event' name 'KeyEvent' (JAEInputEvent)
  public
    const
      KEY_FIRST = 400;
      KEY_LAST = 402;
      KEY_TYPED = 400;
      KEY_PRESSED = 401;
      KEY_RELEASED = 402;
      VK_ENTER = 10;
      VK_BACK_SPACE = 8;
      VK_TAB = 9;
      VK_CANCEL = 3;
      VK_CLEAR = 12;
      VK_SHIFT = 16;
      VK_CONTROL = 17;
      VK_ALT = 18;
      VK_PAUSE = 19;
      VK_CAPS_LOCK = 20;
      VK_ESCAPE = 27;
      VK_SPACE = 32;
      VK_PAGE_UP = 33;
      VK_PAGE_DOWN = 34;
      VK_END = 35;
      VK_HOME = 36;
      VK_LEFT = 37;
      VK_UP = 38;
      VK_RIGHT = 39;
      VK_DOWN = 40;
      VK_COMMA = 44;
      VK_MINUS = 45;
      VK_PERIOD = 46;
      VK_SLASH = 47;
      VK_0 = 48;
      VK_1 = 49;
      VK_2 = 50;
      VK_3 = 51;
      VK_4 = 52;
      VK_5 = 53;
      VK_6 = 54;
      VK_7 = 55;
      VK_8 = 56;
      VK_9 = 57;
      VK_SEMICOLON = 59;
      VK_EQUALS = 61;
      VK_A = 65;
      VK_B = 66;
      VK_C = 67;
      VK_D = 68;
      VK_E = 69;
      VK_F = 70;
      VK_G = 71;
      VK_H = 72;
      VK_I = 73;
      VK_J = 74;
      VK_K = 75;
      VK_L = 76;
      VK_M = 77;
      VK_N = 78;
      VK_O = 79;
      VK_P = 80;
      VK_Q = 81;
      VK_R = 82;
      VK_S = 83;
      VK_T = 84;
      VK_U = 85;
      VK_V = 86;
      VK_W = 87;
      VK_X = 88;
      VK_Y = 89;
      VK_Z = 90;
      VK_OPEN_BRACKET = 91;
      VK_BACK_SLASH = 92;
      VK_CLOSE_BRACKET = 93;
      VK_NUMPAD0 = 96;
      VK_NUMPAD1 = 97;
      VK_NUMPAD2 = 98;
      VK_NUMPAD3 = 99;
      VK_NUMPAD4 = 100;
      VK_NUMPAD5 = 101;
      VK_NUMPAD6 = 102;
      VK_NUMPAD7 = 103;
      VK_NUMPAD8 = 104;
      VK_NUMPAD9 = 105;
      VK_MULTIPLY = 106;
      VK_ADD = 107;
      VK_SEPARATER = 108;
      VK_SEPARATOR = 108;
      VK_SUBTRACT = 109;
      VK_DECIMAL = 110;
      VK_DIVIDE = 111;
      VK_DELETE = 127;
      VK_NUM_LOCK = 144;
      VK_SCROLL_LOCK = 145;
      VK_F1 = 112;
      VK_F2 = 113;
      VK_F3 = 114;
      VK_F4 = 115;
      VK_F5 = 116;
      VK_F6 = 117;
      VK_F7 = 118;
      VK_F8 = 119;
      VK_F9 = 120;
      VK_F10 = 121;
      VK_F11 = 122;
      VK_F12 = 123;
      VK_F13 = 61440;
      VK_F14 = 61441;
      VK_F15 = 61442;
      VK_F16 = 61443;
      VK_F17 = 61444;
      VK_F18 = 61445;
      VK_F19 = 61446;
      VK_F20 = 61447;
      VK_F21 = 61448;
      VK_F22 = 61449;
      VK_F23 = 61450;
      VK_F24 = 61451;
      VK_PRINTSCREEN = 154;
      VK_INSERT = 155;
      VK_HELP = 156;
      VK_META = 157;
      VK_BACK_QUOTE = 192;
      VK_QUOTE = 222;
      VK_KP_UP = 224;
      VK_KP_DOWN = 225;
      VK_KP_LEFT = 226;
      VK_KP_RIGHT = 227;
      VK_DEAD_GRAVE = 128;
      VK_DEAD_ACUTE = 129;
      VK_DEAD_CIRCUMFLEX = 130;
      VK_DEAD_TILDE = 131;
      VK_DEAD_MACRON = 132;
      VK_DEAD_BREVE = 133;
      VK_DEAD_ABOVEDOT = 134;
      VK_DEAD_DIAERESIS = 135;
      VK_DEAD_ABOVERING = 136;
      VK_DEAD_DOUBLEACUTE = 137;
      VK_DEAD_CARON = 138;
      VK_DEAD_CEDILLA = 139;
      VK_DEAD_OGONEK = 140;
      VK_DEAD_IOTA = 141;
      VK_DEAD_VOICED_SOUND = 142;
      VK_DEAD_SEMIVOICED_SOUND = 143;
      VK_AMPERSAND = 150;
      VK_ASTERISK = 151;
      VK_QUOTEDBL = 152;
      VK_LESS = 153;
      VK_GREATER = 160;
      VK_BRACELEFT = 161;
      VK_BRACERIGHT = 162;
      VK_AT = 512;
      VK_COLON = 513;
      VK_CIRCUMFLEX = 514;
      VK_DOLLAR = 515;
      VK_EURO_SIGN = 516;
      VK_EXCLAMATION_MARK = 517;
      VK_INVERTED_EXCLAMATION_MARK = 518;
      VK_LEFT_PARENTHESIS = 519;
      VK_NUMBER_SIGN = 520;
      VK_PLUS = 521;
      VK_RIGHT_PARENTHESIS = 522;
      VK_UNDERSCORE = 523;
      VK_WINDOWS = 524;
      VK_CONTEXT_MENU = 525;
      VK_FINAL = 24;
      VK_CONVERT = 28;
      VK_NONCONVERT = 29;
      VK_ACCEPT = 30;
      VK_MODECHANGE = 31;
      VK_KANA = 21;
      VK_KANJI = 25;
      VK_ALPHANUMERIC = 240;
      VK_KATAKANA = 241;
      VK_HIRAGANA = 242;
      VK_FULL_WIDTH = 243;
      VK_HALF_WIDTH = 244;
      VK_ROMAN_CHARACTERS = 245;
      VK_ALL_CANDIDATES = 256;
      VK_PREVIOUS_CANDIDATE = 257;
      VK_CODE_INPUT = 258;
      VK_JAPANESE_KATAKANA = 259;
      VK_JAPANESE_HIRAGANA = 260;
      VK_JAPANESE_ROMAN = 261;
      VK_KANA_LOCK = 262;
      VK_INPUT_METHOD_ON_OFF = 263;
      VK_CUT = 65489;
      VK_COPY = 65485;
      VK_PASTE = 65487;
      VK_UNDO = 65483;
      VK_AGAIN = 65481;
      VK_FIND = 65488;
      VK_PROPS = 65482;
      VK_STOP = 65480;
      VK_COMPOSE = 65312;
      VK_ALT_GRAPH = 65406;
      VK_BEGIN = 65368;
      VK_UNDEFINED = 0;
      CHAR_UNDEFINED = 65535;
      KEY_LOCATION_UNKNOWN = 0;
      KEY_LOCATION_STANDARD = 1;
      KEY_LOCATION_LEFT = 2;
      KEY_LOCATION_RIGHT = 3;
      KEY_LOCATION_NUMPAD = 4;
  public
    constructor create(para1: JAComponent; para2: jint; para3: jlong; para4: jint; para5: jint; para6: jchar; para7: jint); overload;
    constructor create(para1: JAComponent; para2: jint; para3: jlong; para4: jint; para5: jint; para6: jchar); overload;
    constructor create(para1: JAComponent; para2: jint; para3: jlong; para4: jint; para5: jint); overload;
    function getKeyCode(): jint; overload; virtual;
    procedure setKeyCode(para1: jint); overload; virtual;
    function getKeyChar(): jchar; overload; virtual;
    procedure setKeyChar(para1: jchar); overload; virtual;
    procedure setModifiers(para1: jint); overload; virtual;
    function getKeyLocation(): jint; overload; virtual;
    class function getKeyText(para1: jint): JLString; static; overload;
    class function getKeyModifiersText(para1: jint): JLString; static; overload;
    function isActionKey(): jboolean; overload; virtual;
    function paramString(): JLString; overload; virtual;
  end;

  JAEMouseEvent = class external 'java.awt.event' name 'MouseEvent' (JAEInputEvent)
  public
    const
      MOUSE_FIRST = 500;
      MOUSE_LAST = 507;
      MOUSE_CLICKED = 500;
      MOUSE_PRESSED = 501;
      MOUSE_RELEASED = 502;
      MOUSE_MOVED = 503;
      MOUSE_ENTERED = 504;
      MOUSE_EXITED = 505;
      MOUSE_DRAGGED = 506;
      MOUSE_WHEEL = 507;
      NOBUTTON = 0;
      BUTTON1 = 1;
      BUTTON2 = 2;
      BUTTON3 = 3;
  public
    function getLocationOnScreen(): JAPoint; overload; virtual;
    function getXOnScreen(): jint; overload; virtual;
    function getYOnScreen(): jint; overload; virtual;
    constructor create(para1: JAComponent; para2: jint; para3: jlong; para4: jint; para5: jint; para6: jint; para7: jint; para8: jboolean; para9: jint); overload;
    constructor create(para1: JAComponent; para2: jint; para3: jlong; para4: jint; para5: jint; para6: jint; para7: jint; para8: jboolean); overload;
    constructor create(para1: JAComponent; para2: jint; para3: jlong; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: jint; para10: jboolean; para11: jint); overload;
    function getX(): jint; overload; virtual;
    function getY(): jint; overload; virtual;
    function getPoint(): JAPoint; overload; virtual;
    procedure translatePoint(para1: jint; para2: jint); overload; virtual;
    function getClickCount(): jint; overload; virtual;
    function getButton(): jint; overload; virtual;
    function isPopupTrigger(): jboolean; overload; virtual;
    class function getMouseModifiersText(para1: jint): JLString; static; overload;
    function paramString(): JLString; overload; virtual;
  end;

  OOD_DynValueStub = class external 'org.omg.DynamicAny' name '_DynValueStub' (OOCPObjectImpl, OODDynValue)
  public
    final class var
      f_opsClass: JLClass; external name '_opsClass';
  public
    constructor create(); overload;
    function current_member_name(): JLString; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function current_member_kind(): OOCTCKind; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_members(): Arr1OODNameValuePair; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure set_members(para1: Arr1OODNameValuePair); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure set_members(var para1: array of OODNameValuePair); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_members_as_dyn_any(): Arr1OODNameDynAnyPair; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure set_members_as_dyn_any(para1: Arr1OODNameDynAnyPair); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure set_members_as_dyn_any(var para1: array of OODNameDynAnyPair); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function is_null(): jboolean; overload; virtual;
    procedure set_to_null(); overload; virtual;
    procedure set_to_value(); overload; virtual;
    function &type(): OOCTypeCode; overload; virtual;
    procedure assign(para1: OODDynAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch
    procedure from_any(para1: OOCAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function to_any(): OOCAny; overload; virtual;
    function equal(para1: OODDynAny): jboolean; overload; virtual;
    procedure destroy(); overload; virtual;
    function copy(): OODDynAny; overload; virtual;
    procedure insert_boolean(para1: jboolean); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_octet(para1: jbyte); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_char(para1: jchar); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_short(para1: jshort); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_ushort(para1: jshort); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_long(para1: jint); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_ulong(para1: jint); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_float(para1: jfloat); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_double(para1: jdouble); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_string(para1: JLString); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_reference(para1: OOCObject); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_typecode(para1: OOCTypeCode); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_longlong(para1: jlong); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_ulonglong(para1: jlong); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_wchar(para1: jchar); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_wstring(para1: JLString); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_any(para1: OOCAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_dyn_any(para1: OODDynAny); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    procedure insert_val(para1: JISerializable); overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_boolean(): jboolean; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_octet(): jbyte; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_char(): jchar; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_short(): jshort; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_ushort(): jshort; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_long(): jint; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_ulong(): jint; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_float(): jfloat; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_double(): jdouble; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_string(): JLString; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_reference(): OOCObject; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_typecode(): OOCTypeCode; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_longlong(): jlong; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_ulonglong(): jlong; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_wchar(): jchar; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_wstring(): JLString; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_any(): OOCAny; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_dyn_any(): OODDynAny; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function get_val(): JISerializable; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch, org.omg.DynamicAny.DynAnyPackage.InvalidValue
    function seek(para1: jint): jboolean; overload; virtual;
    procedure rewind(); overload; virtual;
    function next(): jboolean; overload; virtual;
    function component_count(): jint; overload; virtual;
    function current_component(): OODDynAny; overload; virtual;  // throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch
    function _ids(): Arr1JLString; overload; virtual;
  end;

  JTSimpleDateFormat = class external 'java.text' name 'SimpleDateFormat' (JTDateFormat)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JULocale); overload;
    constructor create(para1: JLString; para2: JTDateFormatSymbols); overload;
    procedure set2DigitYearStart(para1: JUDate); overload; virtual;
    function get2DigitYearStart(): JUDate; overload; virtual;
    function format(para1: JUDate; para2: JLStringBuffer; para3: JTFieldPosition): JLStringBuffer; overload; virtual;
    function formatToCharacterIterator(para1: JLObject): JTAttributedCharacterIterator; overload; virtual;
    function parse(para1: JLString; para2: JTParsePosition): JUDate; overload; virtual;
    function toPattern(): JLString; overload; virtual;
    function toLocalizedPattern(): JLString; overload; virtual;
    procedure applyPattern(para1: JLString); overload; virtual;
    procedure applyLocalizedPattern(para1: JLString); overload; virtual;
    function getDateFormatSymbols(): JTDateFormatSymbols; overload; virtual;
    procedure setDateFormatSymbols(para1: JTDateFormatSymbols); overload; virtual;
    function clone(): JLObject; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
  end;

  JTDontCareFieldPosition = class external 'java.text' name 'DontCareFieldPosition' (JTFieldPosition)
  end;

  JTChoiceFormat = class external 'java.text' name 'ChoiceFormat' (JTNumberFormat)
  public
    procedure applyPattern(para1: JLString); overload; virtual;
    function toPattern(): JLString; overload; virtual;
    constructor create(para1: JLString); overload;
    constructor create(para1: Arr1jdouble; para2: Arr1JLString); overload;
    constructor create(const para1: array of jdouble; const para2: array of JLString); overload;
    procedure setChoices(para1: Arr1jdouble; para2: Arr1JLString); overload; virtual;
    procedure setChoices(var para1: array of jdouble; var para2: array of JLString); overload; virtual;
    function getLimits(): Arr1jdouble; overload; virtual;
    function getFormats(): Arr1JLObject; overload; virtual;
    function format(para1: jlong; para2: JLStringBuffer; para3: JTFieldPosition): JLStringBuffer; overload; virtual;
    function format(para1: jdouble; para2: JLStringBuffer; para3: JTFieldPosition): JLStringBuffer; overload; virtual;
    function parse(para1: JLString; para2: JTParsePosition): JLNumber; overload; virtual;
    class function nextDouble(para1: jdouble): jdouble; static; overload; final;
    class function previousDouble(para1: jdouble): jdouble; static; overload; final;
    function clone(): JLObject; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    class function nextDouble(para1: jdouble; para2: jboolean): jdouble; static; overload;
  end;

  JTDecimalFormat = class external 'java.text' name 'DecimalFormat' (JTNumberFormat)
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: JTDecimalFormatSymbols); overload;
    function format(para1: JLObject; para2: JLStringBuffer; para3: JTFieldPosition): JLStringBuffer; overload; virtual; final;
    function format(para1: jdouble; para2: JLStringBuffer; para3: JTFieldPosition): JLStringBuffer; overload; virtual;
    function format(para1: jlong; para2: JLStringBuffer; para3: JTFieldPosition): JLStringBuffer; overload; virtual;
    function formatToCharacterIterator(para1: JLObject): JTAttributedCharacterIterator; overload; virtual;
    function parse(para1: JLString; para2: JTParsePosition): JLNumber; overload; virtual;
    function getDecimalFormatSymbols(): JTDecimalFormatSymbols; overload; virtual;
    procedure setDecimalFormatSymbols(para1: JTDecimalFormatSymbols); overload; virtual;
    function getPositivePrefix(): JLString; overload; virtual;
    procedure setPositivePrefix(para1: JLString); overload; virtual;
    function getNegativePrefix(): JLString; overload; virtual;
    procedure setNegativePrefix(para1: JLString); overload; virtual;
    function getPositiveSuffix(): JLString; overload; virtual;
    procedure setPositiveSuffix(para1: JLString); overload; virtual;
    function getNegativeSuffix(): JLString; overload; virtual;
    procedure setNegativeSuffix(para1: JLString); overload; virtual;
    function getMultiplier(): jint; overload; virtual;
    procedure setMultiplier(para1: jint); overload; virtual;
    function getGroupingSize(): jint; overload; virtual;
    procedure setGroupingSize(para1: jint); overload; virtual;
    function isDecimalSeparatorAlwaysShown(): jboolean; overload; virtual;
    procedure setDecimalSeparatorAlwaysShown(para1: jboolean); overload; virtual;
    function isParseBigDecimal(): jboolean; overload; virtual;
    procedure setParseBigDecimal(para1: jboolean); overload; virtual;
    function clone(): JLObject; overload; virtual;
    function equals(para1: JLObject): jboolean; overload; virtual;
    function hashCode(): jint; overload; virtual;
    function toPattern(): JLString; overload; virtual;
    function toLocalizedPattern(): JLString; overload; virtual;
    procedure applyPattern(para1: JLString); overload; virtual;
    procedure applyLocalizedPattern(para1: JLString); overload; virtual;
    procedure setMaximumIntegerDigits(para1: jint); overload; virtual;
    procedure setMinimumIntegerDigits(para1: jint); overload; virtual;
    procedure setMaximumFractionDigits(para1: jint); overload; virtual;
    procedure setMinimumFractionDigits(para1: jint); overload; virtual;
    function getMaximumIntegerDigits(): jint; overload; virtual;
    function getMinimumIntegerDigits(): jint; overload; virtual;
    function getMaximumFractionDigits(): jint; overload; virtual;
    function getMinimumFractionDigits(): jint; overload; virtual;
    function getCurrency(): JUCurrency; overload; virtual;
    procedure setCurrency(para1: JUCurrency); overload; virtual;
    function getRoundingMode(): JMRoundingMode; overload; virtual;
    procedure setRoundingMode(para1: JMRoundingMode); overload; virtual;
  end;

  JAPDialogPeer = interface external 'java.awt.peer' name 'DialogPeer' (JAPWindowPeer)
    procedure setTitle(para1: JLString); overload;
    procedure setResizable(para1: jboolean); overload;
    procedure blockWindows(para1: JUList); overload;
  end;

  JAPFramePeer = interface external 'java.awt.peer' name 'FramePeer' (JAPWindowPeer)
    procedure setTitle(para1: JLString); overload;
    procedure setMenuBar(para1: JAMenuBar); overload;
    procedure setResizable(para1: jboolean); overload;
    procedure setState(para1: jint); overload;
    function getState(): jint; overload;
    procedure setMaximizedBounds(para1: JARectangle); overload;
    procedure setBoundsPrivate(para1: jint; para2: jint; para3: jint; para4: jint); overload;
    function getBoundsPrivate(): JARectangle; overload;
  end;

  JSDelegatingDefaultFocusManager = class sealed external 'javax.swing' name 'DelegatingDefaultFocusManager' (JSDefaultFocusManager)
  public
    procedure processKeyEvent(para1: JAComponent; para2: JAEKeyEvent); overload; virtual;
    procedure focusNextComponent(para1: JAComponent); overload; virtual;
    procedure focusPreviousComponent(para1: JAComponent); overload; virtual;
    function getFocusOwner(): JAComponent; overload; virtual;
    procedure clearGlobalFocusOwner(); overload; virtual;
    function getPermanentFocusOwner(): JAComponent; overload; virtual;
    function getFocusedWindow(): JAWindow; overload; virtual;
    function getActiveWindow(): JAWindow; overload; virtual;
    function getDefaultFocusTraversalPolicy(): JAFocusTraversalPolicy; overload; virtual;
    procedure setDefaultFocusTraversalPolicy(para1: JAFocusTraversalPolicy); overload; virtual;
    procedure setDefaultFocusTraversalKeys(para1: jint; para2: JUSet); overload; virtual;
    function getDefaultFocusTraversalKeys(para1: jint): JUSet; overload; virtual;
    function getCurrentFocusCycleRoot(): JAContainer; overload; virtual;
    procedure setGlobalCurrentFocusCycleRoot(para1: JAContainer); overload; virtual;
    procedure addPropertyChangeListener(para1: JBPropertyChangeListener); overload; virtual;
    procedure removePropertyChangeListener(para1: JBPropertyChangeListener); overload; virtual;
    procedure addPropertyChangeListener(para1: JLString; para2: JBPropertyChangeListener); overload; virtual;
    procedure removePropertyChangeListener(para1: JLString; para2: JBPropertyChangeListener); overload; virtual;
    procedure addVetoableChangeListener(para1: JBVetoableChangeListener); overload; virtual;
    procedure removeVetoableChangeListener(para1: JBVetoableChangeListener); overload; virtual;
    procedure addVetoableChangeListener(para1: JLString; para2: JBVetoableChangeListener); overload; virtual;
    procedure removeVetoableChangeListener(para1: JLString; para2: JBVetoableChangeListener); overload; virtual;
    procedure addKeyEventDispatcher(para1: JAKeyEventDispatcher); overload; virtual;
    procedure removeKeyEventDispatcher(para1: JAKeyEventDispatcher); overload; virtual;
    function dispatchEvent(para1: JAAWTEvent): jboolean; overload; virtual;
    function dispatchKeyEvent(para1: JAEKeyEvent): jboolean; overload; virtual;
    procedure upFocusCycle(para1: JAComponent); overload; virtual;
    procedure downFocusCycle(para1: JAContainer); overload; virtual;
  end;

  JSPBBasicTextUI = class abstract external 'javax.swing.plaf.basic' name 'BasicTextUI' (JSPTextUI, JSTViewFactory)
  public
    type
      InnerBasicCursor = class;
      Arr1InnerBasicCursor = array of InnerBasicCursor;
      Arr2InnerBasicCursor = array of Arr1InnerBasicCursor;
      Arr3InnerBasicCursor = array of Arr2InnerBasicCursor;
      InnerDragListener = class;
      Arr1InnerDragListener = array of InnerDragListener;
      Arr2InnerDragListener = array of Arr1InnerDragListener;
      Arr3InnerDragListener = array of Arr2InnerDragListener;
      InnerFocusAction = class;
      Arr1InnerFocusAction = array of InnerFocusAction;
      Arr2InnerFocusAction = array of Arr1InnerFocusAction;
      Arr3InnerFocusAction = array of Arr2InnerFocusAction;
      InnerRootView = class;
      Arr1InnerRootView = array of InnerRootView;
      Arr2InnerRootView = array of Arr1InnerRootView;
      Arr3InnerRootView = array of Arr2InnerRootView;
      InnerTextActionWrapper = class;
      Arr1InnerTextActionWrapper = array of InnerTextActionWrapper;
      Arr2InnerTextActionWrapper = array of Arr1InnerTextActionWrapper;
      Arr3InnerTextActionWrapper = array of Arr2InnerTextActionWrapper;
      InnerTextTransferHandler = class;
      Arr1InnerTextTransferHandler = array of InnerTextTransferHandler;
      Arr2InnerTextTransferHandler = array of Arr1InnerTextTransferHandler;
      Arr3InnerTextTransferHandler = array of Arr2InnerTextTransferHandler;
      InnerUpdateHandler = class;
      Arr1InnerUpdateHandler = array of InnerUpdateHandler;
      Arr2InnerUpdateHandler = array of Arr1InnerUpdateHandler;
      Arr3InnerUpdateHandler = array of Arr2InnerUpdateHandler;
      InnerBasicCursor = class external 'javax.swing.plaf.basic' name 'BasicCursor' 
      end;

      InnerDragListener = class external 'javax.swing.plaf.basic' name 'DragListener' 
      end;

      InnerFocusAction = class external 'javax.swing.plaf.basic' name 'FocusAction' 
      end;

      InnerRootView = class external 'javax.swing.plaf.basic' name 'RootView' 
      end;

      InnerTextActionWrapper = class external 'javax.swing.plaf.basic' name 'TextActionWrapper' 
      end;

      InnerTextTransferHandler = class external 'javax.swing.plaf.basic' name 'TextTransferHandler' 
      public
        type
          InnerTextTransferable = class;
          Arr1InnerTextTransferable = array of InnerTextTransferable;
          Arr2InnerTextTransferable = array of Arr1InnerTextTransferable;
          Arr3InnerTextTransferable = array of Arr2InnerTextTransferable;
          InnerTextTransferable = class external 'javax.swing.plaf.basic' name 'TextTransferable' 
          end;

      end;

      InnerUpdateHandler = class external 'javax.swing.plaf.basic' name 'UpdateHandler' 
      end;

  public
    type
      InnerBasicCaret = class;
      Arr1InnerBasicCaret = array of InnerBasicCaret;
      Arr2InnerBasicCaret = array of Arr1InnerBasicCaret;
      Arr3InnerBasicCaret = array of Arr2InnerBasicCaret;
      InnerBasicHighlighter = class;
      Arr1InnerBasicHighlighter = array of InnerBasicHighlighter;
      Arr2InnerBasicHighlighter = array of Arr1InnerBasicHighlighter;
      Arr3InnerBasicHighlighter = array of Arr2InnerBasicHighlighter;
      InnerBasicCaret = class external 'javax.swing.plaf.basic' name 'BasicCaret' (JSTDefaultCaret, JSPUIResource)
      public
        constructor create(); overload;
      end;

      InnerBasicHighlighter = class external 'javax.swing.plaf.basic' name 'BasicHighlighter' (JSTDefaultHighlighter, JSPUIResource)
      public
        constructor create(); overload;
      end;

  public
    constructor create(); overload;
  strict protected
    function createCaret(): JSTCaret; overload; virtual;
    function createHighlighter(): JSTHighlighter; overload; virtual;
    function getKeymapName(): JLString; overload; virtual;
    function createKeymap(): JSTKeymap; overload; virtual;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
    function getPropertyPrefix(): JLString; overload; virtual; abstract;
    procedure installDefaults(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
    procedure installListeners(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
    procedure installKeyboardActions(); overload; virtual;
    procedure uninstallKeyboardActions(); overload; virtual;
    procedure paintBackground(para1: JAGraphics); overload; virtual;
    function getComponent(): JSTJTextComponent; overload; virtual; final;
    procedure modelChanged(); overload; virtual;
    procedure setView(para1: JSTView); overload; virtual; final;
    procedure paintSafely(para1: JAGraphics); overload; virtual;
  public
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual; final;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
  strict protected
    function getVisibleEditorRect(): JARectangle; overload; virtual;
  public
    function modelToView(para1: JSTJTextComponent; para2: jint): JARectangle; overload; virtual;  // throws javax.swing.text.BadLocationException
    function modelToView(para1: JSTJTextComponent; para2: jint; para3: JSTPosition.InnerBias): JARectangle; overload; virtual;  // throws javax.swing.text.BadLocationException
    function viewToModel(para1: JSTJTextComponent; para2: JAPoint): jint; overload; virtual;
    function viewToModel(para1: JSTJTextComponent; para2: JAPoint; para3: JSTPosition.Arr1InnerBias): jint; overload; virtual;
    function viewToModel(para1: JSTJTextComponent; para2: JAPoint; var para3: array of JSTPosition.InnerBias): jint; overload; virtual;
    function getNextVisualPositionFrom(para1: JSTJTextComponent; para2: jint; para3: JSTPosition.InnerBias; para4: jint; para5: JSTPosition.Arr1InnerBias): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
    function getNextVisualPositionFrom(para1: JSTJTextComponent; para2: jint; para3: JSTPosition.InnerBias; para4: jint; var para5: array of JSTPosition.InnerBias): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
    procedure damageRange(para1: JSTJTextComponent; para2: jint; para3: jint); overload; virtual;
    procedure damageRange(para1: JSTJTextComponent; para2: jint; para3: jint; para4: JSTPosition.InnerBias; para5: JSTPosition.InnerBias); overload; virtual;
    function getEditorKit(para1: JSTJTextComponent): JSTEditorKit; overload; virtual;
    function getRootView(para1: JSTJTextComponent): JSTView; overload; virtual;
    function getToolTipText(para1: JSTJTextComponent; para2: JAPoint): JLString; overload; virtual;
    function create_(para1: JSTElement): JSTView; external name 'create'; overload; virtual;
    function create_(para1: JSTElement; para2: jint; para3: jint): JSTView; external name 'create'; overload; virtual;
  end;

  JSJApplet = class external 'javax.swing' name 'JApplet' (JAApplet, JAAccessible, JSRootPaneContainer, JSTransferHandler.InnerHasGetTransferHandler)
  public
    type
      InnerAccessibleJApplet = class;
      Arr1InnerAccessibleJApplet = array of InnerAccessibleJApplet;
      Arr2InnerAccessibleJApplet = array of Arr1InnerAccessibleJApplet;
      Arr3InnerAccessibleJApplet = array of Arr2InnerAccessibleJApplet;
      InnerAccessibleJApplet = class external 'javax.swing' name 'AccessibleJApplet' 
      end;

  strict protected
    var
      frootPane: JSJRootPane; external name 'rootPane';
      frootPaneCheckingEnabled: jboolean; external name 'rootPaneCheckingEnabled';
      faccessibleContext: JAAccessibleContext; external name 'accessibleContext';
  public
    constructor create(); overload;  // throws java.awt.HeadlessException
  strict protected
    function createRootPane(): JSJRootPane; overload; virtual;
  public
    procedure setTransferHandler(para1: JSTransferHandler); overload; virtual;
    function getTransferHandler(): JSTransferHandler; overload; virtual;
    procedure update(para1: JAGraphics); overload; virtual;
    procedure setJMenuBar(para1: JSJMenuBar); overload; virtual;
    function getJMenuBar(): JSJMenuBar; overload; virtual;
  strict protected
    function isRootPaneCheckingEnabled(): jboolean; overload; virtual;
    procedure setRootPaneCheckingEnabled(para1: jboolean); overload; virtual;
    procedure addImpl(para1: JAComponent; para2: JLObject; para3: jint); overload; virtual;
  public
    procedure remove(para1: JAComponent); overload; virtual;
    procedure setLayout(para1: JALayoutManager); overload; virtual;
    function getRootPane(): JSJRootPane; overload; virtual;
  strict protected
    procedure setRootPane(para1: JSJRootPane); overload; virtual;
  public
    function getContentPane(): JAContainer; overload; virtual;
    procedure setContentPane(para1: JAContainer); overload; virtual;
    function getLayeredPane(): JSJLayeredPane; overload; virtual;
    procedure setLayeredPane(para1: JSJLayeredPane); overload; virtual;
    function getGlassPane(): JAComponent; overload; virtual;
    procedure setGlassPane(para1: JAComponent); overload; virtual;
    function getGraphics(): JAGraphics; overload; virtual;
    procedure repaint(para1: jlong; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJFrame = class external 'javax.swing' name 'JFrame' (JAFrame, JSWindowConstants, JAAccessible, JSRootPaneContainer, JSTransferHandler.InnerHasGetTransferHandler)
  public
    type
      InnerAccessibleJFrame = class;
      Arr1InnerAccessibleJFrame = array of InnerAccessibleJFrame;
      Arr2InnerAccessibleJFrame = array of Arr1InnerAccessibleJFrame;
      Arr3InnerAccessibleJFrame = array of Arr2InnerAccessibleJFrame;
      InnerAccessibleJFrame = class external 'javax.swing' name 'AccessibleJFrame' 
      end;

  public
    const
      EXIT_ON_CLOSE = 3;
  strict protected
    var
      frootPane: JSJRootPane; external name 'rootPane';
      frootPaneCheckingEnabled: jboolean; external name 'rootPaneCheckingEnabled';
      faccessibleContext: JAAccessibleContext; external name 'accessibleContext';
  public
    constructor create(); overload;  // throws java.awt.HeadlessException
    constructor create(para1: JAGraphicsConfiguration); overload;
    constructor create(para1: JLString); overload;  // throws java.awt.HeadlessException
    constructor create(para1: JLString; para2: JAGraphicsConfiguration); overload;
  strict protected
    procedure frameInit(); overload; virtual;
    function createRootPane(): JSJRootPane; overload; virtual;
    procedure processWindowEvent(para1: JAEWindowEvent); overload; virtual;
  public
    procedure setDefaultCloseOperation(para1: jint); overload; virtual;
    function getDefaultCloseOperation(): jint; overload; virtual;
    procedure setTransferHandler(para1: JSTransferHandler); overload; virtual;
    function getTransferHandler(): JSTransferHandler; overload; virtual;
    procedure update(para1: JAGraphics); overload; virtual;
    procedure setJMenuBar(para1: JSJMenuBar); overload; virtual;
    function getJMenuBar(): JSJMenuBar; overload; virtual;
  strict protected
    function isRootPaneCheckingEnabled(): jboolean; overload; virtual;
    procedure setRootPaneCheckingEnabled(para1: jboolean); overload; virtual;
    procedure addImpl(para1: JAComponent; para2: JLObject; para3: jint); overload; virtual;
  public
    procedure remove(para1: JAComponent); overload; virtual;
    procedure setLayout(para1: JALayoutManager); overload; virtual;
    function getRootPane(): JSJRootPane; overload; virtual;
  strict protected
    procedure setRootPane(para1: JSJRootPane); overload; virtual;
  public
    procedure setIconImage(para1: JAImage); overload; virtual;
    function getContentPane(): JAContainer; overload; virtual;
    procedure setContentPane(para1: JAContainer); overload; virtual;
    function getLayeredPane(): JSJLayeredPane; overload; virtual;
    procedure setLayeredPane(para1: JSJLayeredPane); overload; virtual;
    function getGlassPane(): JAComponent; overload; virtual;
    procedure setGlassPane(para1: JAComponent); overload; virtual;
    function getGraphics(): JAGraphics; overload; virtual;
    procedure repaint(para1: jlong; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    class procedure setDefaultLookAndFeelDecorated(para1: jboolean); static; overload;
    class function isDefaultLookAndFeelDecorated(): jboolean; static; overload;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJButton = class external 'javax.swing' name 'JButton' (JSAbstractButton, JAAccessible)
  public
    type
      InnerAccessibleJButton = class;
      Arr1InnerAccessibleJButton = array of InnerAccessibleJButton;
      Arr2InnerAccessibleJButton = array of Arr1InnerAccessibleJButton;
      Arr3InnerAccessibleJButton = array of Arr2InnerAccessibleJButton;
      InnerAccessibleJButton = class external 'javax.swing' name 'AccessibleJButton' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: JSIcon); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JSAction); overload;
    constructor create(para1: JLString; para2: JSIcon); overload;
    procedure updateUI(); overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
    function isDefaultButton(): jboolean; overload; virtual;
    function isDefaultCapable(): jboolean; overload; virtual;
    procedure setDefaultCapable(para1: jboolean); overload; virtual;
    procedure removeNotify(); overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJMenuItem = class external 'javax.swing' name 'JMenuItem' (JSAbstractButton, JAAccessible, JSMenuElement)
  public
    type
      InnerMenuItemFocusListener = class;
      Arr1InnerMenuItemFocusListener = array of InnerMenuItemFocusListener;
      Arr2InnerMenuItemFocusListener = array of Arr1InnerMenuItemFocusListener;
      Arr3InnerMenuItemFocusListener = array of Arr2InnerMenuItemFocusListener;
      InnerMenuItemFocusListener = class external 'javax.swing' name 'MenuItemFocusListener' 
      end;

  public
    type
      InnerAccessibleJMenuItem = class;
      Arr1InnerAccessibleJMenuItem = array of InnerAccessibleJMenuItem;
      Arr2InnerAccessibleJMenuItem = array of Arr1InnerAccessibleJMenuItem;
      Arr3InnerAccessibleJMenuItem = array of Arr2InnerAccessibleJMenuItem;
      InnerAccessibleJMenuItem = class external 'javax.swing' name 'AccessibleJMenuItem' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: JSIcon); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JSAction); overload;
    constructor create(para1: JLString; para2: JSIcon); overload;
    constructor create(para1: JLString; para2: jint); overload;
    procedure setModel(para1: JSButtonModel); overload; virtual;
  strict protected
    procedure init(para1: JLString; para2: JSIcon); overload; virtual;
  public
    procedure setUI(para1: JSPMenuItemUI); overload; virtual;
    procedure updateUI(); overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
    procedure setArmed(para1: jboolean); overload; virtual;
    function isArmed(): jboolean; overload; virtual;
    procedure setEnabled(para1: jboolean); overload; virtual;
    procedure setAccelerator(para1: JSKeyStroke); overload; virtual;
    function getAccelerator(): JSKeyStroke; overload; virtual;
  strict protected
    procedure configurePropertiesFromAction(para1: JSAction); overload; virtual;
    procedure actionPropertyChanged(para1: JSAction; para2: JLString); overload; virtual;
  public
    procedure processMouseEvent(para1: JAEMouseEvent; para2: Arr1JSMenuElement; para3: JSMenuSelectionManager); overload; virtual;
    procedure processMouseEvent(para1: JAEMouseEvent; var para2: array of JSMenuElement; para3: JSMenuSelectionManager); overload; virtual;
    procedure processKeyEvent(para1: JAEKeyEvent; para2: Arr1JSMenuElement; para3: JSMenuSelectionManager); overload; virtual;
    procedure processKeyEvent(para1: JAEKeyEvent; var para2: array of JSMenuElement; para3: JSMenuSelectionManager); overload; virtual;
    procedure processMenuDragMouseEvent(para1: JSEMenuDragMouseEvent); overload; virtual;
    procedure processMenuKeyEvent(para1: JSEMenuKeyEvent); overload; virtual;
  strict protected
    procedure fireMenuDragMouseEntered(para1: JSEMenuDragMouseEvent); overload; virtual;
    procedure fireMenuDragMouseExited(para1: JSEMenuDragMouseEvent); overload; virtual;
    procedure fireMenuDragMouseDragged(para1: JSEMenuDragMouseEvent); overload; virtual;
    procedure fireMenuDragMouseReleased(para1: JSEMenuDragMouseEvent); overload; virtual;
    procedure fireMenuKeyPressed(para1: JSEMenuKeyEvent); overload; virtual;
    procedure fireMenuKeyReleased(para1: JSEMenuKeyEvent); overload; virtual;
    procedure fireMenuKeyTyped(para1: JSEMenuKeyEvent); overload; virtual;
  public
    procedure menuSelectionChanged(para1: jboolean); overload; virtual;
    function getSubElements(): Arr1JSMenuElement; overload; virtual;
    function getComponent(): JAComponent; overload; virtual;
    procedure addMenuDragMouseListener(para1: JSEMenuDragMouseListener); overload; virtual;
    procedure removeMenuDragMouseListener(para1: JSEMenuDragMouseListener); overload; virtual;
    function getMenuDragMouseListeners(): Arr1JSEMenuDragMouseListener; overload; virtual;
    procedure addMenuKeyListener(para1: JSEMenuKeyListener); overload; virtual;
    procedure removeMenuKeyListener(para1: JSEMenuKeyListener); overload; virtual;
    function getMenuKeyListeners(): Arr1JSEMenuKeyListener; overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJToggleButton = class external 'javax.swing' name 'JToggleButton' (JSAbstractButton, JAAccessible)
  public
    type
      InnerAccessibleJToggleButton = class;
      Arr1InnerAccessibleJToggleButton = array of InnerAccessibleJToggleButton;
      Arr2InnerAccessibleJToggleButton = array of Arr1InnerAccessibleJToggleButton;
      Arr3InnerAccessibleJToggleButton = array of Arr2InnerAccessibleJToggleButton;
      InnerToggleButtonModel = class;
      Arr1InnerToggleButtonModel = array of InnerToggleButtonModel;
      Arr2InnerToggleButtonModel = array of Arr1InnerToggleButtonModel;
      Arr3InnerToggleButtonModel = array of Arr2InnerToggleButtonModel;
      InnerAccessibleJToggleButton = class external 'javax.swing' name 'AccessibleJToggleButton' 
      end;

      InnerToggleButtonModel = class external 'javax.swing' name 'ToggleButtonModel' (JSDefaultButtonModel)
      public
        constructor create(); overload;
        function isSelected(): jboolean; overload; virtual;
        procedure setSelected(para1: jboolean); overload; virtual;
        procedure setPressed(para1: jboolean); overload; virtual;
      end;

  public
    constructor create(); overload;
    constructor create(para1: JSIcon); overload;
    constructor create(para1: JSIcon; para2: jboolean); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: jboolean); overload;
    constructor create(para1: JSAction); overload;
    constructor create(para1: JLString; para2: JSIcon); overload;
    constructor create(para1: JLString; para2: JSIcon; para3: jboolean); overload;
    procedure updateUI(); overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSPBBasicDesktopIconUI = class external 'javax.swing.plaf.basic' name 'BasicDesktopIconUI' (JSPDesktopIconUI)
  public
    type
      InnerMouseInputHandler = class;
      Arr1InnerMouseInputHandler = array of InnerMouseInputHandler;
      Arr2InnerMouseInputHandler = array of Arr1InnerMouseInputHandler;
      Arr3InnerMouseInputHandler = array of Arr2InnerMouseInputHandler;
      InnerMouseInputHandler = class external 'javax.swing.plaf.basic' name 'MouseInputHandler' 
      end;

  strict protected
    var
      fdesktopIcon: JSJInternalFrame.InnerJDesktopIcon; external name 'desktopIcon';
      fframe: JSJInternalFrame; external name 'frame';
      ficonPane: JSJComponent; external name 'iconPane';
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    constructor create(); overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure installComponents(); overload; virtual;
    procedure uninstallComponents(); overload; virtual;
    procedure installListeners(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
    procedure installDefaults(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
    function createMouseInputListener(): JSEMouseInputListener; overload; virtual;
  public
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getInsets(para1: JSJComponent): JAInsets; overload; virtual;
    procedure deiconize(); overload; virtual;
  end;

  JSDefaultListCellRenderer = class external 'javax.swing' name 'DefaultListCellRenderer' (JSJLabel, JSListCellRenderer, JISerializable)
  public
    type
      InnerUIResource = class;
      Arr1InnerUIResource = array of InnerUIResource;
      Arr2InnerUIResource = array of Arr1InnerUIResource;
      Arr3InnerUIResource = array of Arr2InnerUIResource;
      InnerUIResource = class external 'javax.swing' name 'UIResource' (JSDefaultListCellRenderer, JSPUIResource)
      public
        constructor create(); overload;
      end;

  strict protected
    class var
      fnoFocusBorder: JSBBorder; external name 'noFocusBorder';
  public
    constructor create(); overload;
    function getListCellRendererComponent(para1: JSJList; para2: JLObject; para3: jint; para4: jboolean; para5: jboolean): JAComponent; overload; virtual;
    function isOpaque(): jboolean; overload; virtual;
    procedure validate(); overload; virtual;
    procedure invalidate(); overload; virtual;
    procedure repaint(); overload; virtual;
    procedure revalidate(); overload; virtual;
    procedure repaint(para1: jlong; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    procedure repaint(para1: JARectangle); overload; virtual;
  strict protected
    procedure firePropertyChange(para1: JLString; para2: JLObject; para3: JLObject); overload; virtual;
  public
    procedure firePropertyChange(para1: JLString; para2: jbyte; para3: jbyte); overload; virtual;
    procedure firePropertyChange(para1: JLString; para2: jchar; para3: jchar); overload; virtual;
    procedure firePropertyChange(para1: JLString; para2: jshort; para3: jshort); overload; virtual;
    procedure firePropertyChange(para1: JLString; para2: jint; para3: jint); overload; virtual;
    procedure firePropertyChange(para1: JLString; para2: jlong; para3: jlong); overload; virtual;
    procedure firePropertyChange(para1: JLString; para2: jfloat; para3: jfloat); overload; virtual;
    procedure firePropertyChange(para1: JLString; para2: jdouble; para3: jdouble); overload; virtual;
    procedure firePropertyChange(para1: JLString; para2: jboolean; para3: jboolean); overload; virtual;
  end;

  JSPBBasicComboBoxRenderer = class external 'javax.swing.plaf.basic' name 'BasicComboBoxRenderer' (JSJLabel, JSListCellRenderer, JISerializable)
  public
    type
      InnerUIResource = class;
      Arr1InnerUIResource = array of InnerUIResource;
      Arr2InnerUIResource = array of Arr1InnerUIResource;
      Arr3InnerUIResource = array of Arr2InnerUIResource;
      InnerUIResource = class external 'javax.swing.plaf.basic' name 'UIResource' (JSPBBasicComboBoxRenderer, JSPUIResource)
      public
        constructor create(); overload;
      end;

  strict protected
    class var
      fnoFocusBorder: JSBBorder; external name 'noFocusBorder';
  public
    constructor create(); overload;
    function getPreferredSize(): JADimension; overload; virtual;
    function getListCellRendererComponent(para1: JSJList; para2: JLObject; para3: jint; para4: jboolean; para5: jboolean): JAComponent; overload; virtual;
  end;

  JSTDefaultTableCellRenderer = class external 'javax.swing.table' name 'DefaultTableCellRenderer' (JSJLabel, JSTTableCellRenderer, JISerializable)
  public
    type
      InnerUIResource = class;
      Arr1InnerUIResource = array of InnerUIResource;
      Arr2InnerUIResource = array of Arr1InnerUIResource;
      Arr3InnerUIResource = array of Arr2InnerUIResource;
      InnerUIResource = class external 'javax.swing.table' name 'UIResource' (JSTDefaultTableCellRenderer, JSPUIResource)
      public
        constructor create(); overload;
      end;

  strict protected
    class var
      fnoFocusBorder: JSBBorder; external name 'noFocusBorder';
  public
    constructor create(); overload;
    procedure setForeground(para1: JAColor); overload; virtual;
    procedure setBackground(para1: JAColor); overload; virtual;
    procedure updateUI(); overload; virtual;
    function getTableCellRendererComponent(para1: JSJTable; para2: JLObject; para3: jboolean; para4: jboolean; para5: jint; para6: jint): JAComponent; overload; virtual;
    function isOpaque(): jboolean; overload; virtual;
    procedure invalidate(); overload; virtual;
    procedure validate(); overload; virtual;
    procedure revalidate(); overload; virtual;
    procedure repaint(para1: jlong; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    procedure repaint(para1: JARectangle); overload; virtual;
    procedure repaint(); overload; virtual;
  strict protected
    procedure firePropertyChange(para1: JLString; para2: JLObject; para3: JLObject); overload; virtual;
  public
    procedure firePropertyChange(para1: JLString; para2: jboolean; para3: jboolean); overload; virtual;
  strict protected
    procedure setValue(para1: JLObject); overload; virtual;
  end;

  JSTDefaultTreeCellRenderer = class external 'javax.swing.tree' name 'DefaultTreeCellRenderer' (JSJLabel, JSTTreeCellRenderer)
  strict protected
    var
      fselected: jboolean; external name 'selected';
      fhasFocus: jboolean; external name 'hasFocus';
      fclosedIcon: JSIcon; external name 'closedIcon';
      fleafIcon: JSIcon; external name 'leafIcon';
      fopenIcon: JSIcon; external name 'openIcon';
      ftextSelectionColor: JAColor; external name 'textSelectionColor';
      ftextNonSelectionColor: JAColor; external name 'textNonSelectionColor';
      fbackgroundSelectionColor: JAColor; external name 'backgroundSelectionColor';
      fbackgroundNonSelectionColor: JAColor; external name 'backgroundNonSelectionColor';
      fborderSelectionColor: JAColor; external name 'borderSelectionColor';
  public
    constructor create(); overload;
    function getDefaultOpenIcon(): JSIcon; overload; virtual;
    function getDefaultClosedIcon(): JSIcon; overload; virtual;
    function getDefaultLeafIcon(): JSIcon; overload; virtual;
    procedure setOpenIcon(para1: JSIcon); overload; virtual;
    function getOpenIcon(): JSIcon; overload; virtual;
    procedure setClosedIcon(para1: JSIcon); overload; virtual;
    function getClosedIcon(): JSIcon; overload; virtual;
    procedure setLeafIcon(para1: JSIcon); overload; virtual;
    function getLeafIcon(): JSIcon; overload; virtual;
    procedure setTextSelectionColor(para1: JAColor); overload; virtual;
    function getTextSelectionColor(): JAColor; overload; virtual;
    procedure setTextNonSelectionColor(para1: JAColor); overload; virtual;
    function getTextNonSelectionColor(): JAColor; overload; virtual;
    procedure setBackgroundSelectionColor(para1: JAColor); overload; virtual;
    function getBackgroundSelectionColor(): JAColor; overload; virtual;
    procedure setBackgroundNonSelectionColor(para1: JAColor); overload; virtual;
    function getBackgroundNonSelectionColor(): JAColor; overload; virtual;
    procedure setBorderSelectionColor(para1: JAColor); overload; virtual;
    function getBorderSelectionColor(): JAColor; overload; virtual;
    procedure setFont(para1: JAFont); overload; virtual;
    function getFont(): JAFont; overload; virtual;
    procedure setBackground(para1: JAColor); overload; virtual;
    function getTreeCellRendererComponent(para1: JSJTree; para2: JLObject; para3: jboolean; para4: jboolean; para5: jboolean; para6: jint; para7: jboolean): JAComponent; overload; virtual;
    procedure paint(para1: JAGraphics); overload; virtual;
    function getPreferredSize(): JADimension; overload; virtual;
    procedure validate(); overload; virtual;
    procedure invalidate(); overload; virtual;
    procedure revalidate(); overload; virtual;
    procedure repaint(para1: jlong; para2: jint; para3: jint; para4: jint; para5: jint); overload; virtual;
    procedure repaint(para1: JARectangle); overload; virtual;
    procedure repaint(); overload; virtual;
  strict protected
    procedure firePropertyChange(para1: JLString; para2: JLObject; para3: JLObject); overload; virtual;
  public
    procedure firePropertyChange(para1: JLString; para2: jbyte; para3: jbyte); overload; virtual;
    procedure firePropertyChange(para1: JLString; para2: jchar; para3: jchar); overload; virtual;
    procedure firePropertyChange(para1: JLString; para2: jshort; para3: jshort); overload; virtual;
    procedure firePropertyChange(para1: JLString; para2: jint; para3: jint); overload; virtual;
    procedure firePropertyChange(para1: JLString; para2: jlong; para3: jlong); overload; virtual;
    procedure firePropertyChange(para1: JLString; para2: jfloat; para3: jfloat); overload; virtual;
    procedure firePropertyChange(para1: JLString; para2: jdouble; para3: jdouble); overload; virtual;
    procedure firePropertyChange(para1: JLString; para2: jboolean; para3: jboolean); overload; virtual;
  end;

  JSJDesktopPane = class external 'javax.swing' name 'JDesktopPane' (JSJLayeredPane, JAAccessible)
  public
    type
      InnerComponentPosition = class;
      Arr1InnerComponentPosition = array of InnerComponentPosition;
      Arr2InnerComponentPosition = array of Arr1InnerComponentPosition;
      Arr3InnerComponentPosition = array of Arr2InnerComponentPosition;
      InnerComponentPosition = class external 'javax.swing' name 'ComponentPosition' 
      end;

  public
    type
      InnerAccessibleJDesktopPane = class;
      Arr1InnerAccessibleJDesktopPane = array of InnerAccessibleJDesktopPane;
      Arr2InnerAccessibleJDesktopPane = array of Arr1InnerAccessibleJDesktopPane;
      Arr3InnerAccessibleJDesktopPane = array of Arr2InnerAccessibleJDesktopPane;
      InnerAccessibleJDesktopPane = class external 'javax.swing' name 'AccessibleJDesktopPane' 
      end;

  public
    const
      LIVE_DRAG_MODE = 0;
      OUTLINE_DRAG_MODE = 1;
  public
    constructor create(); overload;
    function getUI(): JSPDesktopPaneUI; overload; virtual;
    procedure setUI(para1: JSPDesktopPaneUI); overload; virtual;
    procedure setDragMode(para1: jint); overload; virtual;
    function getDragMode(): jint; overload; virtual;
    function getDesktopManager(): JSDesktopManager; overload; virtual;
    procedure setDesktopManager(para1: JSDesktopManager); overload; virtual;
    procedure updateUI(); overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
    function getAllFrames(): Arr1JSJInternalFrame; overload; virtual;
    function getSelectedFrame(): JSJInternalFrame; overload; virtual;
    procedure setSelectedFrame(para1: JSJInternalFrame); overload; virtual;
    function getAllFramesInLayer(para1: jint): Arr1JSJInternalFrame; overload; virtual;
    function selectFrame(para1: jboolean): JSJInternalFrame; overload; virtual;
  strict protected
    procedure addImpl(para1: JAComponent; para2: JLObject; para3: jint); overload; virtual;
  public
    procedure remove(para1: jint); overload; virtual;
    procedure removeAll(); overload; virtual;
    procedure setComponentZOrder(para1: JAComponent; para2: jint); overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJSpinner = class external 'javax.swing' name 'JSpinner' (JSJComponent, JAAccessible)
  public
    type
      InnerDateEditorFormatter = class;
      Arr1InnerDateEditorFormatter = array of InnerDateEditorFormatter;
      Arr2InnerDateEditorFormatter = array of Arr1InnerDateEditorFormatter;
      Arr3InnerDateEditorFormatter = array of Arr2InnerDateEditorFormatter;
      InnerDisabledAction = class;
      Arr1InnerDisabledAction = array of InnerDisabledAction;
      Arr2InnerDisabledAction = array of Arr1InnerDisabledAction;
      Arr3InnerDisabledAction = array of Arr2InnerDisabledAction;
      InnerModelListener = class;
      Arr1InnerModelListener = array of InnerModelListener;
      Arr2InnerModelListener = array of Arr1InnerModelListener;
      Arr3InnerModelListener = array of Arr2InnerModelListener;
      InnerNumberEditorFormatter = class;
      Arr1InnerNumberEditorFormatter = array of InnerNumberEditorFormatter;
      Arr2InnerNumberEditorFormatter = array of Arr1InnerNumberEditorFormatter;
      Arr3InnerNumberEditorFormatter = array of Arr2InnerNumberEditorFormatter;
      InnerDateEditorFormatter = class external 'javax.swing' name 'DateEditorFormatter' 
      end;

      InnerDisabledAction = class external 'javax.swing' name 'DisabledAction' 
      end;

      InnerModelListener = class external 'javax.swing' name 'ModelListener' 
      end;

      InnerNumberEditorFormatter = class external 'javax.swing' name 'NumberEditorFormatter' 
      end;

  public
    type
      InnerAccessibleJSpinner = class;
      Arr1InnerAccessibleJSpinner = array of InnerAccessibleJSpinner;
      Arr2InnerAccessibleJSpinner = array of Arr1InnerAccessibleJSpinner;
      Arr3InnerAccessibleJSpinner = array of Arr2InnerAccessibleJSpinner;
      InnerDefaultEditor = class;
      Arr1InnerDefaultEditor = array of InnerDefaultEditor;
      Arr2InnerDefaultEditor = array of Arr1InnerDefaultEditor;
      Arr3InnerDefaultEditor = array of Arr2InnerDefaultEditor;
      InnerDateEditor = class;
      Arr1InnerDateEditor = array of InnerDateEditor;
      Arr2InnerDateEditor = array of Arr1InnerDateEditor;
      Arr3InnerDateEditor = array of Arr2InnerDateEditor;
      InnerListEditor = class;
      Arr1InnerListEditor = array of InnerListEditor;
      Arr2InnerListEditor = array of Arr1InnerListEditor;
      Arr3InnerListEditor = array of Arr2InnerListEditor;
      InnerNumberEditor = class;
      Arr1InnerNumberEditor = array of InnerNumberEditor;
      Arr2InnerNumberEditor = array of Arr1InnerNumberEditor;
      Arr3InnerNumberEditor = array of Arr2InnerNumberEditor;
      InnerAccessibleJSpinner = class external 'javax.swing' name 'AccessibleJSpinner' 
      end;

      InnerDefaultEditor = class external 'javax.swing' name 'DefaultEditor' (JSJPanel, JSEChangeListener, JBPropertyChangeListener, JALayoutManager)
      public
        constructor create(para1: JSJSpinner); overload;
        procedure dismiss(para1: JSJSpinner); overload; virtual;
        function getSpinner(): JSJSpinner; overload; virtual;
        function getTextField(): JSJFormattedTextField; overload; virtual;
        procedure stateChanged(para1: JSEChangeEvent); overload; virtual;
        procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
        procedure addLayoutComponent(para1: JLString; para2: JAComponent); overload; virtual;
        procedure removeLayoutComponent(para1: JAComponent); overload; virtual;
        function preferredLayoutSize(para1: JAContainer): JADimension; overload; virtual;
        function minimumLayoutSize(para1: JAContainer): JADimension; overload; virtual;
        procedure layoutContainer(para1: JAContainer); overload; virtual;
        procedure commitEdit(); overload; virtual;  // throws java.text.ParseException
        function getBaseline(para1: jint; para2: jint): jint; overload; virtual;
        function getBaselineResizeBehavior(): JAComponent.InnerBaselineResizeBehavior; overload; virtual;
      end;

      InnerDateEditor = class external 'javax.swing' name 'DateEditor' (InnerDefaultEditor)
      public
        constructor create(para1: JSJSpinner); overload;
        constructor create(para1: JSJSpinner; para2: JLString); overload;
        function getFormat(): JTSimpleDateFormat; overload; virtual;
        function getModel(): JSSpinnerDateModel; overload; virtual;
      end;

      InnerListEditor = class external 'javax.swing' name 'ListEditor' (InnerDefaultEditor)
      public
        type
          InnerListFormatter = class;
          Arr1InnerListFormatter = array of InnerListFormatter;
          Arr2InnerListFormatter = array of Arr1InnerListFormatter;
          Arr3InnerListFormatter = array of Arr2InnerListFormatter;
          InnerListFormatter = class external 'javax.swing' name 'ListFormatter' 
          public
            type
              InnerFilter = class;
              Arr1InnerFilter = array of InnerFilter;
              Arr2InnerFilter = array of Arr1InnerFilter;
              Arr3InnerFilter = array of Arr2InnerFilter;
              InnerFilter = class external 'javax.swing' name 'Filter' 
              end;

          end;

      public
        constructor create(para1: JSJSpinner); overload;
        function getModel(): JSSpinnerListModel; overload; virtual;
      end;

      InnerNumberEditor = class external 'javax.swing' name 'NumberEditor' (InnerDefaultEditor)
      public
        constructor create(para1: JSJSpinner); overload;
        constructor create(para1: JSJSpinner; para2: JLString); overload;
        function getFormat(): JTDecimalFormat; overload; virtual;
        function getModel(): JSSpinnerNumberModel; overload; virtual;
      end;

  public
    constructor create(para1: JSSpinnerModel); overload;
    constructor create(); overload;
    function getUI(): JSPSpinnerUI; overload; virtual;
    procedure setUI(para1: JSPSpinnerUI); overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
    procedure updateUI(); overload; virtual;
  strict protected
    function createEditor(para1: JSSpinnerModel): JSJComponent; overload; virtual;
  public
    procedure setModel(para1: JSSpinnerModel); overload; virtual;
    function getModel(): JSSpinnerModel; overload; virtual;
    function getValue(): JLObject; overload; virtual;
    procedure setValue(para1: JLObject); overload; virtual;
    function getNextValue(): JLObject; overload; virtual;
    procedure addChangeListener(para1: JSEChangeListener); overload; virtual;
    procedure removeChangeListener(para1: JSEChangeListener); overload; virtual;
    function getChangeListeners(): Arr1JSEChangeListener; overload; virtual;
  strict protected
    procedure fireStateChanged(); overload; virtual;
  public
    function getPreviousValue(): JLObject; overload; virtual;
    procedure setEditor(para1: JSJComponent); overload; virtual;
    function getEditor(): JSJComponent; overload; virtual;
    procedure commitEdit(); overload; virtual;  // throws java.text.ParseException
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSCAbstractColorChooserPanel = class abstract external 'javax.swing.colorchooser' name 'AbstractColorChooserPanel' (JSJPanel)
  public
    type
      InnerModelListener = class;
      Arr1InnerModelListener = array of InnerModelListener;
      Arr2InnerModelListener = array of Arr1InnerModelListener;
      Arr3InnerModelListener = array of Arr2InnerModelListener;
      InnerModelListener = class external 'javax.swing.colorchooser' name 'ModelListener' 
      end;

  public
    constructor create(); overload;
    procedure updateChooser(); overload; virtual; abstract;
  strict protected
    procedure buildChooser(); overload; virtual; abstract;
  public
    function getDisplayName(): JLString; overload; virtual; abstract;
    function getMnemonic(): jint; overload; virtual;
    function getDisplayedMnemonicIndex(): jint; overload; virtual;
    function getSmallDisplayIcon(): JSIcon; overload; virtual; abstract;
    function getLargeDisplayIcon(): JSIcon; overload; virtual; abstract;
    procedure installChooserPanel(para1: JSJColorChooser); overload; virtual;
    procedure uninstallChooserPanel(para1: JSJColorChooser); overload; virtual;
    function getColorSelectionModel(): JSCColorSelectionModel; overload; virtual;
  strict protected
    function getColorFromModel(): JAColor; overload; virtual;
  public
    procedure paint(para1: JAGraphics); overload; virtual;
  end;

  JSCDefaultPreviewPanel = class external 'javax.swing.colorchooser' name 'DefaultPreviewPanel' (JSJPanel)
  public
    function getPreferredSize(): JADimension; overload; virtual;
    procedure paintComponent(para1: JAGraphics); overload; virtual;
  end;

  JSCSwatchPanel = class external 'javax.swing.colorchooser' name 'SwatchPanel' (JSJPanel)
  strict protected
    var
      fcolors: Arr1JAColor; external name 'colors';
      fswatchSize: JADimension; external name 'swatchSize';
      fnumSwatches: JADimension; external name 'numSwatches';
      fgap: JADimension; external name 'gap';
  public
    constructor create(); overload;
    function isFocusTraversable(): jboolean; overload; virtual;
  strict protected
    procedure initValues(); overload; virtual;
  public
    procedure paintComponent(para1: JAGraphics); overload; virtual;
    function getPreferredSize(): JADimension; overload; virtual;
  strict protected
    procedure initColors(); overload; virtual;
  public
    function getToolTipText(para1: JAEMouseEvent): JLString; overload; virtual;
    function getColorForLocation(para1: jint; para2: jint): JAColor; overload; virtual;
  end;

  JSJPopupMenu = class external 'javax.swing' name 'JPopupMenu' (JSJComponent, JAAccessible, JSMenuElement)
  public
    type
      InnerAccessibleJPopupMenu = class;
      Arr1InnerAccessibleJPopupMenu = array of InnerAccessibleJPopupMenu;
      Arr2InnerAccessibleJPopupMenu = array of Arr1InnerAccessibleJPopupMenu;
      Arr3InnerAccessibleJPopupMenu = array of Arr2InnerAccessibleJPopupMenu;
      InnerSeparator = class;
      Arr1InnerSeparator = array of InnerSeparator;
      Arr2InnerSeparator = array of Arr1InnerSeparator;
      Arr3InnerSeparator = array of Arr2InnerSeparator;
      InnerAccessibleJPopupMenu = class external 'javax.swing' name 'AccessibleJPopupMenu' 
      end;

      InnerSeparator = class external 'javax.swing' name 'Separator' (JSJSeparator)
      public
        constructor create(); overload;
        function getUIClassID(): JLString; overload; virtual;
      end;

  public
    class procedure setDefaultLightWeightPopupEnabled(para1: jboolean); static; overload;
    class function getDefaultLightWeightPopupEnabled(): jboolean; static; overload;
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    function getUI(): JSPPopupMenuUI; overload; virtual;
    procedure setUI(para1: JSPPopupMenuUI); overload; virtual;
    procedure updateUI(); overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
  strict protected
    procedure processFocusEvent(para1: JAEFocusEvent); overload; virtual;
    procedure processKeyEvent(para1: JAEKeyEvent); overload; virtual;
  public
    function getSelectionModel(): JSSingleSelectionModel; overload; virtual;
    procedure setSelectionModel(para1: JSSingleSelectionModel); overload; virtual;
    function add(para1: JSJMenuItem): JSJMenuItem; overload; virtual;
    function add(para1: JLString): JSJMenuItem; overload; virtual;
    function add(para1: JSAction): JSJMenuItem; overload; virtual;
  strict protected
    function createActionComponent(para1: JSAction): JSJMenuItem; overload; virtual;
    function createActionChangeListener(para1: JSJMenuItem): JBPropertyChangeListener; overload; virtual;
  public
    procedure remove(para1: jint); overload; virtual;
    procedure setLightWeightPopupEnabled(para1: jboolean); overload; virtual;
    function isLightWeightPopupEnabled(): jboolean; overload; virtual;
    function getLabel(): JLString; overload; virtual;
    procedure setLabel(para1: JLString); overload; virtual;
    procedure addSeparator(); overload; virtual;
    procedure insert(para1: JSAction; para2: jint); overload; virtual;
    procedure insert(para1: JAComponent; para2: jint); overload; virtual;
    procedure addPopupMenuListener(para1: JSEPopupMenuListener); overload; virtual;
    procedure removePopupMenuListener(para1: JSEPopupMenuListener); overload; virtual;
    function getPopupMenuListeners(): Arr1JSEPopupMenuListener; overload; virtual;
    procedure addMenuKeyListener(para1: JSEMenuKeyListener); overload; virtual;
    procedure removeMenuKeyListener(para1: JSEMenuKeyListener); overload; virtual;
    function getMenuKeyListeners(): Arr1JSEMenuKeyListener; overload; virtual;
  strict protected
    procedure firePopupMenuWillBecomeVisible(); overload; virtual;
    procedure firePopupMenuWillBecomeInvisible(); overload; virtual;
    procedure firePopupMenuCanceled(); overload; virtual;
  public
    procedure pack(); overload; virtual;
    procedure setVisible(para1: jboolean); overload; virtual;
    function isVisible(): jboolean; overload; virtual;
    procedure setLocation(para1: jint; para2: jint); overload; virtual;
    function getInvoker(): JAComponent; overload; virtual;
    procedure setInvoker(para1: JAComponent); overload; virtual;
    procedure show(para1: JAComponent; para2: jint; para3: jint); overload; virtual;
    function getComponentAtIndex(para1: jint): JAComponent; overload; virtual;
    function getComponentIndex(para1: JAComponent): jint; overload; virtual;
    procedure setPopupSize(para1: JADimension); overload; virtual;
    procedure setPopupSize(para1: jint; para2: jint); overload; virtual;
    procedure setSelected(para1: JAComponent); overload; virtual;
    function isBorderPainted(): jboolean; overload; virtual;
    procedure setBorderPainted(para1: jboolean); overload; virtual;
  strict protected
    procedure paintBorder(para1: JAGraphics); overload; virtual;
  public
    function getMargin(): JAInsets; overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
    procedure processMouseEvent(para1: JAEMouseEvent; para2: Arr1JSMenuElement; para3: JSMenuSelectionManager); overload; virtual;
    procedure processMouseEvent(para1: JAEMouseEvent; var para2: array of JSMenuElement; para3: JSMenuSelectionManager); overload; virtual;
    procedure processKeyEvent(para1: JAEKeyEvent; para2: Arr1JSMenuElement; para3: JSMenuSelectionManager); overload; virtual;
    procedure processKeyEvent(para1: JAEKeyEvent; var para2: array of JSMenuElement; para3: JSMenuSelectionManager); overload; virtual;
    procedure menuSelectionChanged(para1: jboolean); overload; virtual;
    function getSubElements(): Arr1JSMenuElement; overload; virtual;
    function getComponent(): JAComponent; overload; virtual;
    function isPopupTrigger(para1: JAEMouseEvent): jboolean; overload; virtual;
  end;

  JSJToolBar = class external 'javax.swing' name 'JToolBar' (JSJComponent, JSSwingConstants, JAAccessible)
  public
    type
      InnerDefaultToolBarLayout = class;
      Arr1InnerDefaultToolBarLayout = array of InnerDefaultToolBarLayout;
      Arr2InnerDefaultToolBarLayout = array of Arr1InnerDefaultToolBarLayout;
      Arr3InnerDefaultToolBarLayout = array of Arr2InnerDefaultToolBarLayout;
      InnerDefaultToolBarLayout = class external 'javax.swing' name 'DefaultToolBarLayout' 
      end;

  public
    type
      InnerAccessibleJToolBar = class;
      Arr1InnerAccessibleJToolBar = array of InnerAccessibleJToolBar;
      Arr2InnerAccessibleJToolBar = array of Arr1InnerAccessibleJToolBar;
      Arr3InnerAccessibleJToolBar = array of Arr2InnerAccessibleJToolBar;
      InnerSeparator = class;
      Arr1InnerSeparator = array of InnerSeparator;
      Arr2InnerSeparator = array of Arr1InnerSeparator;
      Arr3InnerSeparator = array of Arr2InnerSeparator;
      InnerAccessibleJToolBar = class external 'javax.swing' name 'AccessibleJToolBar' 
      end;

      InnerSeparator = class external 'javax.swing' name 'Separator' (JSJSeparator)
      public
        constructor create(); overload;
        constructor create(para1: JADimension); overload;
        function getUIClassID(): JLString; overload; virtual;
        procedure setSeparatorSize(para1: JADimension); overload; virtual;
        function getSeparatorSize(): JADimension; overload; virtual;
        function getMinimumSize(): JADimension; overload; virtual;
        function getMaximumSize(): JADimension; overload; virtual;
        function getPreferredSize(): JADimension; overload; virtual;
      end;

  public
    constructor create(); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: jint); overload;
    function getUI(): JSPToolBarUI; overload; virtual;
    procedure setUI(para1: JSPToolBarUI); overload; virtual;
    procedure updateUI(); overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
    function getComponentIndex(para1: JAComponent): jint; overload; virtual;
    function getComponentAtIndex(para1: jint): JAComponent; overload; virtual;
    procedure setMargin(para1: JAInsets); overload; virtual;
    function getMargin(): JAInsets; overload; virtual;
    function isBorderPainted(): jboolean; overload; virtual;
    procedure setBorderPainted(para1: jboolean); overload; virtual;
  strict protected
    procedure paintBorder(para1: JAGraphics); overload; virtual;
  public
    function isFloatable(): jboolean; overload; virtual;
    procedure setFloatable(para1: jboolean); overload; virtual;
    function getOrientation(): jint; overload; virtual;
    procedure setOrientation(para1: jint); overload; virtual;
    procedure setRollover(para1: jboolean); overload; virtual;
    function isRollover(): jboolean; overload; virtual;
    procedure addSeparator(); overload; virtual;
    procedure addSeparator(para1: JADimension); overload; virtual;
    function add(para1: JSAction): JSJButton; overload; virtual;
  strict protected
    function createActionComponent(para1: JSAction): JSJButton; overload; virtual;
    function createActionChangeListener(para1: JSJButton): JBPropertyChangeListener; overload; virtual;
    procedure addImpl(para1: JAComponent; para2: JLObject; para3: jint); overload; virtual;
    function paramString(): JLString; overload; virtual;
  public
    procedure setLayout(para1: JALayoutManager); overload; virtual;
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSTablePrintable = class external 'javax.swing' name 'TablePrintable' (JLObject, JAPPrintable)
  public
    constructor create(para1: JSJTable; para2: JSJTable.InnerPrintMode; para3: JTMessageFormat; para4: JTMessageFormat); overload;
    function print(para1: JAGraphics; para2: JAPPageFormat; para3: jint): jint; overload; virtual;  // throws java.awt.print.PrinterException
  end;

  JSPMMetalInternalFrameTitlePane = class external 'javax.swing.plaf.metal' name 'MetalInternalFrameTitlePane' (JSPBBasicInternalFrameTitlePane)
  public
    type
      InnerMetalPropertyChangeHandler = class;
      Arr1InnerMetalPropertyChangeHandler = array of InnerMetalPropertyChangeHandler;
      Arr2InnerMetalPropertyChangeHandler = array of Arr1InnerMetalPropertyChangeHandler;
      Arr3InnerMetalPropertyChangeHandler = array of Arr2InnerMetalPropertyChangeHandler;
      InnerMetalTitlePaneLayout = class;
      Arr1InnerMetalTitlePaneLayout = array of InnerMetalTitlePaneLayout;
      Arr2InnerMetalTitlePaneLayout = array of Arr1InnerMetalTitlePaneLayout;
      Arr3InnerMetalTitlePaneLayout = array of Arr2InnerMetalTitlePaneLayout;
      InnerMetalPropertyChangeHandler = class external 'javax.swing.plaf.metal' name 'MetalPropertyChangeHandler' 
      end;

      InnerMetalTitlePaneLayout = class external 'javax.swing.plaf.metal' name 'MetalTitlePaneLayout' 
      end;

  strict protected
    var
      fisPalette: jboolean; external name 'isPalette';
      fpaletteCloseIcon: JSIcon; external name 'paletteCloseIcon';
      fpaletteTitleHeight: jint; external name 'paletteTitleHeight';
  public
    constructor create(para1: JSJInternalFrame); overload;
    procedure addNotify(); overload; virtual;
  strict protected
    procedure installDefaults(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
    procedure createButtons(); overload; virtual;
    procedure assembleSystemMenu(); overload; virtual;
    procedure addSystemMenuItems(para1: JSJMenu); overload; virtual;
    procedure showSystemMenu(); overload; virtual;
    procedure addSubComponents(); overload; virtual;
    function createPropertyChangeListener(): JBPropertyChangeListener; overload; virtual;
    function createLayout(): JALayoutManager; overload; virtual;
  public
    procedure paintPalette(para1: JAGraphics); overload; virtual;
    procedure paintComponent(para1: JAGraphics); overload; virtual;
    procedure setPalette(para1: jboolean); overload; virtual;
  end;

  JSPSSynthInternalFrameTitlePane = class external 'javax.swing.plaf.synth' name 'SynthInternalFrameTitlePane' (JSPBBasicInternalFrameTitlePane, SSPSSynthUI, JBPropertyChangeListener)
  public
    type
      InnerJPopupMenuUIResource = class;
      Arr1InnerJPopupMenuUIResource = array of InnerJPopupMenuUIResource;
      Arr2InnerJPopupMenuUIResource = array of Arr1InnerJPopupMenuUIResource;
      Arr3InnerJPopupMenuUIResource = array of Arr2InnerJPopupMenuUIResource;
      InnerSynthTitlePaneLayout = class;
      Arr1InnerSynthTitlePaneLayout = array of InnerSynthTitlePaneLayout;
      Arr2InnerSynthTitlePaneLayout = array of Arr1InnerSynthTitlePaneLayout;
      Arr3InnerSynthTitlePaneLayout = array of Arr2InnerSynthTitlePaneLayout;
      InnerJPopupMenuUIResource = class external 'javax.swing.plaf.synth' name 'JPopupMenuUIResource' 
      end;

      InnerSynthTitlePaneLayout = class external 'javax.swing.plaf.synth' name 'SynthTitlePaneLayout' 
      end;

  strict protected
    var
      fsystemPopupMenu: JSJPopupMenu; external name 'systemPopupMenu';
      fmenuButton: JSJButton; external name 'menuButton';
  public
    constructor create(para1: JSJInternalFrame); overload;
    function getUIClassID(): JLString; overload; virtual;
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
    function getContext(para1: JSJComponent; para2: jint): JSPSSynthContext; overload; virtual;
  strict protected
    procedure addSubComponents(); overload; virtual;
    procedure installListeners(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
    procedure installDefaults(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
    procedure assembleSystemMenu(); overload; virtual;
    procedure addSystemMenuItems(para1: JSJPopupMenu); overload; virtual;
    procedure showSystemMenu(); overload; virtual;
  public
    procedure paintComponent(para1: JAGraphics); overload; virtual;
  strict protected
    procedure paint(para1: JSPSSynthContext; para2: JAGraphics); overload; virtual;
  public
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
  strict protected
    function createLayout(): JALayoutManager; overload; virtual;
  public
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  end;

  JSJEditorPane = class external 'javax.swing' name 'JEditorPane' (JSTJTextComponent)
  public
    type
      InnerHeaderParser = class;
      Arr1InnerHeaderParser = array of InnerHeaderParser;
      Arr2InnerHeaderParser = array of Arr1InnerHeaderParser;
      Arr3InnerHeaderParser = array of Arr2InnerHeaderParser;
      InnerPageLoader = class;
      Arr1InnerPageLoader = array of InnerPageLoader;
      Arr2InnerPageLoader = array of Arr1InnerPageLoader;
      Arr3InnerPageLoader = array of Arr2InnerPageLoader;
      InnerPageStream = class;
      Arr1InnerPageStream = array of InnerPageStream;
      Arr2InnerPageStream = array of Arr1InnerPageStream;
      Arr3InnerPageStream = array of Arr2InnerPageStream;
      InnerPlainEditorKit = class;
      Arr1InnerPlainEditorKit = array of InnerPlainEditorKit;
      Arr2InnerPlainEditorKit = array of Arr1InnerPlainEditorKit;
      Arr3InnerPlainEditorKit = array of Arr2InnerPlainEditorKit;
      InnerHeaderParser = class external 'javax.swing' name 'HeaderParser' 
      end;

      InnerPageLoader = class external 'javax.swing' name 'PageLoader' 
      end;

      InnerPageStream = class external 'javax.swing' name 'PageStream' 
      end;

      InnerPlainEditorKit = class external 'javax.swing' name 'PlainEditorKit' 
      public
        type
          InnerPlainParagraph = class;
          Arr1InnerPlainParagraph = array of InnerPlainParagraph;
          Arr2InnerPlainParagraph = array of Arr1InnerPlainParagraph;
          Arr3InnerPlainParagraph = array of Arr2InnerPlainParagraph;
          InnerPlainParagraph = class external 'javax.swing' name 'PlainParagraph' 
          public
            type
              InnerLogicalView = class;
              Arr1InnerLogicalView = array of InnerLogicalView;
              Arr2InnerLogicalView = array of Arr1InnerLogicalView;
              Arr3InnerLogicalView = array of Arr2InnerLogicalView;
              InnerLogicalView = class external 'javax.swing' name 'LogicalView' 
              end;

          end;

      end;

  public
    type
      InnerAccessibleJEditorPane = class;
      Arr1InnerAccessibleJEditorPane = array of InnerAccessibleJEditorPane;
      Arr2InnerAccessibleJEditorPane = array of Arr1InnerAccessibleJEditorPane;
      Arr3InnerAccessibleJEditorPane = array of Arr2InnerAccessibleJEditorPane;
      InnerAccessibleJEditorPaneHTML = class;
      Arr1InnerAccessibleJEditorPaneHTML = array of InnerAccessibleJEditorPaneHTML;
      Arr2InnerAccessibleJEditorPaneHTML = array of Arr1InnerAccessibleJEditorPaneHTML;
      Arr3InnerAccessibleJEditorPaneHTML = array of Arr2InnerAccessibleJEditorPaneHTML;
      InnerJEditorPaneAccessibleHypertextSupport = class;
      Arr1InnerJEditorPaneAccessibleHypertextSupport = array of InnerJEditorPaneAccessibleHypertextSupport;
      Arr2InnerJEditorPaneAccessibleHypertextSupport = array of Arr1InnerJEditorPaneAccessibleHypertextSupport;
      Arr3InnerJEditorPaneAccessibleHypertextSupport = array of Arr2InnerJEditorPaneAccessibleHypertextSupport;
      InnerAccessibleJEditorPane = class external 'javax.swing' name 'AccessibleJEditorPane' 
      end;

      InnerAccessibleJEditorPaneHTML = class external 'javax.swing' name 'AccessibleJEditorPaneHTML' 
      end;

      InnerJEditorPaneAccessibleHypertextSupport = class external 'javax.swing' name 'JEditorPaneAccessibleHypertextSupport' 
      public
        type
          InnerLinkVector = class;
          Arr1InnerLinkVector = array of InnerLinkVector;
          Arr2InnerLinkVector = array of Arr1InnerLinkVector;
          Arr3InnerLinkVector = array of Arr2InnerLinkVector;
          InnerLinkVector = class external 'javax.swing' name 'LinkVector' 
          end;

      public
        type
          InnerHTMLLink = class;
          Arr1InnerHTMLLink = array of InnerHTMLLink;
          Arr2InnerHTMLLink = array of Arr1InnerHTMLLink;
          Arr3InnerHTMLLink = array of Arr2InnerHTMLLink;
          InnerHTMLLink = class external 'javax.swing' name 'HTMLLink' 
          end;

      end;

  public
    const
      W3C_LENGTH_UNITS = 'JEditorPane.w3cLengthUnits';
      HONOR_DISPLAY_PROPERTIES = 'JEditorPane.honorDisplayProperties';
  public
    constructor create(); overload;
    constructor create(para1: JNURL); overload;  // throws java.io.IOException
    constructor create(para1: JLString); overload;  // throws java.io.IOException
    constructor create(para1: JLString; para2: JLString); overload;
    procedure addHyperlinkListener(para1: JSEHyperlinkListener); overload; virtual;
    procedure removeHyperlinkListener(para1: JSEHyperlinkListener); overload; virtual;
    function getHyperlinkListeners(): Arr1JSEHyperlinkListener; overload; virtual;
    procedure fireHyperlinkUpdate(para1: JSEHyperlinkEvent); overload; virtual;
    procedure setPage(para1: JNURL); overload; virtual;  // throws java.io.IOException
    procedure read(para1: JIInputStream; para2: JLObject); overload; virtual;  // throws java.io.IOException
  strict protected
    function getStream(para1: JNURL): JIInputStream; overload; virtual;  // throws java.io.IOException
  public
    procedure scrollToReference(para1: JLString); overload; virtual;
    function getPage(): JNURL; overload; virtual;
    procedure setPage(para1: JLString); overload; virtual;  // throws java.io.IOException
    function getUIClassID(): JLString; overload; virtual;
  strict protected
    function createDefaultEditorKit(): JSTEditorKit; overload; virtual;
  public
    function getEditorKit(): JSTEditorKit; overload; virtual;
    function getContentType(): JLString; overload; virtual; final;
    procedure setContentType(para1: JLString); overload; virtual; final;
    procedure setEditorKit(para1: JSTEditorKit); overload; virtual;
    function getEditorKitForContentType(para1: JLString): JSTEditorKit; overload; virtual;
    procedure setEditorKitForContentType(para1: JLString; para2: JSTEditorKit); overload; virtual;
    procedure replaceSelection(para1: JLString); overload; virtual;
    class function createEditorKitForContentType(para1: JLString): JSTEditorKit; static; overload;
    class procedure registerEditorKitForContentType(para1: JLString; para2: JLString); static; overload;
    class procedure registerEditorKitForContentType(para1: JLString; para2: JLString; para3: JLClassLoader); static; overload;
    class function getEditorKitClassNameForContentType(para1: JLString): JLString; static; overload;
    function getPreferredSize(): JADimension; overload; virtual;
    procedure setText(para1: JLString); overload; virtual;
    function getText(): JLString; overload; virtual;
    function getScrollableTracksViewportWidth(): jboolean; overload; virtual;
    function getScrollableTracksViewportHeight(): jboolean; overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJTextArea = class external 'javax.swing' name 'JTextArea' (JSTJTextComponent)
  public
    type
      InnerAccessibleJTextArea = class;
      Arr1InnerAccessibleJTextArea = array of InnerAccessibleJTextArea;
      Arr2InnerAccessibleJTextArea = array of Arr1InnerAccessibleJTextArea;
      Arr3InnerAccessibleJTextArea = array of Arr2InnerAccessibleJTextArea;
      InnerAccessibleJTextArea = class external 'javax.swing' name 'AccessibleJTextArea' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint; para2: jint); overload;
    constructor create(para1: JLString; para2: jint; para3: jint); overload;
    constructor create(para1: JSTDocument); overload;
    constructor create(para1: JSTDocument; para2: JLString; para3: jint; para4: jint); overload;
    function getUIClassID(): JLString; overload; virtual;
  strict protected
    function createDefaultModel(): JSTDocument; overload; virtual;
  public
    procedure setTabSize(para1: jint); overload; virtual;
    function getTabSize(): jint; overload; virtual;
    procedure setLineWrap(para1: jboolean); overload; virtual;
    function getLineWrap(): jboolean; overload; virtual;
    procedure setWrapStyleWord(para1: jboolean); overload; virtual;
    function getWrapStyleWord(): jboolean; overload; virtual;
    function getLineOfOffset(para1: jint): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
    function getLineCount(): jint; overload; virtual;
    function getLineStartOffset(para1: jint): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
    function getLineEndOffset(para1: jint): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
    procedure insert(para1: JLString; para2: jint); overload; virtual;
    procedure append(para1: JLString); overload; virtual;
    procedure replaceRange(para1: JLString; para2: jint; para3: jint); overload; virtual;
    function getRows(): jint; overload; virtual;
    procedure setRows(para1: jint); overload; virtual;
  strict protected
    function getRowHeight(): jint; overload; virtual;
  public
    function getColumns(): jint; overload; virtual;
    procedure setColumns(para1: jint); overload; virtual;
  strict protected
    function getColumnWidth(): jint; overload; virtual;
  public
    function getPreferredSize(): JADimension; overload; virtual;
    procedure setFont(para1: JAFont); overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getScrollableTracksViewportWidth(): jboolean; overload; virtual;
    function getPreferredScrollableViewportSize(): JADimension; overload; virtual;
    function getScrollableUnitIncrement(para1: JARectangle; para2: jint; para3: jint): jint; overload; virtual;
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJTextField = class external 'javax.swing' name 'JTextField' (JSTJTextComponent, JSSwingConstants)
  public
    type
      InnerNotifyAction = class;
      Arr1InnerNotifyAction = array of InnerNotifyAction;
      Arr2InnerNotifyAction = array of Arr1InnerNotifyAction;
      Arr3InnerNotifyAction = array of Arr2InnerNotifyAction;
      InnerScrollRepainter = class;
      Arr1InnerScrollRepainter = array of InnerScrollRepainter;
      Arr2InnerScrollRepainter = array of Arr1InnerScrollRepainter;
      Arr3InnerScrollRepainter = array of Arr2InnerScrollRepainter;
      InnerTextFieldActionPropertyChangeListener = class;
      Arr1InnerTextFieldActionPropertyChangeListener = array of InnerTextFieldActionPropertyChangeListener;
      Arr2InnerTextFieldActionPropertyChangeListener = array of Arr1InnerTextFieldActionPropertyChangeListener;
      Arr3InnerTextFieldActionPropertyChangeListener = array of Arr2InnerTextFieldActionPropertyChangeListener;
      InnerNotifyAction = class external 'javax.swing' name 'NotifyAction' 
      end;

      InnerScrollRepainter = class external 'javax.swing' name 'ScrollRepainter' 
      end;

      InnerTextFieldActionPropertyChangeListener = class external 'javax.swing' name 'TextFieldActionPropertyChangeListener' 
      end;

  public
    type
      InnerAccessibleJTextField = class;
      Arr1InnerAccessibleJTextField = array of InnerAccessibleJTextField;
      Arr2InnerAccessibleJTextField = array of Arr1InnerAccessibleJTextField;
      Arr3InnerAccessibleJTextField = array of Arr2InnerAccessibleJTextField;
      InnerAccessibleJTextField = class external 'javax.swing' name 'AccessibleJTextField' 
      end;

  public
    const
      notifyAction = 'notify-field-accept';
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: JLString; para2: jint); overload;
    constructor create(para1: JSTDocument; para2: JLString; para3: jint); overload;
    function getUIClassID(): JLString; overload; virtual;
    procedure setDocument(para1: JSTDocument); overload; virtual;
    function isValidateRoot(): jboolean; overload; virtual;
    function getHorizontalAlignment(): jint; overload; virtual;
    procedure setHorizontalAlignment(para1: jint); overload; virtual;
  strict protected
    function createDefaultModel(): JSTDocument; overload; virtual;
  public
    function getColumns(): jint; overload; virtual;
    procedure setColumns(para1: jint); overload; virtual;
  strict protected
    function getColumnWidth(): jint; overload; virtual;
  public
    function getPreferredSize(): JADimension; overload; virtual;
    procedure setFont(para1: JAFont); overload; virtual;
    procedure addActionListener(para1: JAEActionListener); overload; virtual;
    procedure removeActionListener(para1: JAEActionListener); overload; virtual;
    function getActionListeners(): Arr1JAEActionListener; overload; virtual;
  strict protected
    procedure fireActionPerformed(); overload; virtual;
  public
    procedure setActionCommand(para1: JLString); overload; virtual;
    procedure setAction(para1: JSAction); overload; virtual;
    function getAction(): JSAction; overload; virtual;
  strict protected
    procedure configurePropertiesFromAction(para1: JSAction); overload; virtual;
    procedure actionPropertyChanged(para1: JSAction; para2: JLString); overload; virtual;
    function createActionPropertyChangeListener(para1: JSAction): JBPropertyChangeListener; overload; virtual;
  public
    function getActions(): Arr1JSAction; overload; virtual;
    procedure postActionEvent(); overload; virtual;
    function getHorizontalVisibility(): JSBoundedRangeModel; overload; virtual;
    function getScrollOffset(): jint; overload; virtual;
    procedure setScrollOffset(para1: jint); overload; virtual;
    procedure scrollRectToVisible(para1: JARectangle); overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSLookAndFeel = class abstract external 'javax.swing' name 'LookAndFeel' (JLObject)
  public
    constructor create(); overload;
    class procedure installColors(para1: JSJComponent; para2: JLString; para3: JLString); static; overload;
    class procedure installColorsAndFont(para1: JSJComponent; para2: JLString; para3: JLString; para4: JLString); static; overload;
    class procedure installBorder(para1: JSJComponent; para2: JLString); static; overload;
    class procedure uninstallBorder(para1: JSJComponent); static; overload;
    class procedure installProperty(para1: JSJComponent; para2: JLString; para3: JLObject); static; overload;
    class function makeKeyBindings(para1: Arr1JLObject): JSTJTextComponent.Arr1InnerKeyBinding; static; overload;
    class function makeKeyBindings(var para1: array of JLObject): JSTJTextComponent.Arr1InnerKeyBinding; static; overload;
    class function makeInputMap(para1: Arr1JLObject): JSInputMap; static; overload;
    class function makeInputMap(var para1: array of JLObject): JSInputMap; static; overload;
    class function makeComponentInputMap(para1: JSJComponent; para2: Arr1JLObject): JSComponentInputMap; static; overload;
    class function makeComponentInputMap(para1: JSJComponent; var para2: array of JLObject): JSComponentInputMap; static; overload;
    class procedure loadKeyBindings(para1: JSInputMap; para2: Arr1JLObject); static; overload;
    class procedure loadKeyBindings(para1: JSInputMap; var para2: array of JLObject); static; overload;
    class function makeIcon(para1: JLClass; para2: JLString): JLObject; static; overload;
    function getLayoutStyle(): JSLayoutStyle; overload; virtual;
    procedure provideErrorFeedback(para1: JAComponent); overload; virtual;
    class function getDesktopPropertyValue(para1: JLString; para2: JLObject): JLObject; static; overload;
    function getDisabledIcon(para1: JSJComponent; para2: JSIcon): JSIcon; overload; virtual;
    function getDisabledSelectedIcon(para1: JSJComponent; para2: JSIcon): JSIcon; overload; virtual;
    function getName(): JLString; overload; virtual; abstract;
    function getID(): JLString; overload; virtual; abstract;
    function getDescription(): JLString; overload; virtual; abstract;
    function getSupportsWindowDecorations(): jboolean; overload; virtual;
    function isNativeLookAndFeel(): jboolean; overload; virtual; abstract;
    function isSupportedLookAndFeel(): jboolean; overload; virtual; abstract;
    procedure initialize(); overload; virtual;
    procedure uninitialize(); overload; virtual;
    function getDefaults(): JSUIDefaults; overload; virtual;
    function toString(): JLString; overload; virtual;
  end;

  JSPBorderUIResource = class external 'javax.swing.plaf' name 'BorderUIResource' (JLObject, JSBBorder, JSPUIResource, JISerializable)
  public
    type
      InnerBevelBorderUIResource = class;
      Arr1InnerBevelBorderUIResource = array of InnerBevelBorderUIResource;
      Arr2InnerBevelBorderUIResource = array of Arr1InnerBevelBorderUIResource;
      Arr3InnerBevelBorderUIResource = array of Arr2InnerBevelBorderUIResource;
      InnerCompoundBorderUIResource = class;
      Arr1InnerCompoundBorderUIResource = array of InnerCompoundBorderUIResource;
      Arr2InnerCompoundBorderUIResource = array of Arr1InnerCompoundBorderUIResource;
      Arr3InnerCompoundBorderUIResource = array of Arr2InnerCompoundBorderUIResource;
      InnerEmptyBorderUIResource = class;
      Arr1InnerEmptyBorderUIResource = array of InnerEmptyBorderUIResource;
      Arr2InnerEmptyBorderUIResource = array of Arr1InnerEmptyBorderUIResource;
      Arr3InnerEmptyBorderUIResource = array of Arr2InnerEmptyBorderUIResource;
      InnerEtchedBorderUIResource = class;
      Arr1InnerEtchedBorderUIResource = array of InnerEtchedBorderUIResource;
      Arr2InnerEtchedBorderUIResource = array of Arr1InnerEtchedBorderUIResource;
      Arr3InnerEtchedBorderUIResource = array of Arr2InnerEtchedBorderUIResource;
      InnerLineBorderUIResource = class;
      Arr1InnerLineBorderUIResource = array of InnerLineBorderUIResource;
      Arr2InnerLineBorderUIResource = array of Arr1InnerLineBorderUIResource;
      Arr3InnerLineBorderUIResource = array of Arr2InnerLineBorderUIResource;
      InnerMatteBorderUIResource = class;
      Arr1InnerMatteBorderUIResource = array of InnerMatteBorderUIResource;
      Arr2InnerMatteBorderUIResource = array of Arr1InnerMatteBorderUIResource;
      Arr3InnerMatteBorderUIResource = array of Arr2InnerMatteBorderUIResource;
      InnerTitledBorderUIResource = class;
      Arr1InnerTitledBorderUIResource = array of InnerTitledBorderUIResource;
      Arr2InnerTitledBorderUIResource = array of Arr1InnerTitledBorderUIResource;
      Arr3InnerTitledBorderUIResource = array of Arr2InnerTitledBorderUIResource;
      InnerBevelBorderUIResource = class external 'javax.swing.plaf' name 'BevelBorderUIResource' (JSBBevelBorder, JSPUIResource)
      public
        constructor create(para1: jint); overload;
        constructor create(para1: jint; para2: JAColor; para3: JAColor); overload;
        constructor create(para1: jint; para2: JAColor; para3: JAColor; para4: JAColor; para5: JAColor); overload;
      end;

      InnerCompoundBorderUIResource = class external 'javax.swing.plaf' name 'CompoundBorderUIResource' (JSBCompoundBorder, JSPUIResource)
      public
        constructor create(para1: JSBBorder; para2: JSBBorder); overload;
      end;

      InnerEmptyBorderUIResource = class external 'javax.swing.plaf' name 'EmptyBorderUIResource' (JSBEmptyBorder, JSPUIResource)
      public
        constructor create(para1: jint; para2: jint; para3: jint; para4: jint); overload;
        constructor create(para1: JAInsets); overload;
      end;

      InnerEtchedBorderUIResource = class external 'javax.swing.plaf' name 'EtchedBorderUIResource' (JSBEtchedBorder, JSPUIResource)
      public
        constructor create(); overload;
        constructor create(para1: jint); overload;
        constructor create(para1: JAColor; para2: JAColor); overload;
        constructor create(para1: jint; para2: JAColor; para3: JAColor); overload;
      end;

      InnerLineBorderUIResource = class external 'javax.swing.plaf' name 'LineBorderUIResource' (JSBLineBorder, JSPUIResource)
      public
        constructor create(para1: JAColor); overload;
        constructor create(para1: JAColor; para2: jint); overload;
      end;

      InnerMatteBorderUIResource = class external 'javax.swing.plaf' name 'MatteBorderUIResource' (JSBMatteBorder, JSPUIResource)
      public
        constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: JAColor); overload;
        constructor create(para1: jint; para2: jint; para3: jint; para4: jint; para5: JSIcon); overload;
        constructor create(para1: JSIcon); overload;
      end;

      InnerTitledBorderUIResource = class external 'javax.swing.plaf' name 'TitledBorderUIResource' (JSBTitledBorder, JSPUIResource)
      public
        constructor create(para1: JLString); overload;
        constructor create(para1: JSBBorder); overload;
        constructor create(para1: JSBBorder; para2: JLString); overload;
        constructor create(para1: JSBBorder; para2: JLString; para3: jint; para4: jint); overload;
        constructor create(para1: JSBBorder; para2: JLString; para3: jint; para4: jint; para5: JAFont); overload;
        constructor create(para1: JSBBorder; para2: JLString; para3: jint; para4: jint; para5: JAFont; para6: JAColor); overload;
      end;

  public
    class function getEtchedBorderUIResource(): JSBBorder; static; overload;
    class function getLoweredBevelBorderUIResource(): JSBBorder; static; overload;
    class function getRaisedBevelBorderUIResource(): JSBBorder; static; overload;
    class function getBlackLineBorderUIResource(): JSBBorder; static; overload;
    constructor create(para1: JSBBorder); overload;
    procedure paintBorder(para1: JAComponent; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    function getBorderInsets(para1: JAComponent): JAInsets; overload; virtual;
    function isBorderOpaque(): jboolean; overload; virtual;
  end;

  JSPBBasicMenuItemUI = class external 'javax.swing.plaf.basic' name 'BasicMenuItemUI' (JSPMenuItemUI)
  public
    type
      InnerActions = class;
      Arr1InnerActions = array of InnerActions;
      Arr2InnerActions = array of Arr1InnerActions;
      Arr3InnerActions = array of Arr2InnerActions;
      InnerHandler = class;
      Arr1InnerHandler = array of InnerHandler;
      Arr2InnerHandler = array of Arr1InnerHandler;
      Arr3InnerHandler = array of Arr2InnerHandler;
      InnerActions = class external 'javax.swing.plaf.basic' name 'Actions' 
      end;

      InnerHandler = class external 'javax.swing.plaf.basic' name 'Handler' 
      end;

  public
    type
      InnerMouseInputHandler = class;
      Arr1InnerMouseInputHandler = array of InnerMouseInputHandler;
      Arr2InnerMouseInputHandler = array of Arr1InnerMouseInputHandler;
      Arr3InnerMouseInputHandler = array of Arr2InnerMouseInputHandler;
      InnerMouseInputHandler = class external 'javax.swing.plaf.basic' name 'MouseInputHandler' 
      end;

  strict protected
    var
      fmenuItem: JSJMenuItem; external name 'menuItem';
      fselectionBackground: JAColor; external name 'selectionBackground';
      fselectionForeground: JAColor; external name 'selectionForeground';
      fdisabledForeground: JAColor; external name 'disabledForeground';
      facceleratorForeground: JAColor; external name 'acceleratorForeground';
      facceleratorSelectionForeground: JAColor; external name 'acceleratorSelectionForeground';
      fdefaultTextIconGap: jint; external name 'defaultTextIconGap';
      facceleratorFont: JAFont; external name 'acceleratorFont';
      fmouseInputListener: JSEMouseInputListener; external name 'mouseInputListener';
      fmenuDragMouseListener: JSEMenuDragMouseListener; external name 'menuDragMouseListener';
      fmenuKeyListener: JSEMenuKeyListener; external name 'menuKeyListener';
      fpropertyChangeListener: JBPropertyChangeListener; external name 'propertyChangeListener';
      farrowIcon: JSIcon; external name 'arrowIcon';
      fcheckIcon: JSIcon; external name 'checkIcon';
      foldBorderPainted: jboolean; external name 'oldBorderPainted';
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure installDefaults(); overload; virtual;
    procedure installComponents(para1: JSJMenuItem); overload; virtual;
    function getPropertyPrefix(): JLString; overload; virtual;
    procedure installListeners(); overload; virtual;
    procedure installKeyboardActions(); overload; virtual;
  public
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure uninstallDefaults(); overload; virtual;
    procedure uninstallComponents(para1: JSJMenuItem); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
    procedure uninstallKeyboardActions(); overload; virtual;
    function createMouseInputListener(para1: JSJComponent): JSEMouseInputListener; overload; virtual;
    function createMenuDragMouseListener(para1: JSJComponent): JSEMenuDragMouseListener; overload; virtual;
    function createMenuKeyListener(para1: JSJComponent): JSEMenuKeyListener; overload; virtual;
    function createPropertyChangeListener(para1: JSJComponent): JBPropertyChangeListener; overload; virtual;
  public
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
  strict protected
    function getPreferredMenuItemSize(para1: JSJComponent; para2: JSIcon; para3: JSIcon; para4: jint): JADimension; overload; virtual;
  public
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paintMenuItem(para1: JAGraphics; para2: JSJComponent; para3: JSIcon; para4: JSIcon; para5: JAColor; para6: JAColor; para7: jint); overload; virtual;
    procedure paintBackground(para1: JAGraphics; para2: JSJMenuItem; para3: JAColor); overload; virtual;
    procedure paintText(para1: JAGraphics; para2: JSJMenuItem; para3: JARectangle; para4: JLString); overload; virtual;
  public
    function getPath(): Arr1JSMenuElement; overload; virtual;
  strict protected
    procedure doClick(para1: JSMenuSelectionManager); overload; virtual;
  end;

  JSPMMultiMenuItemUI = class external 'javax.swing.plaf.multi' name 'MultiMenuItemUI' (JSPMenuItemUI)
  strict protected
    var
      fuis: JUVector; external name 'uis';
  public
    constructor create(); overload;
    function getUIs(): Arr1JSPComponentUI; overload; virtual;
    function contains(para1: JSJComponent; para2: jint; para3: jint): jboolean; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getAccessibleChildrenCount(para1: JSJComponent): jint; overload; virtual;
    function getAccessibleChild(para1: JSJComponent; para2: jint): JAAccessible; overload; virtual;
  end;

  JSPBBasicToggleButtonUI = class external 'javax.swing.plaf.basic' name 'BasicToggleButtonUI' (JSPBBasicButtonUI)
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    function getPropertyPrefix(): JLString; overload; virtual;
  public
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paintIcon(para1: JAGraphics; para2: JSAbstractButton; para3: JARectangle); overload; virtual;
    function getTextShiftOffset(): jint; overload; virtual;
  end;

  JSPMMetalButtonUI = class external 'javax.swing.plaf.metal' name 'MetalButtonUI' (JSPBBasicButtonUI)
  strict protected
    var
      ffocusColor: JAColor; external name 'focusColor';
      fselectColor: JAColor; external name 'selectColor';
      fdisabledTextColor: JAColor; external name 'disabledTextColor';
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installDefaults(para1: JSAbstractButton); overload; virtual;
    procedure uninstallDefaults(para1: JSAbstractButton); overload; virtual;
  strict protected
    function createButtonListener(para1: JSAbstractButton): JSPBBasicButtonListener; overload; virtual;
    function getSelectColor(): JAColor; overload; virtual;
    function getDisabledTextColor(): JAColor; overload; virtual;
    function getFocusColor(): JAColor; overload; virtual;
  public
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paintButtonPressed(para1: JAGraphics; para2: JSAbstractButton); overload; virtual;
    procedure paintFocus(para1: JAGraphics; para2: JSAbstractButton; para3: JARectangle; para4: JARectangle; para5: JARectangle); overload; virtual;
    procedure paintText(para1: JAGraphics; para2: JSJComponent; para3: JARectangle; para4: JLString); overload; virtual;
  end;

  JSPSSynthButtonUI = class external 'javax.swing.plaf.synth' name 'SynthButtonUI' (JSPBBasicButtonUI, JBPropertyChangeListener, SSPSSynthUI)
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    procedure installDefaults(para1: JSAbstractButton); overload; virtual;
    procedure installListeners(para1: JSAbstractButton); overload; virtual;
    procedure uninstallListeners(para1: JSAbstractButton); overload; virtual;
    procedure uninstallDefaults(para1: JSAbstractButton); overload; virtual;
  public
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
    function getBaseline(para1: JSJComponent; para2: jint; para3: jint): jint; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paint(para1: JSPSSynthContext; para2: JAGraphics); overload; virtual;
  public
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
  strict protected
    function getDefaultIcon(para1: JSAbstractButton): JSIcon; overload; virtual;
    function getIcon(para1: JSAbstractButton): JSIcon; overload; virtual;
    function getTextShiftOffset(para1: JSPSSynthContext): jint; overload; virtual;
  public
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
  strict protected
    function getSizingIcon(para1: JSAbstractButton): JSIcon; overload; virtual;
  public
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  end;

  JSPSSynthColorChooserUI = class external 'javax.swing.plaf.synth' name 'SynthColorChooserUI' (JSPBBasicColorChooserUI, JBPropertyChangeListener, SSPSSynthUI)
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    function createDefaultChoosers(): Arr1JSCAbstractColorChooserPanel; overload; virtual;
    procedure installDefaults(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
    procedure installListeners(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
  public
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paint(para1: JSPSSynthContext; para2: JAGraphics); overload; virtual;
  public
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  end;

  JSPMMetalComboBoxUI = class external 'javax.swing.plaf.metal' name 'MetalComboBoxUI' (JSPBBasicComboBoxUI)
  public
    type
      InnerMetalComboBoxLayoutManager = class;
      Arr1InnerMetalComboBoxLayoutManager = array of InnerMetalComboBoxLayoutManager;
      Arr2InnerMetalComboBoxLayoutManager = array of Arr1InnerMetalComboBoxLayoutManager;
      Arr3InnerMetalComboBoxLayoutManager = array of Arr2InnerMetalComboBoxLayoutManager;
      InnerMetalPropertyChangeListener = class;
      Arr1InnerMetalPropertyChangeListener = array of InnerMetalPropertyChangeListener;
      Arr2InnerMetalPropertyChangeListener = array of Arr1InnerMetalPropertyChangeListener;
      Arr3InnerMetalPropertyChangeListener = array of Arr2InnerMetalPropertyChangeListener;
      InnerMetalComboPopup = class;
      Arr1InnerMetalComboPopup = array of InnerMetalComboPopup;
      Arr2InnerMetalComboPopup = array of Arr1InnerMetalComboPopup;
      Arr3InnerMetalComboPopup = array of Arr2InnerMetalComboPopup;
      InnerMetalComboBoxLayoutManager = class external 'javax.swing.plaf.metal' name 'MetalComboBoxLayoutManager' 
      end;

      InnerMetalPropertyChangeListener = class external 'javax.swing.plaf.metal' name 'MetalPropertyChangeListener' 
      end;

      InnerMetalComboPopup = class external 'javax.swing.plaf.metal' name 'MetalComboPopup' 
      end;

  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paintCurrentValue(para1: JAGraphics; para2: JARectangle; para3: jboolean); overload; virtual;
    procedure paintCurrentValueBackground(para1: JAGraphics; para2: JARectangle; para3: jboolean); overload; virtual;
    function getBaseline(para1: JSJComponent; para2: jint; para3: jint): jint; overload; virtual;
  strict protected
    function createEditor(): JSComboBoxEditor; overload; virtual;
    function createPopup(): JSPBComboPopup; overload; virtual;
    function createArrowButton(): JSJButton; overload; virtual;
  public
    function createPropertyChangeListener(): JBPropertyChangeListener; overload; virtual;
  strict protected
    procedure editablePropertyChanged(para1: JBPropertyChangeEvent); overload; virtual;
    function createLayoutManager(): JALayoutManager; overload; virtual;
  public
    procedure layoutComboBox(para1: JAContainer; para2: JSPMMetalComboBoxUI.InnerMetalComboBoxLayoutManager); overload; virtual;
  strict protected
    procedure removeListeners(); overload; virtual;
  public
    procedure configureEditor(); overload; virtual;
    procedure unconfigureEditor(); overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
  end;

  JSPSSynthComboBoxUI = class external 'javax.swing.plaf.synth' name 'SynthComboBoxUI' (JSPBBasicComboBoxUI, JBPropertyChangeListener, SSPSSynthUI)
  public
    type
      InnerButtonHandler = class;
      Arr1InnerButtonHandler = array of InnerButtonHandler;
      Arr2InnerButtonHandler = array of Arr1InnerButtonHandler;
      Arr3InnerButtonHandler = array of Arr2InnerButtonHandler;
      InnerEditorFocusHandler = class;
      Arr1InnerEditorFocusHandler = array of InnerEditorFocusHandler;
      Arr2InnerEditorFocusHandler = array of Arr1InnerEditorFocusHandler;
      Arr3InnerEditorFocusHandler = array of Arr2InnerEditorFocusHandler;
      InnerSynthComboBoxEditor = class;
      Arr1InnerSynthComboBoxEditor = array of InnerSynthComboBoxEditor;
      Arr2InnerSynthComboBoxEditor = array of Arr1InnerSynthComboBoxEditor;
      Arr3InnerSynthComboBoxEditor = array of Arr2InnerSynthComboBoxEditor;
      InnerSynthComboBoxRenderer = class;
      Arr1InnerSynthComboBoxRenderer = array of InnerSynthComboBoxRenderer;
      Arr2InnerSynthComboBoxRenderer = array of Arr1InnerSynthComboBoxRenderer;
      Arr3InnerSynthComboBoxRenderer = array of Arr2InnerSynthComboBoxRenderer;
      InnerButtonHandler = class sealed external 'javax.swing.plaf.synth' name 'ButtonHandler' 
      end;

      InnerEditorFocusHandler = class external 'javax.swing.plaf.synth' name 'EditorFocusHandler' 
      end;

      InnerSynthComboBoxEditor = class external 'javax.swing.plaf.synth' name 'SynthComboBoxEditor' 
      end;

      InnerSynthComboBoxRenderer = class external 'javax.swing.plaf.synth' name 'SynthComboBoxRenderer' 
      end;

  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure installDefaults(); overload; virtual;
    procedure installListeners(); overload; virtual;
  public
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure uninstallDefaults(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
  public
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
  strict protected
    function createPopup(): JSPBComboPopup; overload; virtual;
    function createRenderer(): JSListCellRenderer; overload; virtual;
    function createEditor(): JSComboBoxEditor; overload; virtual;
  public
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  strict protected
    function createArrowButton(): JSJButton; overload; virtual;
  public
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paint(para1: JSPSSynthContext; para2: JAGraphics); overload; virtual;
  public
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintCurrentValue(para1: JAGraphics; para2: JARectangle; para3: jboolean); overload; virtual;
  strict protected
    function getDefaultSize(): JADimension; overload; virtual;
  end;

  JSPSSynthDesktopPaneUI = class external 'javax.swing.plaf.synth' name 'SynthDesktopPaneUI' (JSPBBasicDesktopPaneUI, JBPropertyChangeListener, SSPSSynthUI)
  public
    type
      InnerSynthDesktopManager = class;
      Arr1InnerSynthDesktopManager = array of InnerSynthDesktopManager;
      Arr2InnerSynthDesktopManager = array of Arr1InnerSynthDesktopManager;
      Arr3InnerSynthDesktopManager = array of Arr2InnerSynthDesktopManager;
      InnerTaskBar = class;
      Arr1InnerTaskBar = array of InnerTaskBar;
      Arr2InnerTaskBar = array of Arr1InnerTaskBar;
      Arr3InnerTaskBar = array of Arr2InnerTaskBar;
      InnerSynthDesktopManager = class external 'javax.swing.plaf.synth' name 'SynthDesktopManager' 
      end;

      InnerTaskBar = class external 'javax.swing.plaf.synth' name 'TaskBar' 
      end;

  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    procedure installListeners(); overload; virtual;
    procedure installDefaults(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
    procedure installDesktopManager(); overload; virtual;
    procedure uninstallDesktopManager(); overload; virtual;
  public
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paint(para1: JSPSSynthContext; para2: JAGraphics); overload; virtual;
  public
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  end;

  JSPMMetalFileChooserUI = class external 'javax.swing.plaf.metal' name 'MetalFileChooserUI' (JSPBBasicFileChooserUI)
  public
    type
      InnerAlignedLabel = class;
      Arr1InnerAlignedLabel = array of InnerAlignedLabel;
      Arr2InnerAlignedLabel = array of Arr1InnerAlignedLabel;
      Arr3InnerAlignedLabel = array of Arr2InnerAlignedLabel;
      InnerButtonAreaLayout = class;
      Arr1InnerButtonAreaLayout = array of InnerButtonAreaLayout;
      Arr2InnerButtonAreaLayout = array of Arr1InnerButtonAreaLayout;
      Arr3InnerButtonAreaLayout = array of Arr2InnerButtonAreaLayout;
      InnerDirectoryComboBoxRenderer = class;
      Arr1InnerDirectoryComboBoxRenderer = array of InnerDirectoryComboBoxRenderer;
      Arr2InnerDirectoryComboBoxRenderer = array of Arr1InnerDirectoryComboBoxRenderer;
      Arr3InnerDirectoryComboBoxRenderer = array of Arr2InnerDirectoryComboBoxRenderer;
      InnerIndentIcon = class;
      Arr1InnerIndentIcon = array of InnerIndentIcon;
      Arr2InnerIndentIcon = array of Arr1InnerIndentIcon;
      Arr3InnerIndentIcon = array of Arr2InnerIndentIcon;
      InnerMetalFileChooserUIAccessor = class;
      Arr1InnerMetalFileChooserUIAccessor = array of InnerMetalFileChooserUIAccessor;
      Arr2InnerMetalFileChooserUIAccessor = array of Arr1InnerMetalFileChooserUIAccessor;
      Arr3InnerMetalFileChooserUIAccessor = array of Arr2InnerMetalFileChooserUIAccessor;
      InnerAlignedLabel = class external 'javax.swing.plaf.metal' name 'AlignedLabel' 
      end;

      InnerButtonAreaLayout = class external 'javax.swing.plaf.metal' name 'ButtonAreaLayout' 
      end;

      InnerDirectoryComboBoxRenderer = class external 'javax.swing.plaf.metal' name 'DirectoryComboBoxRenderer' 
      end;

      InnerIndentIcon = class external 'javax.swing.plaf.metal' name 'IndentIcon' 
      end;

      InnerMetalFileChooserUIAccessor = class external 'javax.swing.plaf.metal' name 'MetalFileChooserUIAccessor' 
      end;

  public
    type
      InnerDirectoryComboBoxAction = class;
      Arr1InnerDirectoryComboBoxAction = array of InnerDirectoryComboBoxAction;
      Arr2InnerDirectoryComboBoxAction = array of Arr1InnerDirectoryComboBoxAction;
      Arr3InnerDirectoryComboBoxAction = array of Arr2InnerDirectoryComboBoxAction;
      InnerDirectoryComboBoxModel = class;
      Arr1InnerDirectoryComboBoxModel = array of InnerDirectoryComboBoxModel;
      Arr2InnerDirectoryComboBoxModel = array of Arr1InnerDirectoryComboBoxModel;
      Arr3InnerDirectoryComboBoxModel = array of Arr2InnerDirectoryComboBoxModel;
      InnerFileRenderer = class;
      Arr1InnerFileRenderer = array of InnerFileRenderer;
      Arr2InnerFileRenderer = array of Arr1InnerFileRenderer;
      Arr3InnerFileRenderer = array of Arr2InnerFileRenderer;
      InnerFilterComboBoxRenderer = class;
      Arr1InnerFilterComboBoxRenderer = array of InnerFilterComboBoxRenderer;
      Arr2InnerFilterComboBoxRenderer = array of Arr1InnerFilterComboBoxRenderer;
      Arr3InnerFilterComboBoxRenderer = array of Arr2InnerFilterComboBoxRenderer;
      InnerFilterComboBoxModel = class;
      Arr1InnerFilterComboBoxModel = array of InnerFilterComboBoxModel;
      Arr2InnerFilterComboBoxModel = array of Arr1InnerFilterComboBoxModel;
      Arr3InnerFilterComboBoxModel = array of Arr2InnerFilterComboBoxModel;
      InnerSingleClickListener = class;
      Arr1InnerSingleClickListener = array of InnerSingleClickListener;
      Arr2InnerSingleClickListener = array of Arr1InnerSingleClickListener;
      Arr3InnerSingleClickListener = array of Arr2InnerSingleClickListener;
      InnerDirectoryComboBoxAction = class external 'javax.swing.plaf.metal' name 'DirectoryComboBoxAction' 
      end;

      InnerDirectoryComboBoxModel = class external 'javax.swing.plaf.metal' name 'DirectoryComboBoxModel' 
      end;

      InnerFileRenderer = class external 'javax.swing.plaf.metal' name 'FileRenderer' 
      end;

      InnerFilterComboBoxRenderer = class external 'javax.swing.plaf.metal' name 'FilterComboBoxRenderer' 
      end;

      InnerFilterComboBoxModel = class external 'javax.swing.plaf.metal' name 'FilterComboBoxModel' 
      end;

      InnerSingleClickListener = class external 'javax.swing.plaf.metal' name 'SingleClickListener' 
      end;

  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    constructor create(para1: JSJFileChooser); overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallComponents(para1: JSJFileChooser); overload; virtual;
    procedure installComponents(para1: JSJFileChooser); overload; virtual;
  strict protected
    function getButtonPanel(): JSJPanel; overload; virtual;
    function getBottomPanel(): JSJPanel; overload; virtual;
    procedure installStrings(para1: JSJFileChooser); overload; virtual;
    procedure installListeners(para1: JSJFileChooser); overload; virtual;
    function getActionMap(): JSActionMap; overload; virtual;
    function createActionMap(): JSActionMap; overload; virtual;
    function createList(para1: JSJFileChooser): JSJPanel; overload; virtual;
    function createDetailsView(para1: JSJFileChooser): JSJPanel; overload; virtual;
  public
    function createListSelectionListener(para1: JSJFileChooser): JSEListSelectionListener; overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    function createPropertyChangeListener(para1: JSJFileChooser): JBPropertyChangeListener; overload; virtual;
  strict protected
    procedure removeControlButtons(); overload; virtual;
    procedure addControlButtons(); overload; virtual;
  public
    procedure ensureFileIsVisible(para1: JSJFileChooser; para2: JIFile); overload; virtual;
    procedure rescanCurrentDirectory(para1: JSJFileChooser); overload; virtual;
    function getFileName(): JLString; overload; virtual;
    procedure setFileName(para1: JLString); overload; virtual;
  strict protected
    procedure setDirectorySelected(para1: jboolean); overload; virtual;
  public
    function getDirectoryName(): JLString; overload; virtual;
    procedure setDirectoryName(para1: JLString); overload; virtual;
  strict protected
    function createDirectoryComboBoxRenderer(para1: JSJFileChooser): JSPMMetalFileChooserUI.InnerDirectoryComboBoxRenderer; overload; virtual;
    function createDirectoryComboBoxModel(para1: JSJFileChooser): JSPMMetalFileChooserUI.InnerDirectoryComboBoxModel; overload; virtual;
    function createFilterComboBoxRenderer(): JSPMMetalFileChooserUI.InnerFilterComboBoxRenderer; overload; virtual;
    function createFilterComboBoxModel(): JSPMMetalFileChooserUI.InnerFilterComboBoxModel; overload; virtual;
  public
    procedure valueChanged(para1: JSEListSelectionEvent); overload; virtual;
  strict protected
    function getApproveButton(para1: JSJFileChooser): JSJButton; overload; virtual;
  end;

  JSPMMetalInternalFrameUI = class external 'javax.swing.plaf.metal' name 'MetalInternalFrameUI' (JSPBBasicInternalFrameUI)
  public
    type
      InnerBorderListener1 = class;
      Arr1InnerBorderListener1 = array of InnerBorderListener1;
      Arr2InnerBorderListener1 = array of Arr1InnerBorderListener1;
      Arr3InnerBorderListener1 = array of Arr2InnerBorderListener1;
      InnerMetalPropertyChangeHandler = class;
      Arr1InnerMetalPropertyChangeHandler = array of InnerMetalPropertyChangeHandler;
      Arr2InnerMetalPropertyChangeHandler = array of Arr1InnerMetalPropertyChangeHandler;
      Arr3InnerMetalPropertyChangeHandler = array of Arr2InnerMetalPropertyChangeHandler;
      InnerBorderListener1 = class external 'javax.swing.plaf.metal' name 'BorderListener1' 
      end;

      InnerMetalPropertyChangeHandler = class external 'javax.swing.plaf.metal' name 'MetalPropertyChangeHandler' 
      end;

  strict protected
    class var
      fIS_PALETTE: JLString; external name 'IS_PALETTE';
  public
    constructor create(para1: JSJInternalFrame); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure installListeners(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
    procedure installKeyboardActions(); overload; virtual;
    procedure uninstallKeyboardActions(); overload; virtual;
    procedure uninstallComponents(); overload; virtual;
    function createNorthPane(para1: JSJInternalFrame): JSJComponent; overload; virtual;
  public
    procedure setPalette(para1: jboolean); overload; virtual;
  strict protected
    function createBorderListener(para1: JSJInternalFrame): JSEMouseInputAdapter; overload; virtual;
  end;

  JSPSSynthInternalFrameUI = class external 'javax.swing.plaf.synth' name 'SynthInternalFrameUI' (JSPBBasicInternalFrameUI, SSPSSynthUI, JBPropertyChangeListener)
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    constructor create(para1: JSJInternalFrame); overload;
    procedure installDefaults(); overload; virtual;
  strict protected
    procedure installListeners(); overload; virtual;
    procedure uninstallComponents(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
  public
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
    function getComponentState(para1: JSJComponent): jint; overload; virtual;
  strict protected
    function createNorthPane(para1: JSJInternalFrame): JSJComponent; overload; virtual;
    function createComponentListener(): JAEComponentListener; overload; virtual;
  public
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paint(para1: JSPSSynthContext; para2: JAGraphics); overload; virtual;
  public
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  end;

  JSPMMetalLabelUI = class external 'javax.swing.plaf.metal' name 'MetalLabelUI' (JSPBBasicLabelUI)
  strict protected
    class var
      fmetalLabelUI: JSPMMetalLabelUI; external name 'metalLabelUI';
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    procedure paintDisabledText(para1: JSJLabel; para2: JAGraphics; para3: JLString; para4: jint; para5: jint); overload; virtual;
  end;

  JSPSSynthLabelUI = class external 'javax.swing.plaf.synth' name 'SynthLabelUI' (JSPBBasicLabelUI, SSPSSynthUI)
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    procedure installDefaults(para1: JSJLabel); overload; virtual;
    procedure uninstallDefaults(para1: JSJLabel); overload; virtual;
  public
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
    function getBaseline(para1: JSJComponent; para2: jint; para3: jint): jint; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paint(para1: JSPSSynthContext; para2: JAGraphics); overload; virtual;
  public
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  end;

  JSPSSynthListUI = class external 'javax.swing.plaf.synth' name 'SynthListUI' (JSPBBasicListUI, JBPropertyChangeListener, SSPSSynthUI)
  public
    type
      InnerSynthListCellRenderer = class;
      Arr1InnerSynthListCellRenderer = array of InnerSynthListCellRenderer;
      Arr2InnerSynthListCellRenderer = array of Arr1InnerSynthListCellRenderer;
      Arr3InnerSynthListCellRenderer = array of Arr2InnerSynthListCellRenderer;
      InnerSynthListCellRenderer = class external 'javax.swing.plaf.synth' name 'SynthListCellRenderer' 
      end;

  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
  strict protected
    procedure installListeners(); overload; virtual;
  public
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  strict protected
    procedure uninstallListeners(); overload; virtual;
    procedure installDefaults(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
  public
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
  end;

  JSPMMetalMenuBarUI = class external 'javax.swing.plaf.metal' name 'MetalMenuBarUI' (JSPBBasicMenuBarUI)
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  end;

  JSPSSynthMenuBarUI = class external 'javax.swing.plaf.synth' name 'SynthMenuBarUI' (JSPBBasicMenuBarUI, JBPropertyChangeListener, SSPSSynthUI)
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    procedure installDefaults(); overload; virtual;
    procedure installListeners(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
  public
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paint(para1: JSPSSynthContext; para2: JAGraphics); overload; virtual;
  public
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  end;

  JSPSSynthOptionPaneUI = class external 'javax.swing.plaf.synth' name 'SynthOptionPaneUI' (JSPBBasicOptionPaneUI, JBPropertyChangeListener, SSPSSynthUI)
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    procedure installDefaults(); overload; virtual;
    procedure installListeners(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
    procedure installComponents(); overload; virtual;
  public
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paint(para1: JSPSSynthContext; para2: JAGraphics); overload; virtual;
  public
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  strict protected
    function getSizeButtonsToSameWidth(): jboolean; overload; virtual;
    function createMessageArea(): JAContainer; overload; virtual;
    function createSeparator(): JAContainer; overload; virtual;
  end;

  JSPSSynthPanelUI = class external 'javax.swing.plaf.synth' name 'SynthPanelUI' (JSPBBasicPanelUI, JBPropertyChangeListener, SSPSSynthUI)
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure installListeners(para1: JSJPanel); overload; virtual;
    procedure uninstallListeners(para1: JSJPanel); overload; virtual;
    procedure installDefaults(para1: JSJPanel); overload; virtual;
    procedure uninstallDefaults(para1: JSJPanel); overload; virtual;
  public
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paint(para1: JSPSSynthContext; para2: JAGraphics); overload; virtual;
  public
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  end;

  JSPSSynthPopupMenuUI = class external 'javax.swing.plaf.synth' name 'SynthPopupMenuUI' (JSPBBasicPopupMenuUI, JBPropertyChangeListener, SSPSSynthUI)
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installDefaults(); overload; virtual;
  strict protected
    procedure installListeners(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
  public
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paint(para1: JSPSSynthContext; para2: JAGraphics); overload; virtual;
  public
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  end;

  JSPMMetalProgressBarUI = class external 'javax.swing.plaf.metal' name 'MetalProgressBarUI' (JSPBBasicProgressBarUI)
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure paintDeterminate(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paintIndeterminate(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  end;

  JSPSSynthProgressBarUI = class external 'javax.swing.plaf.synth' name 'SynthProgressBarUI' (JSPBBasicProgressBarUI, SSPSSynthUI, JBPropertyChangeListener)
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    procedure installListeners(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
    procedure installDefaults(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
  public
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
    function getBaseline(para1: JSJComponent; para2: jint; para3: jint): jint; overload; virtual;
  strict protected
    function getBox(para1: JARectangle): JARectangle; overload; virtual;
    procedure setAnimationIndex(para1: jint); overload; virtual;
  public
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paint(para1: JSPSSynthContext; para2: JAGraphics); overload; virtual;
    procedure paintText(para1: JSPSSynthContext; para2: JAGraphics; para3: JLString); overload; virtual;
  public
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
  end;

  JSPMMetalRootPaneUI = class external 'javax.swing.plaf.metal' name 'MetalRootPaneUI' (JSPBBasicRootPaneUI)
  public
    type
      InnerMetalRootLayout = class;
      Arr1InnerMetalRootLayout = array of InnerMetalRootLayout;
      Arr2InnerMetalRootLayout = array of Arr1InnerMetalRootLayout;
      Arr3InnerMetalRootLayout = array of Arr2InnerMetalRootLayout;
      InnerMouseInputHandler = class;
      Arr1InnerMouseInputHandler = array of InnerMouseInputHandler;
      Arr2InnerMouseInputHandler = array of Arr1InnerMouseInputHandler;
      Arr3InnerMouseInputHandler = array of Arr2InnerMouseInputHandler;
      InnerMetalRootLayout = class external 'javax.swing.plaf.metal' name 'MetalRootLayout' 
      end;

      InnerMouseInputHandler = class external 'javax.swing.plaf.metal' name 'MouseInputHandler' 
      end;

  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  end;

  JSPSSynthRootPaneUI = class external 'javax.swing.plaf.synth' name 'SynthRootPaneUI' (JSPBBasicRootPaneUI, SSPSSynthUI)
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    procedure installDefaults(para1: JSJRootPane); overload; virtual;
    procedure uninstallDefaults(para1: JSJRootPane); overload; virtual;
  public
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paint(para1: JSPSSynthContext; para2: JAGraphics); overload; virtual;
  public
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  end;

  JSPMMetalScrollBarUI = class external 'javax.swing.plaf.metal' name 'MetalScrollBarUI' (JSPBBasicScrollBarUI)
  public
    type
      InnerScrollBarListener = class;
      Arr1InnerScrollBarListener = array of InnerScrollBarListener;
      Arr2InnerScrollBarListener = array of Arr1InnerScrollBarListener;
      Arr3InnerScrollBarListener = array of Arr2InnerScrollBarListener;
      InnerScrollBarListener = class external 'javax.swing.plaf.metal' name 'ScrollBarListener' 
      end;

  strict protected
    var
      fbumps: JSPMMetalBumps; external name 'bumps';
      fincreaseButton: JSPMMetalScrollButton; external name 'increaseButton';
      fdecreaseButton: JSPMMetalScrollButton; external name 'decreaseButton';
      fscrollBarWidth: jint; external name 'scrollBarWidth';
  public
    const
      FREE_STANDING_PROP = 'JScrollBar.isFreeStanding';
  strict protected
    var
      fisFreeStanding: jboolean; external name 'isFreeStanding';
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    procedure installDefaults(); overload; virtual;
    procedure installListeners(); overload; virtual;
    function createPropertyChangeListener(): JBPropertyChangeListener; overload; virtual;
    procedure configureScrollBarColors(); overload; virtual;
  public
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
  strict protected
    function createDecreaseButton(para1: jint): JSJButton; overload; virtual;
    function createIncreaseButton(para1: jint): JSJButton; overload; virtual;
    procedure paintTrack(para1: JAGraphics; para2: JSJComponent; para3: JARectangle); overload; virtual;
    procedure paintThumb(para1: JAGraphics; para2: JSJComponent; para3: JARectangle); overload; virtual;
    function getMinimumThumbSize(): JADimension; overload; virtual;
    procedure setThumbBounds(para1: jint; para2: jint; para3: jint; para4: jint); overload; virtual;
  end;

  JSPSSynthScrollBarUI = class external 'javax.swing.plaf.synth' name 'SynthScrollBarUI' (JSPBBasicScrollBarUI, JBPropertyChangeListener, SSPSSynthUI)
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    procedure installDefaults(); overload; virtual;
    procedure configureScrollBarColors(); overload; virtual;
    procedure installListeners(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
  public
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
    function getSupportsAbsolutePositioning(): jboolean; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paint(para1: JSPSSynthContext; para2: JAGraphics); overload; virtual;
  public
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
  strict protected
    procedure paintTrack(para1: JSPSSynthContext; para2: JAGraphics; para3: JARectangle); overload; virtual;
    procedure paintThumb(para1: JSPSSynthContext; para2: JAGraphics; para3: JARectangle); overload; virtual;
  public
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
  strict protected
    function getMinimumThumbSize(): JADimension; overload; virtual;
    function createDecreaseButton(para1: jint): JSJButton; overload; virtual;
    function createIncreaseButton(para1: jint): JSJButton; overload; virtual;
    procedure setThumbRollover(para1: jboolean); overload; virtual;
  public
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  end;

  JSPMMetalScrollPaneUI = class external 'javax.swing.plaf.metal' name 'MetalScrollPaneUI' (JSPBBasicScrollPaneUI)
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure installListeners(para1: JSJScrollPane); overload; virtual;
    procedure uninstallListeners(para1: JSJScrollPane); overload; virtual;
  strict protected
    function createScrollBarSwapListener(): JBPropertyChangeListener; overload; virtual;
  end;

  JSPSSynthScrollPaneUI = class external 'javax.swing.plaf.synth' name 'SynthScrollPaneUI' (JSPBBasicScrollPaneUI, JBPropertyChangeListener, SSPSSynthUI)
  public
    type
      InnerViewportBorder = class;
      Arr1InnerViewportBorder = array of InnerViewportBorder;
      Arr2InnerViewportBorder = array of Arr1InnerViewportBorder;
      Arr3InnerViewportBorder = array of Arr2InnerViewportBorder;
      InnerViewportViewFocusHandler = class;
      Arr1InnerViewportViewFocusHandler = array of InnerViewportViewFocusHandler;
      Arr2InnerViewportViewFocusHandler = array of Arr1InnerViewportViewFocusHandler;
      Arr3InnerViewportViewFocusHandler = array of Arr2InnerViewportViewFocusHandler;
      InnerViewportBorder = class external 'javax.swing.plaf.synth' name 'ViewportBorder' 
      end;

      InnerViewportViewFocusHandler = class external 'javax.swing.plaf.synth' name 'ViewportViewFocusHandler' 
      end;

  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paint(para1: JSPSSynthContext; para2: JAGraphics); overload; virtual;
  public
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
  strict protected
    procedure installDefaults(para1: JSJScrollPane); overload; virtual;
    procedure installListeners(para1: JSJScrollPane); overload; virtual;
    procedure uninstallDefaults(para1: JSJScrollPane); overload; virtual;
    procedure uninstallListeners(para1: JSJComponent); overload; virtual;
  public
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  end;

  JSPBBasicPopupMenuSeparatorUI = class external 'javax.swing.plaf.basic' name 'BasicPopupMenuSeparatorUI' (JSPBBasicSeparatorUI)
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
  end;

  JSPBBasicToolBarSeparatorUI = class external 'javax.swing.plaf.basic' name 'BasicToolBarSeparatorUI' (JSPBBasicSeparatorUI)
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    procedure installDefaults(para1: JSJSeparator); overload; virtual;
  public
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
  end;

  JSPMMetalSeparatorUI = class external 'javax.swing.plaf.metal' name 'MetalSeparatorUI' (JSPBBasicSeparatorUI)
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    procedure installDefaults(para1: JSJSeparator); overload; virtual;
  public
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
  end;

  JSPMMetalSliderUI = class external 'javax.swing.plaf.metal' name 'MetalSliderUI' (JSPBBasicSliderUI)
  public
    type
      InnerMetalPropertyListener = class;
      Arr1InnerMetalPropertyListener = array of InnerMetalPropertyListener;
      Arr2InnerMetalPropertyListener = array of Arr1InnerMetalPropertyListener;
      Arr3InnerMetalPropertyListener = array of Arr2InnerMetalPropertyListener;
      InnerMetalPropertyListener = class external 'javax.swing.plaf.metal' name 'MetalPropertyListener' 
      end;

  strict protected
    const
      TICK_BUFFER = 4;
  strict protected
    var
      ffilledSlider: jboolean; external name 'filledSlider';
  strict protected
    class var
      fthumbColor: JAColor; external name 'thumbColor';
      fhighlightColor: JAColor; external name 'highlightColor';
      fdarkShadowColor: JAColor; external name 'darkShadowColor';
      ftrackWidth: jint; external name 'trackWidth';
      ftickLength: jint; external name 'tickLength';
      fhorizThumbIcon: JSIcon; external name 'horizThumbIcon';
      fvertThumbIcon: JSIcon; external name 'vertThumbIcon';
  strict protected
    const
      SLIDER_FILL = 'JSlider.isFilled';
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    constructor create(); overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
  strict protected
    function createPropertyChangeListener(para1: JSJSlider): JBPropertyChangeListener; overload; virtual;
  public
    procedure paintThumb(para1: JAGraphics); overload; virtual;
    procedure paintTrack(para1: JAGraphics); overload; virtual;
    procedure paintFocus(para1: JAGraphics); overload; virtual;
  strict protected
    function getThumbSize(): JADimension; overload; virtual;
  public
    function getTickLength(): jint; overload; virtual;
  strict protected
    function getTrackWidth(): jint; overload; virtual;
    function getTrackLength(): jint; overload; virtual;
    function getThumbOverhang(): jint; overload; virtual;
    procedure scrollDueToClickInTrack(para1: jint); overload; virtual;
    procedure paintMinorTickForHorizSlider(para1: JAGraphics; para2: JARectangle; para3: jint); overload; virtual;
    procedure paintMajorTickForHorizSlider(para1: JAGraphics; para2: JARectangle; para3: jint); overload; virtual;
    procedure paintMinorTickForVertSlider(para1: JAGraphics; para2: JARectangle; para3: jint); overload; virtual;
    procedure paintMajorTickForVertSlider(para1: JAGraphics; para2: JARectangle; para3: jint); overload; virtual;
  end;

  JSPSSynthSliderUI = class external 'javax.swing.plaf.synth' name 'SynthSliderUI' (JSPBBasicSliderUI, JBPropertyChangeListener, SSPSSynthUI)
  public
    type
      InnerSynthTrackListener = class;
      Arr1InnerSynthTrackListener = array of InnerSynthTrackListener;
      Arr2InnerSynthTrackListener = array of Arr1InnerSynthTrackListener;
      Arr3InnerSynthTrackListener = array of Arr2InnerSynthTrackListener;
      InnerSynthTrackListener = class external 'javax.swing.plaf.synth' name 'SynthTrackListener' 
      end;

  strict protected
    var
      fcontentDim: JADimension; external name 'contentDim';
      fvalueRect: JARectangle; external name 'valueRect';
      fpaintValue: jboolean; external name 'paintValue';
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    constructor create(para1: JSJSlider); overload;
  strict protected
    procedure installDefaults(para1: JSJSlider); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
    procedure installListeners(para1: JSJSlider); overload; virtual;
    procedure uninstallListeners(para1: JSJSlider); overload; virtual;
    function createTrackListener(para1: JSJSlider): JSPBBasicSliderUI.InnerTrackListener; overload; virtual;
  public
    function getBaseline(para1: JSJComponent; para2: jint; para3: jint): jint; overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
  strict protected
    procedure calculateGeometry(); overload; virtual;
    procedure layout(); overload; virtual;
    procedure calculateThumbLocation(); overload; virtual;
    procedure calculateTickRect(); overload; virtual;
  public
    procedure setThumbLocation(para1: jint; para2: jint); overload; virtual;
  strict protected
    function xPositionForValue(para1: jint): jint; overload; virtual;
    function yPositionForValue(para1: jint; para2: jint; para3: jint): jint; overload; virtual;
  public
    function valueForYPosition(para1: jint): jint; overload; virtual;
    function valueForXPosition(para1: jint): jint; overload; virtual;
  strict protected
    function getThumbSize(): JADimension; overload; virtual;
    procedure recalculateIfInsetsChanged(); overload; virtual;
  public
    function getRegion(para1: JSJComponent): JSPSRegion; overload; virtual;
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
    function getContext(para1: JSJComponent; para2: jint): JSPSSynthContext; overload; virtual;
    function getContext(para1: JSJComponent; para2: JSPSRegion): JSPSSynthContext; overload; virtual;
    function getComponentState(para1: JSJComponent): jint; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paint(para1: JSPSSynthContext; para2: JAGraphics); overload; virtual;
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paintThumb(para1: JSPSSynthContext; para2: JAGraphics; para3: JARectangle); overload; virtual;
    procedure paintTrack(para1: JSPSSynthContext; para2: JAGraphics; para3: JARectangle); overload; virtual;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  end;

  JSPSSynthSpinnerUI = class external 'javax.swing.plaf.synth' name 'SynthSpinnerUI' (JSPBBasicSpinnerUI, JBPropertyChangeListener, SSPSSynthUI)
  public
    type
      InnerEditorFocusHandler = class;
      Arr1InnerEditorFocusHandler = array of InnerEditorFocusHandler;
      Arr2InnerEditorFocusHandler = array of Arr1InnerEditorFocusHandler;
      Arr3InnerEditorFocusHandler = array of Arr2InnerEditorFocusHandler;
      InnerSpinnerArrowButton = class;
      Arr1InnerSpinnerArrowButton = array of InnerSpinnerArrowButton;
      Arr2InnerSpinnerArrowButton = array of Arr1InnerSpinnerArrowButton;
      Arr3InnerSpinnerArrowButton = array of Arr2InnerSpinnerArrowButton;
      InnerSpinnerLayout = class;
      Arr1InnerSpinnerLayout = array of InnerSpinnerLayout;
      Arr2InnerSpinnerLayout = array of Arr1InnerSpinnerLayout;
      Arr3InnerSpinnerLayout = array of Arr2InnerSpinnerLayout;
      InnerEditorFocusHandler = class external 'javax.swing.plaf.synth' name 'EditorFocusHandler' 
      end;

      InnerSpinnerArrowButton = class external 'javax.swing.plaf.synth' name 'SpinnerArrowButton' 
      end;

      InnerSpinnerLayout = class external 'javax.swing.plaf.synth' name 'SpinnerLayout' 
      end;

  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    procedure installListeners(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
    procedure installDefaults(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
    function createLayout(): JALayoutManager; overload; virtual;
    function createPreviousButton(): JAComponent; overload; virtual;
    function createNextButton(): JAComponent; overload; virtual;
    function createEditor(): JSJComponent; overload; virtual;
    procedure replaceEditor(para1: JSJComponent; para2: JSJComponent); overload; virtual;
  public
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paint(para1: JSPSSynthContext; para2: JAGraphics); overload; virtual;
  public
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  end;

  JSPMMetalSplitPaneUI = class external 'javax.swing.plaf.metal' name 'MetalSplitPaneUI' (JSPBBasicSplitPaneUI)
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    function createDefaultDivider(): JSPBBasicSplitPaneDivider; overload; virtual;
  end;

  JSPSSynthSplitPaneUI = class external 'javax.swing.plaf.synth' name 'SynthSplitPaneUI' (JSPBBasicSplitPaneUI, JBPropertyChangeListener, SSPSSynthUI)
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    procedure installDefaults(); overload; virtual;
    procedure installListeners(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
  public
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
    function createDefaultDivider(): JSPBBasicSplitPaneDivider; overload; virtual;
  strict protected
    function createDefaultNonContinuousLayoutDivider(): JAComponent; overload; virtual;
  public
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paint(para1: JSPSSynthContext; para2: JAGraphics); overload; virtual;
  public
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure finishedPaintingChildren(para1: JSJSplitPane; para2: JAGraphics); overload; virtual;
  end;

  JSPMMetalTabbedPaneUI = class external 'javax.swing.plaf.metal' name 'MetalTabbedPaneUI' (JSPBBasicTabbedPaneUI)
  public
    type
      InnerTabbedPaneLayout = class;
      Arr1InnerTabbedPaneLayout = array of InnerTabbedPaneLayout;
      Arr2InnerTabbedPaneLayout = array of Arr1InnerTabbedPaneLayout;
      Arr3InnerTabbedPaneLayout = array of Arr2InnerTabbedPaneLayout;
      InnerTabbedPaneLayout = class external 'javax.swing.plaf.metal' name 'TabbedPaneLayout' 
      end;

  strict protected
    var
      fminTabWidth: jint; external name 'minTabWidth';
      ftabAreaBackground: JAColor; external name 'tabAreaBackground';
      fselectColor: JAColor; external name 'selectColor';
      fselectHighlight: JAColor; external name 'selectHighlight';
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    function createLayoutManager(): JALayoutManager; overload; virtual;
    procedure installDefaults(); overload; virtual;
    procedure paintTabBorder(para1: JAGraphics; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jboolean); overload; virtual;
    procedure paintTopTabBorder(para1: jint; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: jboolean); overload; virtual;
    function shouldFillGap(para1: jint; para2: jint; para3: jint; para4: jint): jboolean; overload; virtual;
    function getColorForGap(para1: jint; para2: jint; para3: jint): JAColor; overload; virtual;
    procedure paintLeftTabBorder(para1: jint; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: jboolean); overload; virtual;
    procedure paintBottomTabBorder(para1: jint; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: jboolean); overload; virtual;
    procedure paintRightTabBorder(para1: jint; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: jboolean); overload; virtual;
  public
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paintTabBackground(para1: JAGraphics; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint; para8: jboolean); overload; virtual;
    function getTabLabelShiftX(para1: jint; para2: jint; para3: jboolean): jint; overload; virtual;
    function getTabLabelShiftY(para1: jint; para2: jint; para3: jboolean): jint; overload; virtual;
    function getBaselineOffset(): jint; overload; virtual;
  public
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paintHighlightBelowTab(); overload; virtual;
    procedure paintFocusIndicator(para1: JAGraphics; para2: jint; para3: Arr1JARectangle; para4: jint; para5: JARectangle; para6: JARectangle; para7: jboolean); overload; virtual;
    procedure paintFocusIndicator(para1: JAGraphics; para2: jint; var para3: array of JARectangle; para4: jint; para5: JARectangle; para6: JARectangle; para7: jboolean); overload; virtual;
    procedure paintContentBorderTopEdge(para1: JAGraphics; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintContentBorderBottomEdge(para1: JAGraphics; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintContentBorderLeftEdge(para1: JAGraphics; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    procedure paintContentBorderRightEdge(para1: JAGraphics; para2: jint; para3: jint; para4: jint; para5: jint; para6: jint; para7: jint); overload; virtual;
    function calculateMaxTabHeight(para1: jint): jint; overload; virtual;
    function getTabRunOverlay(para1: jint): jint; overload; virtual;
    function shouldRotateTabRuns(para1: jint; para2: jint): jboolean; overload; virtual;
    function shouldPadTabRun(para1: jint; para2: jint): jboolean; overload; virtual;
  end;

  JSPSSynthTabbedPaneUI = class external 'javax.swing.plaf.synth' name 'SynthTabbedPaneUI' (JSPBBasicTabbedPaneUI, SSPSSynthUI, JBPropertyChangeListener)
  public
    type
      InnerSynthScrollableTabButton = class;
      Arr1InnerSynthScrollableTabButton = array of InnerSynthScrollableTabButton;
      Arr2InnerSynthScrollableTabButton = array of Arr1InnerSynthScrollableTabButton;
      Arr3InnerSynthScrollableTabButton = array of Arr2InnerSynthScrollableTabButton;
      InnerSynthScrollableTabButton = class external 'javax.swing.plaf.synth' name 'SynthScrollableTabButton' 
      end;

  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    procedure installDefaults(); overload; virtual;
    procedure installListeners(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
  public
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
    function getContext(para1: JSJComponent; para2: jint): JSPSSynthContext; overload; virtual;
    function getContext(para1: JSJComponent; para2: JSPSRegion): JSPSSynthContext; overload; virtual;
  strict protected
    function createScrollButton(para1: jint): JSJButton; overload; virtual;
  public
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  strict protected
    function createMouseListener(): JAEMouseListener; overload; virtual;
    function getTabLabelShiftX(para1: jint; para2: jint; para3: jboolean): jint; overload; virtual;
    function getTabLabelShiftY(para1: jint; para2: jint; para3: jboolean): jint; overload; virtual;
  public
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    function getBaseline(para1: jint): jint; overload; virtual;
  public
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paint(para1: JSPSSynthContext; para2: JAGraphics); overload; virtual;
    procedure paintTabArea(para1: JAGraphics; para2: jint; para3: jint); overload; virtual;
    procedure paintTabArea(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: JARectangle); overload; virtual;
    procedure setRolloverTab(para1: jint); overload; virtual;
    procedure paintTab(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: Arr1JARectangle; para5: jint; para6: JARectangle; para7: JARectangle); overload; virtual;
    procedure paintTab(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; var para4: array of JARectangle; para5: jint; para6: JARectangle; para7: JARectangle); overload; virtual;
    procedure layoutLabel(para1: JSPSSynthContext; para2: jint; para3: JAFontMetrics; para4: jint; para5: JLString; para6: JSIcon; para7: JARectangle; para8: JARectangle; para9: JARectangle; para10: jboolean); overload; virtual;
    procedure paintText(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: JAFont; para5: JAFontMetrics; para6: jint; para7: JLString; para8: JARectangle; para9: jboolean); overload; virtual;
    procedure paintContentBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint); overload; virtual;
    function calculateMaxTabHeight(para1: jint): jint; overload; virtual;
    function calculateTabWidth(para1: jint; para2: jint; para3: JAFontMetrics): jint; overload; virtual;
    function calculateMaxTabWidth(para1: jint): jint; overload; virtual;
    function getTabInsets(para1: jint; para2: jint): JAInsets; overload; virtual;
    function getFontMetrics(): JAFontMetrics; overload; virtual;
    function getFontMetrics(para1: JAFont): JAFontMetrics; overload; virtual;
    function createLayoutManager(): JALayoutManager; overload; virtual;
  end;

  JSPSSynthTableHeaderUI = class external 'javax.swing.plaf.synth' name 'SynthTableHeaderUI' (JSPBBasicTableHeaderUI, JBPropertyChangeListener, SSPSSynthUI)
  public
    type
      InnerHeaderRenderer = class;
      Arr1InnerHeaderRenderer = array of InnerHeaderRenderer;
      Arr2InnerHeaderRenderer = array of Arr1InnerHeaderRenderer;
      Arr3InnerHeaderRenderer = array of Arr2InnerHeaderRenderer;
      InnerHeaderRenderer = class external 'javax.swing.plaf.synth' name 'HeaderRenderer' 
      end;

  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    procedure installDefaults(); overload; virtual;
    procedure installListeners(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
  public
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paint(para1: JSPSSynthContext; para2: JAGraphics); overload; virtual;
  public
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  strict protected
    procedure rolloverColumnUpdated(para1: jint; para2: jint); overload; virtual;
  end;

  JSPSSynthTableUI = class external 'javax.swing.plaf.synth' name 'SynthTableUI' (JSPBBasicTableUI, SSPSSynthUI, JBPropertyChangeListener)
  public
    type
      InnerSynthBooleanTableCellRenderer = class;
      Arr1InnerSynthBooleanTableCellRenderer = array of InnerSynthBooleanTableCellRenderer;
      Arr2InnerSynthBooleanTableCellRenderer = array of Arr1InnerSynthBooleanTableCellRenderer;
      Arr3InnerSynthBooleanTableCellRenderer = array of Arr2InnerSynthBooleanTableCellRenderer;
      InnerSynthTableCellRenderer = class;
      Arr1InnerSynthTableCellRenderer = array of InnerSynthTableCellRenderer;
      Arr2InnerSynthTableCellRenderer = array of Arr1InnerSynthTableCellRenderer;
      Arr3InnerSynthTableCellRenderer = array of Arr2InnerSynthTableCellRenderer;
      InnerSynthBooleanTableCellRenderer = class external 'javax.swing.plaf.synth' name 'SynthBooleanTableCellRenderer' 
      end;

      InnerSynthTableCellRenderer = class external 'javax.swing.plaf.synth' name 'SynthTableCellRenderer' 
      end;

  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    procedure installDefaults(); overload; virtual;
    procedure installListeners(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
  public
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paint(para1: JSPSSynthContext; para2: JAGraphics); overload; virtual;
  public
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  end;

  JSPMMetalToolBarUI = class external 'javax.swing.plaf.metal' name 'MetalToolBarUI' (JSPBBasicToolBarUI)
  public
    type
      InnerMetalContainerListener = class;
      Arr1InnerMetalContainerListener = array of InnerMetalContainerListener;
      Arr2InnerMetalContainerListener = array of Arr1InnerMetalContainerListener;
      Arr3InnerMetalContainerListener = array of Arr2InnerMetalContainerListener;
      InnerMetalDockingListener = class;
      Arr1InnerMetalDockingListener = array of InnerMetalDockingListener;
      Arr2InnerMetalDockingListener = array of Arr1InnerMetalDockingListener;
      Arr3InnerMetalDockingListener = array of Arr2InnerMetalDockingListener;
      InnerMetalRolloverListener = class;
      Arr1InnerMetalRolloverListener = array of InnerMetalRolloverListener;
      Arr2InnerMetalRolloverListener = array of Arr1InnerMetalRolloverListener;
      Arr3InnerMetalRolloverListener = array of Arr2InnerMetalRolloverListener;
      InnerMetalContainerListener = class external 'javax.swing.plaf.metal' name 'MetalContainerListener' 
      end;

      InnerMetalDockingListener = class external 'javax.swing.plaf.metal' name 'MetalDockingListener' 
      end;

      InnerMetalRolloverListener = class external 'javax.swing.plaf.metal' name 'MetalRolloverListener' 
      end;

  strict protected
    var
      fcontListener: JAEContainerListener; external name 'contListener';
      frolloverListener: JBPropertyChangeListener; external name 'rolloverListener';
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure installListeners(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
    function createRolloverBorder(): JSBBorder; overload; virtual;
    function createNonRolloverBorder(): JSBBorder; overload; virtual;
    procedure setBorderToNonRollover(para1: JAComponent); overload; virtual;
    function createContainerListener(): JAEContainerListener; overload; virtual;
    function createRolloverListener(): JBPropertyChangeListener; overload; virtual;
    function createDockingListener(): JSEMouseInputListener; overload; virtual;
    procedure setDragOffset(para1: JAPoint); overload; virtual;
  public
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  end;

  JSPSSynthToolBarUI = class external 'javax.swing.plaf.synth' name 'SynthToolBarUI' (JSPBBasicToolBarUI, JBPropertyChangeListener, SSPSSynthUI)
  public
    type
      InnerSynthToolBarLayoutManager = class;
      Arr1InnerSynthToolBarLayoutManager = array of InnerSynthToolBarLayoutManager;
      Arr2InnerSynthToolBarLayoutManager = array of Arr1InnerSynthToolBarLayoutManager;
      Arr3InnerSynthToolBarLayoutManager = array of Arr2InnerSynthToolBarLayoutManager;
      InnerSynthToolBarLayoutManager = class external 'javax.swing.plaf.synth' name 'SynthToolBarLayoutManager' 
      end;

  strict protected
    var
      fhandleIcon: JSIcon; external name 'handleIcon';
      fcontentRect: JARectangle; external name 'contentRect';
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    procedure installDefaults(); overload; virtual;
    procedure installListeners(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
    procedure installComponents(); overload; virtual;
    procedure uninstallComponents(); overload; virtual;
    function createLayout(): JALayoutManager; overload; virtual;
  public
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
  strict protected
    procedure setBorderToNonRollover(para1: JAComponent); overload; virtual;
    procedure setBorderToRollover(para1: JAComponent); overload; virtual;
    procedure setBorderToNormal(para1: JAComponent); overload; virtual;
    procedure paint(para1: JSPSSynthContext; para2: JAGraphics); overload; virtual;
  public
    procedure paintContent(para1: JSPSSynthContext; para2: JAGraphics; para3: JARectangle); overload; virtual;
  strict protected
    procedure paintDragWindow(para1: JAGraphics); overload; virtual;
  public
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  end;

  JSPMMetalToolTipUI = class external 'javax.swing.plaf.metal' name 'MetalToolTipUI' (JSPBBasicToolTipUI)
  public
    const
      padSpaceBetweenStrings = 12;
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
  strict protected
    function isAcceleratorHidden(): jboolean; overload; virtual;
  public
    function getAcceleratorString(): JLString; overload; virtual;
  end;

  JSPSSynthToolTipUI = class external 'javax.swing.plaf.synth' name 'SynthToolTipUI' (JSPBBasicToolTipUI, JBPropertyChangeListener, SSPSSynthUI)
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    procedure installDefaults(para1: JSJComponent); overload; virtual;
    procedure uninstallDefaults(para1: JSJComponent); overload; virtual;
    procedure installListeners(para1: JSJComponent); overload; virtual;
    procedure uninstallListeners(para1: JSJComponent); overload; virtual;
  public
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paint(para1: JSPSSynthContext; para2: JAGraphics); overload; virtual;
  public
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  end;

  JSPMMetalTreeUI = class external 'javax.swing.plaf.metal' name 'MetalTreeUI' (JSPBBasicTreeUI)
  public
    type
      InnerLineListener = class;
      Arr1InnerLineListener = array of InnerLineListener;
      Arr2InnerLineListener = array of Arr1InnerLineListener;
      Arr3InnerLineListener = array of Arr2InnerLineListener;
      InnerLineListener = class external 'javax.swing.plaf.metal' name 'LineListener' 
      end;

  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    constructor create(); overload;
  strict protected
    function getHorizontalLegBuffer(): jint; overload; virtual;
  public
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure decodeLineStyle(para1: JLObject); overload; virtual;
    function isLocationInExpandControl(para1: jint; para2: jint; para3: jint; para4: jint): jboolean; overload; virtual;
  public
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paintHorizontalSeparators(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paintVerticalPartOfLeg(para1: JAGraphics; para2: JARectangle; para3: JAInsets; para4: JSTTreePath); overload; virtual;
    procedure paintHorizontalPartOfLeg(para1: JAGraphics; para2: JARectangle; para3: JAInsets; para4: JARectangle; para5: JSTTreePath; para6: jint; para7: jboolean; para8: jboolean; para9: jboolean); overload; virtual;
  end;

  JSPSSynthTreeUI = class external 'javax.swing.plaf.synth' name 'SynthTreeUI' (JSPBBasicTreeUI, JBPropertyChangeListener, SSPSSynthUI)
  public
    type
      InnerExpandedIconWrapper = class;
      Arr1InnerExpandedIconWrapper = array of InnerExpandedIconWrapper;
      Arr2InnerExpandedIconWrapper = array of Arr1InnerExpandedIconWrapper;
      Arr3InnerExpandedIconWrapper = array of Arr2InnerExpandedIconWrapper;
      InnerSynthTreeCellEditor = class;
      Arr1InnerSynthTreeCellEditor = array of InnerSynthTreeCellEditor;
      Arr2InnerSynthTreeCellEditor = array of Arr1InnerSynthTreeCellEditor;
      Arr3InnerSynthTreeCellEditor = array of Arr2InnerSynthTreeCellEditor;
      InnerSynthTreeCellRenderer = class;
      Arr1InnerSynthTreeCellRenderer = array of InnerSynthTreeCellRenderer;
      Arr2InnerSynthTreeCellRenderer = array of Arr1InnerSynthTreeCellRenderer;
      Arr3InnerSynthTreeCellRenderer = array of Arr2InnerSynthTreeCellRenderer;
      InnerExpandedIconWrapper = class external 'javax.swing.plaf.synth' name 'ExpandedIconWrapper' 
      end;

      InnerSynthTreeCellEditor = class external 'javax.swing.plaf.synth' name 'SynthTreeCellEditor' 
      end;

      InnerSynthTreeCellRenderer = class external 'javax.swing.plaf.synth' name 'SynthTreeCellRenderer' 
      end;

  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    function getExpandedIcon(): JSIcon; overload; virtual;
  strict protected
    procedure installDefaults(); overload; virtual;
    procedure installListeners(); overload; virtual;
  public
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
  strict protected
    function createDefaultCellEditor(): JSTTreeCellEditor; overload; virtual;
    function createDefaultCellRenderer(): JSTTreeCellRenderer; overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
  public
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paint(para1: JSPSSynthContext; para2: JAGraphics); overload; virtual;
    procedure paintHorizontalPartOfLeg(para1: JAGraphics; para2: JARectangle; para3: JAInsets; para4: JARectangle; para5: JSTTreePath; para6: jint; para7: jboolean; para8: jboolean; para9: jboolean); overload; virtual;
    procedure paintHorizontalLine(para1: JAGraphics; para2: JSJComponent; para3: jint; para4: jint; para5: jint); overload; virtual;
    procedure paintVerticalPartOfLeg(para1: JAGraphics; para2: JARectangle; para3: JAInsets; para4: JSTTreePath); overload; virtual;
    procedure paintVerticalLine(para1: JAGraphics; para2: JSJComponent; para3: jint; para4: jint; para5: jint); overload; virtual;
    procedure paintRow(para1: JSTTreeCellRenderer; para2: JSTDefaultTreeCellRenderer; para3: JSPSSynthContext; para4: JSPSSynthContext; para5: JAGraphics; para6: JARectangle; para7: JAInsets; para8: JARectangle; para9: JARectangle; para10: JSTTreePath; para11: jint; para12: jboolean; para13: jboolean; para14: jboolean); overload; virtual;
    procedure paintExpandControl(para1: JAGraphics; para2: JARectangle; para3: JAInsets; para4: JARectangle; para5: JSTTreePath; para6: jint; para7: jboolean; para8: jboolean; para9: jboolean); overload; virtual;
    procedure drawCentered(para1: JAComponent; para2: JAGraphics; para3: JSIcon; para4: jint; para5: jint); overload; virtual;
  public
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  strict protected
    function getRowX(para1: jint; para2: jint): jint; overload; virtual;
  end;

  JUJJarInputStream = class external 'java.util.jar' name 'JarInputStream' (JUZZipInputStream)
  public
    constructor create(para1: JIInputStream); overload;  // throws java.io.IOException
    constructor create(para1: JIInputStream; para2: jboolean); overload;  // throws java.io.IOException
    function getManifest(): JUJManifest; overload; virtual;
    function getNextEntry(): JUZZipEntry; overload; virtual;  // throws java.io.IOException
    function getNextJarEntry(): JUJJarEntry; overload; virtual;  // throws java.io.IOException
    function read(para1: Arr1jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
    function read(var para1: array of jbyte; para2: jint; para3: jint): jint; overload; virtual;  // throws java.io.IOException
  strict protected
    function createZipEntry(para1: JLString): JUZZipEntry; overload; virtual;
  end;

  JNCSAbstractSelectableChannel = class abstract external 'java.nio.channels.spi' name 'AbstractSelectableChannel' (JNCSelectableChannel)
  strict protected
    constructor create(para1: JNCSSelectorProvider); overload;
  public
    function provider(): JNCSSelectorProvider; overload; virtual; final;
    function isRegistered(): jboolean; overload; virtual; final;
    function keyFor(para1: JNCSelector): JNCSelectionKey; overload; virtual; final;
    function register(para1: JNCSelector; para2: jint; para3: JLObject): JNCSelectionKey; overload; virtual; final;  // throws java.nio.channels.ClosedChannelException
  strict protected
    procedure implCloseChannel(); overload; virtual; final;  // throws java.io.IOException
    procedure implCloseSelectableChannel(); overload; virtual; abstract;  // throws java.io.IOException
  public
    function isBlocking(): jboolean; overload; virtual; final;
    function blockingLock(): JLObject; overload; virtual; final;
    function configureBlocking(para1: jboolean): JNCSelectableChannel; overload; virtual; final;  // throws java.io.IOException
  strict protected
    procedure implConfigureBlocking(para1: jboolean); overload; virtual; abstract;  // throws java.io.IOException
  end;

  JUJJarOutputStream = class external 'java.util.jar' name 'JarOutputStream' (JUZZipOutputStream)
  public
    constructor create(para1: JIOutputStream; para2: JUJManifest); overload;  // throws java.io.IOException
    constructor create(para1: JIOutputStream); overload;  // throws java.io.IOException
    procedure putNextEntry(para1: JUZZipEntry); overload; virtual;  // throws java.io.IOException
  end;

  JSRFilteredRowSet = interface external 'javax.sql.rowset' name 'FilteredRowSet' (JSRWebRowSet)
    procedure setFilter(para1: JSRPredicate); overload;  // throws java.sql.SQLException
    function getFilter(): JSRPredicate; overload;
  end;

  JSRJoinRowSet = interface external 'javax.sql.rowset' name 'JoinRowSet' (JSRWebRowSet)
    const
      CROSS_JOIN = 0;
      INNER_JOIN = 1;
      LEFT_OUTER_JOIN = 2;
      RIGHT_OUTER_JOIN = 3;
      FULL_JOIN = 4;
    procedure addRowSet(para1: JSRJoinable); overload;  // throws java.sql.SQLException
    procedure addRowSet(para1: JSRowSet; para2: jint); overload;  // throws java.sql.SQLException
    procedure addRowSet(para1: JSRowSet; para2: JLString); overload;  // throws java.sql.SQLException
    procedure addRowSet(para1: Arr1JSRowSet; para2: Arr1jint); overload;  // throws java.sql.SQLException
    procedure addRowSet(var para1: array of JSRowSet; var para2: array of jint); overload;  // throws java.sql.SQLException
    procedure addRowSet(para1: Arr1JSRowSet; para2: Arr1JLString); overload;  // throws java.sql.SQLException
    procedure addRowSet(var para1: array of JSRowSet; var para2: array of JLString); overload;  // throws java.sql.SQLException
    function getRowSets(): JUCollection; overload;  // throws java.sql.SQLException
    function getRowSetNames(): Arr1JLString; overload;  // throws java.sql.SQLException
    function toCachedRowSet(): JSRCachedRowSet; overload;  // throws java.sql.SQLException
    function supportsCrossJoin(): jboolean; overload;
    function supportsInnerJoin(): jboolean; overload;
    function supportsLeftOuterJoin(): jboolean; overload;
    function supportsRightOuterJoin(): jboolean; overload;
    function supportsFullJoin(): jboolean; overload;
    procedure setJoinType(para1: jint); overload;  // throws java.sql.SQLException
    function getWhereClause(): JLString; overload;  // throws java.sql.SQLException
    function getJoinType(): jint; overload;  // throws java.sql.SQLException
  end;

  JSTDefaultEditorKit = class external 'javax.swing.text' name 'DefaultEditorKit' (JSTEditorKit)
  public
    type
      InnerBeginAction = class;
      Arr1InnerBeginAction = array of InnerBeginAction;
      Arr2InnerBeginAction = array of Arr1InnerBeginAction;
      Arr3InnerBeginAction = array of Arr2InnerBeginAction;
      InnerBeginLineAction = class;
      Arr1InnerBeginLineAction = array of InnerBeginLineAction;
      Arr2InnerBeginLineAction = array of Arr1InnerBeginLineAction;
      Arr3InnerBeginLineAction = array of Arr2InnerBeginLineAction;
      InnerBeginParagraphAction = class;
      Arr1InnerBeginParagraphAction = array of InnerBeginParagraphAction;
      Arr2InnerBeginParagraphAction = array of Arr1InnerBeginParagraphAction;
      Arr3InnerBeginParagraphAction = array of Arr2InnerBeginParagraphAction;
      InnerBeginWordAction = class;
      Arr1InnerBeginWordAction = array of InnerBeginWordAction;
      Arr2InnerBeginWordAction = array of Arr1InnerBeginWordAction;
      Arr3InnerBeginWordAction = array of Arr2InnerBeginWordAction;
      InnerDeleteNextCharAction = class;
      Arr1InnerDeleteNextCharAction = array of InnerDeleteNextCharAction;
      Arr2InnerDeleteNextCharAction = array of Arr1InnerDeleteNextCharAction;
      Arr3InnerDeleteNextCharAction = array of Arr2InnerDeleteNextCharAction;
      InnerDeletePrevCharAction = class;
      Arr1InnerDeletePrevCharAction = array of InnerDeletePrevCharAction;
      Arr2InnerDeletePrevCharAction = array of Arr1InnerDeletePrevCharAction;
      Arr3InnerDeletePrevCharAction = array of Arr2InnerDeletePrevCharAction;
      InnerDeleteWordAction = class;
      Arr1InnerDeleteWordAction = array of InnerDeleteWordAction;
      Arr2InnerDeleteWordAction = array of Arr1InnerDeleteWordAction;
      Arr3InnerDeleteWordAction = array of Arr2InnerDeleteWordAction;
      InnerDumpModelAction = class;
      Arr1InnerDumpModelAction = array of InnerDumpModelAction;
      Arr2InnerDumpModelAction = array of Arr1InnerDumpModelAction;
      Arr3InnerDumpModelAction = array of Arr2InnerDumpModelAction;
      InnerEndAction = class;
      Arr1InnerEndAction = array of InnerEndAction;
      Arr2InnerEndAction = array of Arr1InnerEndAction;
      Arr3InnerEndAction = array of Arr2InnerEndAction;
      InnerEndLineAction = class;
      Arr1InnerEndLineAction = array of InnerEndLineAction;
      Arr2InnerEndLineAction = array of Arr1InnerEndLineAction;
      Arr3InnerEndLineAction = array of Arr2InnerEndLineAction;
      InnerEndParagraphAction = class;
      Arr1InnerEndParagraphAction = array of InnerEndParagraphAction;
      Arr2InnerEndParagraphAction = array of Arr1InnerEndParagraphAction;
      Arr3InnerEndParagraphAction = array of Arr2InnerEndParagraphAction;
      InnerEndWordAction = class;
      Arr1InnerEndWordAction = array of InnerEndWordAction;
      Arr2InnerEndWordAction = array of Arr1InnerEndWordAction;
      Arr3InnerEndWordAction = array of Arr2InnerEndWordAction;
      InnerNextVisualPositionAction = class;
      Arr1InnerNextVisualPositionAction = array of InnerNextVisualPositionAction;
      Arr2InnerNextVisualPositionAction = array of Arr1InnerNextVisualPositionAction;
      Arr3InnerNextVisualPositionAction = array of Arr2InnerNextVisualPositionAction;
      InnerNextWordAction = class;
      Arr1InnerNextWordAction = array of InnerNextWordAction;
      Arr2InnerNextWordAction = array of Arr1InnerNextWordAction;
      Arr3InnerNextWordAction = array of Arr2InnerNextWordAction;
      InnerPageAction = class;
      Arr1InnerPageAction = array of InnerPageAction;
      Arr2InnerPageAction = array of Arr1InnerPageAction;
      Arr3InnerPageAction = array of Arr2InnerPageAction;
      InnerPreviousWordAction = class;
      Arr1InnerPreviousWordAction = array of InnerPreviousWordAction;
      Arr2InnerPreviousWordAction = array of Arr1InnerPreviousWordAction;
      Arr3InnerPreviousWordAction = array of Arr2InnerPreviousWordAction;
      InnerReadOnlyAction = class;
      Arr1InnerReadOnlyAction = array of InnerReadOnlyAction;
      Arr2InnerReadOnlyAction = array of Arr1InnerReadOnlyAction;
      Arr3InnerReadOnlyAction = array of Arr2InnerReadOnlyAction;
      InnerSelectAllAction = class;
      Arr1InnerSelectAllAction = array of InnerSelectAllAction;
      Arr2InnerSelectAllAction = array of Arr1InnerSelectAllAction;
      Arr3InnerSelectAllAction = array of Arr2InnerSelectAllAction;
      InnerSelectLineAction = class;
      Arr1InnerSelectLineAction = array of InnerSelectLineAction;
      Arr2InnerSelectLineAction = array of Arr1InnerSelectLineAction;
      Arr3InnerSelectLineAction = array of Arr2InnerSelectLineAction;
      InnerSelectParagraphAction = class;
      Arr1InnerSelectParagraphAction = array of InnerSelectParagraphAction;
      Arr2InnerSelectParagraphAction = array of Arr1InnerSelectParagraphAction;
      Arr3InnerSelectParagraphAction = array of Arr2InnerSelectParagraphAction;
      InnerSelectWordAction = class;
      Arr1InnerSelectWordAction = array of InnerSelectWordAction;
      Arr2InnerSelectWordAction = array of Arr1InnerSelectWordAction;
      Arr3InnerSelectWordAction = array of Arr2InnerSelectWordAction;
      InnerToggleComponentOrientationAction = class;
      Arr1InnerToggleComponentOrientationAction = array of InnerToggleComponentOrientationAction;
      Arr2InnerToggleComponentOrientationAction = array of Arr1InnerToggleComponentOrientationAction;
      Arr3InnerToggleComponentOrientationAction = array of Arr2InnerToggleComponentOrientationAction;
      InnerUnselectAction = class;
      Arr1InnerUnselectAction = array of InnerUnselectAction;
      Arr2InnerUnselectAction = array of Arr1InnerUnselectAction;
      Arr3InnerUnselectAction = array of Arr2InnerUnselectAction;
      InnerVerticalPageAction = class;
      Arr1InnerVerticalPageAction = array of InnerVerticalPageAction;
      Arr2InnerVerticalPageAction = array of Arr1InnerVerticalPageAction;
      Arr3InnerVerticalPageAction = array of Arr2InnerVerticalPageAction;
      InnerWritableAction = class;
      Arr1InnerWritableAction = array of InnerWritableAction;
      Arr2InnerWritableAction = array of Arr1InnerWritableAction;
      Arr3InnerWritableAction = array of Arr2InnerWritableAction;
      InnerBeginAction = class external 'javax.swing.text' name 'BeginAction' 
      end;

      InnerBeginLineAction = class external 'javax.swing.text' name 'BeginLineAction' 
      end;

      InnerBeginParagraphAction = class external 'javax.swing.text' name 'BeginParagraphAction' 
      end;

      InnerBeginWordAction = class external 'javax.swing.text' name 'BeginWordAction' 
      end;

      InnerDeleteNextCharAction = class external 'javax.swing.text' name 'DeleteNextCharAction' 
      end;

      InnerDeletePrevCharAction = class external 'javax.swing.text' name 'DeletePrevCharAction' 
      end;

      InnerDeleteWordAction = class external 'javax.swing.text' name 'DeleteWordAction' 
      end;

      InnerDumpModelAction = class external 'javax.swing.text' name 'DumpModelAction' 
      end;

      InnerEndAction = class external 'javax.swing.text' name 'EndAction' 
      end;

      InnerEndLineAction = class external 'javax.swing.text' name 'EndLineAction' 
      end;

      InnerEndParagraphAction = class external 'javax.swing.text' name 'EndParagraphAction' 
      end;

      InnerEndWordAction = class external 'javax.swing.text' name 'EndWordAction' 
      end;

      InnerNextVisualPositionAction = class external 'javax.swing.text' name 'NextVisualPositionAction' 
      end;

      InnerNextWordAction = class external 'javax.swing.text' name 'NextWordAction' 
      end;

      InnerPageAction = class external 'javax.swing.text' name 'PageAction' 
      end;

      InnerPreviousWordAction = class external 'javax.swing.text' name 'PreviousWordAction' 
      end;

      InnerReadOnlyAction = class external 'javax.swing.text' name 'ReadOnlyAction' 
      end;

      InnerSelectAllAction = class external 'javax.swing.text' name 'SelectAllAction' 
      end;

      InnerSelectLineAction = class external 'javax.swing.text' name 'SelectLineAction' 
      end;

      InnerSelectParagraphAction = class external 'javax.swing.text' name 'SelectParagraphAction' 
      end;

      InnerSelectWordAction = class external 'javax.swing.text' name 'SelectWordAction' 
      end;

      InnerToggleComponentOrientationAction = class external 'javax.swing.text' name 'ToggleComponentOrientationAction' 
      end;

      InnerUnselectAction = class external 'javax.swing.text' name 'UnselectAction' 
      end;

      InnerVerticalPageAction = class external 'javax.swing.text' name 'VerticalPageAction' 
      end;

      InnerWritableAction = class external 'javax.swing.text' name 'WritableAction' 
      end;

  public
    type
      InnerBeepAction = class;
      Arr1InnerBeepAction = array of InnerBeepAction;
      Arr2InnerBeepAction = array of Arr1InnerBeepAction;
      Arr3InnerBeepAction = array of Arr2InnerBeepAction;
      InnerCopyAction = class;
      Arr1InnerCopyAction = array of InnerCopyAction;
      Arr2InnerCopyAction = array of Arr1InnerCopyAction;
      Arr3InnerCopyAction = array of Arr2InnerCopyAction;
      InnerCutAction = class;
      Arr1InnerCutAction = array of InnerCutAction;
      Arr2InnerCutAction = array of Arr1InnerCutAction;
      Arr3InnerCutAction = array of Arr2InnerCutAction;
      InnerDefaultKeyTypedAction = class;
      Arr1InnerDefaultKeyTypedAction = array of InnerDefaultKeyTypedAction;
      Arr2InnerDefaultKeyTypedAction = array of Arr1InnerDefaultKeyTypedAction;
      Arr3InnerDefaultKeyTypedAction = array of Arr2InnerDefaultKeyTypedAction;
      InnerInsertBreakAction = class;
      Arr1InnerInsertBreakAction = array of InnerInsertBreakAction;
      Arr2InnerInsertBreakAction = array of Arr1InnerInsertBreakAction;
      Arr3InnerInsertBreakAction = array of Arr2InnerInsertBreakAction;
      InnerInsertContentAction = class;
      Arr1InnerInsertContentAction = array of InnerInsertContentAction;
      Arr2InnerInsertContentAction = array of Arr1InnerInsertContentAction;
      Arr3InnerInsertContentAction = array of Arr2InnerInsertContentAction;
      InnerInsertTabAction = class;
      Arr1InnerInsertTabAction = array of InnerInsertTabAction;
      Arr2InnerInsertTabAction = array of Arr1InnerInsertTabAction;
      Arr3InnerInsertTabAction = array of Arr2InnerInsertTabAction;
      InnerPasteAction = class;
      Arr1InnerPasteAction = array of InnerPasteAction;
      Arr2InnerPasteAction = array of Arr1InnerPasteAction;
      Arr3InnerPasteAction = array of Arr2InnerPasteAction;
      InnerBeepAction = class external 'javax.swing.text' name 'BeepAction' (JSTTextAction)
      public
        constructor create(); overload;
        procedure actionPerformed(para1: JAEActionEvent); overload; virtual;
      end;

      InnerCopyAction = class external 'javax.swing.text' name 'CopyAction' (JSTTextAction)
      public
        constructor create(); overload;
        procedure actionPerformed(para1: JAEActionEvent); overload; virtual;
      end;

      InnerCutAction = class external 'javax.swing.text' name 'CutAction' (JSTTextAction)
      public
        constructor create(); overload;
        procedure actionPerformed(para1: JAEActionEvent); overload; virtual;
      end;

      InnerDefaultKeyTypedAction = class external 'javax.swing.text' name 'DefaultKeyTypedAction' (JSTTextAction)
      public
        constructor create(); overload;
        procedure actionPerformed(para1: JAEActionEvent); overload; virtual;
      end;

      InnerInsertBreakAction = class external 'javax.swing.text' name 'InsertBreakAction' (JSTTextAction)
      public
        constructor create(); overload;
        procedure actionPerformed(para1: JAEActionEvent); overload; virtual;
      end;

      InnerInsertContentAction = class external 'javax.swing.text' name 'InsertContentAction' (JSTTextAction)
      public
        constructor create(); overload;
        procedure actionPerformed(para1: JAEActionEvent); overload; virtual;
      end;

      InnerInsertTabAction = class external 'javax.swing.text' name 'InsertTabAction' (JSTTextAction)
      public
        constructor create(); overload;
        procedure actionPerformed(para1: JAEActionEvent); overload; virtual;
      end;

      InnerPasteAction = class external 'javax.swing.text' name 'PasteAction' (JSTTextAction)
      public
        constructor create(); overload;
        procedure actionPerformed(para1: JAEActionEvent); overload; virtual;
      end;

  public
    const
      EndOfLineStringProperty = '__EndOfLine__';
      insertContentAction = 'insert-content';
      insertBreakAction = 'insert-break';
      insertTabAction = 'insert-tab';
      deletePrevCharAction = 'delete-previous';
      deleteNextCharAction = 'delete-next';
      deleteNextWordAction = 'delete-next-word';
      deletePrevWordAction = 'delete-previous-word';
      readOnlyAction = 'set-read-only';
      writableAction = 'set-writable';
      cutAction = 'cut-to-clipboard';
      copyAction = 'copy-to-clipboard';
      pasteAction = 'paste-from-clipboard';
      beepAction = 'beep';
      pageUpAction = 'page-up';
      pageDownAction = 'page-down';
      forwardAction = 'caret-forward';
      backwardAction = 'caret-backward';
      selectionForwardAction = 'selection-forward';
      selectionBackwardAction = 'selection-backward';
      upAction = 'caret-up';
      downAction = 'caret-down';
      selectionUpAction = 'selection-up';
      selectionDownAction = 'selection-down';
      beginWordAction = 'caret-begin-word';
      endWordAction = 'caret-end-word';
      selectionBeginWordAction = 'selection-begin-word';
      selectionEndWordAction = 'selection-end-word';
      previousWordAction = 'caret-previous-word';
      nextWordAction = 'caret-next-word';
      selectionPreviousWordAction = 'selection-previous-word';
      selectionNextWordAction = 'selection-next-word';
      beginLineAction = 'caret-begin-line';
      endLineAction = 'caret-end-line';
      selectionBeginLineAction = 'selection-begin-line';
      selectionEndLineAction = 'selection-end-line';
      beginParagraphAction = 'caret-begin-paragraph';
      endParagraphAction = 'caret-end-paragraph';
      selectionBeginParagraphAction = 'selection-begin-paragraph';
      selectionEndParagraphAction = 'selection-end-paragraph';
      beginAction = 'caret-begin';
      endAction = 'caret-end';
      selectionBeginAction = 'selection-begin';
      selectionEndAction = 'selection-end';
      selectWordAction = 'select-word';
      selectLineAction = 'select-line';
      selectParagraphAction = 'select-paragraph';
      selectAllAction = 'select-all';
      defaultKeyTypedAction = 'default-typed';
  public
    constructor create(); overload;
    function getContentType(): JLString; overload; virtual;
    function getViewFactory(): JSTViewFactory; overload; virtual;
    function getActions(): Arr1JSAction; overload; virtual;
    function createCaret(): JSTCaret; overload; virtual;
    function createDefaultDocument(): JSTDocument; overload; virtual;
    procedure read(para1: JIInputStream; para2: JSTDocument; para3: jint); overload; virtual;  // throws java.io.IOException, javax.swing.text.BadLocationException
    procedure write(para1: JIOutputStream; para2: JSTDocument; para3: jint; para4: jint); overload; virtual;  // throws java.io.IOException, javax.swing.text.BadLocationException
    procedure read(para1: JIReader; para2: JSTDocument; para3: jint); overload; virtual;  // throws java.io.IOException, javax.swing.text.BadLocationException
    procedure write(para1: JIWriter; para2: JSTDocument; para3: jint; para4: jint); overload; virtual;  // throws java.io.IOException, javax.swing.text.BadLocationException
  end;

  JBBBeanContextServicesSupport = class external 'java.beans.beancontext' name 'BeanContextServicesSupport' (JBBBeanContextSupport, JBBBeanContextServices)
  public
    type
      InnerBCSSChild = class;
      Arr1InnerBCSSChild = array of InnerBCSSChild;
      Arr2InnerBCSSChild = array of Arr1InnerBCSSChild;
      Arr3InnerBCSSChild = array of Arr2InnerBCSSChild;
      InnerBCSSProxyServiceProvider = class;
      Arr1InnerBCSSProxyServiceProvider = array of InnerBCSSProxyServiceProvider;
      Arr2InnerBCSSProxyServiceProvider = array of Arr1InnerBCSSProxyServiceProvider;
      Arr3InnerBCSSProxyServiceProvider = array of Arr2InnerBCSSProxyServiceProvider;
      InnerBCSSServiceProvider = class;
      Arr1InnerBCSSServiceProvider = array of InnerBCSSServiceProvider;
      Arr2InnerBCSSServiceProvider = array of Arr1InnerBCSSServiceProvider;
      Arr3InnerBCSSServiceProvider = array of Arr2InnerBCSSServiceProvider;
      InnerBCSSChild = class external 'java.beans.beancontext' name 'BCSSChild' 
      public
        type
          InnerBCSSCServiceClassRef = class;
          Arr1InnerBCSSCServiceClassRef = array of InnerBCSSCServiceClassRef;
          Arr2InnerBCSSCServiceClassRef = array of Arr1InnerBCSSCServiceClassRef;
          Arr3InnerBCSSCServiceClassRef = array of Arr2InnerBCSSCServiceClassRef;
          InnerBCSSCServiceRef = class;
          Arr1InnerBCSSCServiceRef = array of InnerBCSSCServiceRef;
          Arr2InnerBCSSCServiceRef = array of Arr1InnerBCSSCServiceRef;
          Arr3InnerBCSSCServiceRef = array of Arr2InnerBCSSCServiceRef;
          InnerBCSSCServiceClassRef = class external 'java.beans.beancontext' name 'BCSSCServiceClassRef' 
          end;

          InnerBCSSCServiceRef = class external 'java.beans.beancontext' name 'BCSSCServiceRef' 
          end;

      end;

      InnerBCSSProxyServiceProvider = class external 'java.beans.beancontext' name 'BCSSProxyServiceProvider' 
      end;

      InnerBCSSServiceProvider = class external 'java.beans.beancontext' name 'BCSSServiceProvider' (JLObject, JISerializable)
      strict protected
        var
          fserviceProvider: JBBBeanContextServiceProvider; external name 'serviceProvider';
      strict protected
        function getServiceProvider(): JBBBeanContextServiceProvider; overload; virtual;
      end;

  strict protected
    var
      fservices: JUHashMap; external name 'services';
      fserializable: jint; external name 'serializable';
      fproxy: JBBBeanContextServicesSupport.InnerBCSSProxyServiceProvider; external name 'proxy';
      fbcsListeners: JUArrayList; external name 'bcsListeners';
  public
    constructor create(para1: JBBBeanContextServices; para2: JULocale; para3: jboolean; para4: jboolean); overload;
    constructor create(para1: JBBBeanContextServices; para2: JULocale; para3: jboolean); overload;
    constructor create(para1: JBBBeanContextServices; para2: JULocale); overload;
    constructor create(para1: JBBBeanContextServices); overload;
    constructor create(); overload;
    procedure initialize(); overload; virtual;
    function getBeanContextServicesPeer(): JBBBeanContextServices; overload; virtual;
  strict protected
    function createBCSChild(para1: JLObject; para2: JLObject): JBBBeanContextSupport.InnerBCSChild; overload; virtual;
    function createBCSSServiceProvider(para1: JLClass; para2: JBBBeanContextServiceProvider): JBBBeanContextServicesSupport.InnerBCSSServiceProvider; overload; virtual;
  public
    procedure addBeanContextServicesListener(para1: JBBBeanContextServicesListener); overload; virtual;
    procedure removeBeanContextServicesListener(para1: JBBBeanContextServicesListener); overload; virtual;
    function addService(para1: JLClass; para2: JBBBeanContextServiceProvider): jboolean; overload; virtual;
  strict protected
    function addService(para1: JLClass; para2: JBBBeanContextServiceProvider; para3: jboolean): jboolean; overload; virtual;
  public
    procedure revokeService(para1: JLClass; para2: JBBBeanContextServiceProvider; para3: jboolean); overload; virtual;
    function hasService(para1: JLClass): jboolean; overload; virtual;
    function getService(para1: JBBBeanContextChild; para2: JLObject; para3: JLClass; para4: JLObject; para5: JBBBeanContextServiceRevokedListener): JLObject; overload; virtual;  // throws java.util.TooManyListenersException
    procedure releaseService(para1: JBBBeanContextChild; para2: JLObject; para3: JLObject); overload; virtual;
    function getCurrentServiceClasses(): JUIterator; overload; virtual;
    function getCurrentServiceSelectors(para1: JLClass): JUIterator; overload; virtual;
    procedure serviceAvailable(para1: JBBBeanContextServiceAvailableEvent); overload; virtual;
    procedure serviceRevoked(para1: JBBBeanContextServiceRevokedEvent); overload; virtual;
  strict protected
    class function getChildBeanContextServicesListener(para1: JLObject): JBBBeanContextServicesListener; static; overload; final;
    procedure childJustRemovedHook(para1: JLObject; para2: JBBBeanContextSupport.InnerBCSChild); overload; virtual;
    procedure releaseBeanContextResources(); overload; virtual;
    procedure initializeBeanContextResources(); overload; virtual;
    procedure fireServiceAdded(para1: JLClass); overload; virtual; final;
    procedure fireServiceAdded(para1: JBBBeanContextServiceAvailableEvent); overload; virtual; final;
    procedure fireServiceRevoked(para1: JBBBeanContextServiceRevokedEvent); overload; virtual; final;
    procedure fireServiceRevoked(para1: JLClass; para2: jboolean); overload; virtual; final;
    procedure bcsPreSerializationHook(para1: JIObjectOutputStream); overload; virtual;  // throws java.io.IOException
    procedure bcsPreDeserializationHook(para1: JIObjectInputStream); overload; virtual;  // throws java.io.IOException, java.lang.ClassNotFoundException
  end;

  JSTHCommentView = class external 'javax.swing.text.html' name 'CommentView' (JSTHHiddenTagView)
  public
    type
      InnerCommentBorder = class;
      Arr1InnerCommentBorder = array of InnerCommentBorder;
      Arr2InnerCommentBorder = array of Arr1InnerCommentBorder;
      Arr3InnerCommentBorder = array of Arr2InnerCommentBorder;
      InnerCommentBorder = class external 'javax.swing.text.html' name 'CommentBorder' 
      end;

  strict protected
    function createComponent(): JAComponent; overload; virtual;
  end;

  JSTParagraphView = class external 'javax.swing.text' name 'ParagraphView' (JSTFlowView, JSTTabExpander)
  public
    type
      InnerRow = class;
      Arr1InnerRow = array of InnerRow;
      Arr2InnerRow = array of Arr1InnerRow;
      Arr3InnerRow = array of Arr2InnerRow;
      InnerRow = class external 'javax.swing.text' name 'Row' 
      end;

  strict protected
    var
      ffirstLineIndent: jint; external name 'firstLineIndent';
  public
    constructor create(para1: JSTElement); overload;
  strict protected
    procedure setJustification(para1: jint); overload; virtual;
    procedure setLineSpacing(para1: jfloat); overload; virtual;
    procedure setFirstLineIndent(para1: jfloat); overload; virtual;
    procedure setPropertiesFromAttributes(); overload; virtual;
    function getLayoutViewCount(): jint; overload; virtual;
    function getLayoutView(para1: jint): JSTView; overload; virtual;
    procedure adjustRow(para1: JSTParagraphView.InnerRow; para2: jint; para3: jint); overload; virtual;
    function getNextNorthSouthVisualPositionFrom(para1: jint; para2: JSTPosition.InnerBias; para3: JAShape; para4: jint; para5: JSTPosition.Arr1InnerBias): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
    function getNextNorthSouthVisualPositionFrom(para1: jint; para2: JSTPosition.InnerBias; para3: JAShape; para4: jint; var para5: array of JSTPosition.InnerBias): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
    function getClosestPositionTo(para1: jint; para2: JSTPosition.InnerBias; para3: JAShape; para4: jint; para5: JSTPosition.Arr1InnerBias; para6: jint; para7: jint): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
    function getClosestPositionTo(para1: jint; para2: JSTPosition.InnerBias; para3: JAShape; para4: jint; var para5: array of JSTPosition.InnerBias; para6: jint; para7: jint): jint; overload; virtual;  // throws javax.swing.text.BadLocationException
    function flipEastAndWestAtEnds(para1: jint; para2: JSTPosition.InnerBias): jboolean; overload; virtual;
  public
    function getFlowSpan(para1: jint): jint; overload; virtual;
    function getFlowStart(para1: jint): jint; overload; virtual;
  strict protected
    function createRow(): JSTView; overload; virtual;
  public
    function nextTabStop(para1: jfloat; para2: jint): jfloat; overload; virtual;
  strict protected
    function getTabSet(): JSTTabSet; overload; virtual;
    function getPartialSize(para1: jint; para2: jint): jfloat; overload; virtual;
    function findOffsetToCharactersInString(para1: Arr1jchar; para2: jint): jint; overload; virtual;
    function findOffsetToCharactersInString(var para1: array of jchar; para2: jint): jint; overload; virtual;
    function getTabBase(): jfloat; overload; virtual;
  public
    procedure paint(para1: JAGraphics; para2: JAShape); overload; virtual;
    function getAlignment(para1: jint): jfloat; overload; virtual;
    function breakView(para1: jint; para2: jfloat; para3: JAShape): JSTView; overload; virtual;
    function getBreakWeight(para1: jint; para2: jfloat): jint; overload; virtual;
    procedure changedUpdate(para1: JSEDocumentEvent; para2: JAShape; para3: JSTViewFactory); overload; virtual;
  end;

  JSTTextLayoutStrategy = class external 'javax.swing.text' name 'TextLayoutStrategy' (JSTFlowView.InnerFlowStrategy)
  public
    type
      InnerAttributedSegment = class;
      Arr1InnerAttributedSegment = array of InnerAttributedSegment;
      Arr2InnerAttributedSegment = array of Arr1InnerAttributedSegment;
      Arr3InnerAttributedSegment = array of Arr2InnerAttributedSegment;
      InnerAttributedSegment = class external 'javax.swing.text' name 'AttributedSegment' 
      end;

  public
    constructor create(); overload;
    procedure insertUpdate(para1: JSTFlowView; para2: JSEDocumentEvent; para3: JARectangle); overload; virtual;
    procedure removeUpdate(para1: JSTFlowView; para2: JSEDocumentEvent; para3: JARectangle); overload; virtual;
    procedure changedUpdate(para1: JSTFlowView; para2: JSEDocumentEvent; para3: JARectangle); overload; virtual;
    procedure layout(para1: JSTFlowView); overload; virtual;
  strict protected
    function layoutRow(para1: JSTFlowView; para2: jint; para3: jint): jint; overload; virtual;
    procedure adjustRow(para1: JSTFlowView; para2: jint; para3: jint; para4: jint); overload; virtual;
    function createView(para1: JSTFlowView; para2: jint; para3: jint; para4: jint): JSTView; overload; virtual;
  end;

  JSTHListView = class external 'javax.swing.text.html' name 'ListView' (JSTHBlockView)
  public
    constructor create(para1: JSTElement); overload;
    function getAlignment(para1: jint): jfloat; overload; virtual;
    procedure paint(para1: JAGraphics; para2: JAShape); overload; virtual;
  strict protected
    procedure paintChild(para1: JAGraphics; para2: JARectangle; para3: jint); overload; virtual;
    procedure setPropertiesFromAttributes(); overload; virtual;
  end;

  JSTHNoFramesView = class external 'javax.swing.text.html' name 'NoFramesView' (JSTHBlockView)
  public
    constructor create(para1: JSTElement; para2: jint); overload;
    procedure paint(para1: JAGraphics; para2: JAShape); overload; virtual;
    procedure setParent(para1: JSTView); overload; virtual;
    function isVisible(): jboolean; overload; virtual;
  strict protected
    procedure layout(para1: jint; para2: jint); overload; virtual;
  public
    function getPreferredSpan(para1: jint): jfloat; overload; virtual;
    function getMinimumSpan(para1: jint): jfloat; overload; virtual;
    function getMaximumSpan(para1: jint): jfloat; overload; virtual;
  end;

  JSTHBRView = class external 'javax.swing.text.html' name 'BRView' (JSTHInlineView)
  public
    constructor create(para1: JSTElement); overload;
    function getBreakWeight(para1: jint; para2: jfloat; para3: jfloat): jint; overload; virtual;
  end;

  JSEMenuKeyEvent = class external 'javax.swing.event' name 'MenuKeyEvent' (JAEKeyEvent)
  public
    constructor create(para1: JAComponent; para2: jint; para3: jlong; para4: jint; para5: jint; para6: jchar; para7: Arr1JSMenuElement; para8: JSMenuSelectionManager); overload;
    constructor create(para1: JAComponent; para2: jint; para3: jlong; para4: jint; para5: jint; para6: jchar; const para7: array of JSMenuElement; para8: JSMenuSelectionManager); overload;
    function getPath(): Arr1JSMenuElement; overload; virtual;
    function getMenuSelectionManager(): JSMenuSelectionManager; overload; virtual;
  end;

  JAEMouseWheelEvent = class external 'java.awt.event' name 'MouseWheelEvent' (JAEMouseEvent)
  public
    const
      WHEEL_UNIT_SCROLL = 0;
      WHEEL_BLOCK_SCROLL = 1;
  public
    constructor create(para1: JAComponent; para2: jint; para3: jlong; para4: jint; para5: jint; para6: jint; para7: jint; para8: jboolean; para9: jint; para10: jint; para11: jint); overload;
    constructor create(para1: JAComponent; para2: jint; para3: jlong; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: jint; para10: jboolean; para11: jint; para12: jint; para13: jint); overload;
    function getScrollType(): jint; overload; virtual;
    function getScrollAmount(): jint; overload; virtual;
    function getWheelRotation(): jint; overload; virtual;
    function getUnitsToScroll(): jint; overload; virtual;
    function paramString(): JLString; overload; virtual;
  end;

  JSEMenuDragMouseEvent = class external 'javax.swing.event' name 'MenuDragMouseEvent' (JAEMouseEvent)
  public
    constructor create(para1: JAComponent; para2: jint; para3: jlong; para4: jint; para5: jint; para6: jint; para7: jint; para8: jboolean; para9: Arr1JSMenuElement; para10: JSMenuSelectionManager); overload;
    constructor create(para1: JAComponent; para2: jint; para3: jlong; para4: jint; para5: jint; para6: jint; para7: jint; para8: jboolean; const para9: array of JSMenuElement; para10: JSMenuSelectionManager); overload;
    constructor create(para1: JAComponent; para2: jint; para3: jlong; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: jint; para10: jboolean; para11: Arr1JSMenuElement; para12: JSMenuSelectionManager); overload;
    constructor create(para1: JAComponent; para2: jint; para3: jlong; para4: jint; para5: jint; para6: jint; para7: jint; para8: jint; para9: jint; para10: jboolean; const para11: array of JSMenuElement; para12: JSMenuSelectionManager); overload;
    function getPath(): Arr1JSMenuElement; overload; virtual;
    function getMenuSelectionManager(): JSMenuSelectionManager; overload; virtual;
  end;

  JAPFileDialogPeer = interface external 'java.awt.peer' name 'FileDialogPeer' (JAPDialogPeer)
    procedure setFile(para1: JLString); overload;
    procedure setDirectory(para1: JLString); overload;
    procedure setFilenameFilter(para1: JIFilenameFilter); overload;
  end;

  JSPBBasicEditorPaneUI = class external 'javax.swing.plaf.basic' name 'BasicEditorPaneUI' (JSPBBasicTextUI)
  public
    type
      InnerStyleSheetUIResource = class;
      Arr1InnerStyleSheetUIResource = array of InnerStyleSheetUIResource;
      Arr2InnerStyleSheetUIResource = array of Arr1InnerStyleSheetUIResource;
      Arr3InnerStyleSheetUIResource = array of Arr2InnerStyleSheetUIResource;
      InnerStyleSheetUIResource = class external 'javax.swing.plaf.basic' name 'StyleSheetUIResource' 
      end;

  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    constructor create(); overload;
  strict protected
    function getPropertyPrefix(): JLString; overload; virtual;
  public
    procedure installUI(para1: JSJComponent); overload; virtual;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
    function getEditorKit(para1: JSTJTextComponent): JSTEditorKit; overload; virtual;
  strict protected
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  end;

  JSPBBasicTextAreaUI = class external 'javax.swing.plaf.basic' name 'BasicTextAreaUI' (JSPBBasicTextUI)
  public
    type
      InnerPlainParagraph = class;
      Arr1InnerPlainParagraph = array of InnerPlainParagraph;
      Arr2InnerPlainParagraph = array of Arr1InnerPlainParagraph;
      Arr3InnerPlainParagraph = array of Arr2InnerPlainParagraph;
      InnerPlainParagraph = class external 'javax.swing.plaf.basic' name 'PlainParagraph' 
      public
        type
          InnerLogicalView = class;
          Arr1InnerLogicalView = array of InnerLogicalView;
          Arr2InnerLogicalView = array of Arr1InnerLogicalView;
          Arr3InnerLogicalView = array of Arr2InnerLogicalView;
          InnerLogicalView = class external 'javax.swing.plaf.basic' name 'LogicalView' 
          end;

      end;

  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    constructor create(); overload;
  strict protected
    function getPropertyPrefix(): JLString; overload; virtual;
    procedure installDefaults(); overload; virtual;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  public
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function create_(para1: JSTElement): JSTView; external name 'create'; overload; virtual;
    function getBaseline(para1: JSJComponent; para2: jint; para3: jint): jint; overload; virtual;
    function getBaselineResizeBehavior(para1: JSJComponent): JAComponent.InnerBaselineResizeBehavior; overload; virtual;
  end;

  JSPBBasicTextFieldUI = class external 'javax.swing.plaf.basic' name 'BasicTextFieldUI' (JSPBBasicTextUI)
  public
    type
      InnerI18nFieldView = class;
      Arr1InnerI18nFieldView = array of InnerI18nFieldView;
      Arr2InnerI18nFieldView = array of Arr1InnerI18nFieldView;
      Arr3InnerI18nFieldView = array of Arr2InnerI18nFieldView;
      InnerI18nFieldView = class external 'javax.swing.plaf.basic' name 'I18nFieldView' 
      end;

  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    constructor create(); overload;
  strict protected
    function getPropertyPrefix(): JLString; overload; virtual;
  public
    function create_(para1: JSTElement): JSTView; external name 'create'; overload; virtual;
    function getBaseline(para1: JSJComponent; para2: jint; para3: jint): jint; overload; virtual;
    function getBaselineResizeBehavior(para1: JSJComponent): JAComponent.InnerBaselineResizeBehavior; overload; virtual;
  end;

  JSTDefaultTextUI = class abstract external 'javax.swing.text' name 'DefaultTextUI' (JSPBBasicTextUI)
  public
    constructor create(); overload;
  end;

  JSPBBasicArrowButton = class external 'javax.swing.plaf.basic' name 'BasicArrowButton' (JSJButton, JSSwingConstants)
  strict protected
    var
      fdirection: jint; external name 'direction';
  public
    constructor create(para1: jint; para2: JAColor; para3: JAColor; para4: JAColor; para5: JAColor); overload;
    constructor create(para1: jint); overload;
    function getDirection(): jint; overload; virtual;
    procedure setDirection(para1: jint); overload; virtual;
    procedure paint(para1: JAGraphics); overload; virtual;
    function getPreferredSize(): JADimension; overload; virtual;
    function getMinimumSize(): JADimension; overload; virtual;
    function getMaximumSize(): JADimension; overload; virtual;
    function isFocusTraversable(): jboolean; overload; virtual;
    procedure paintTriangle(para1: JAGraphics; para2: jint; para3: jint; para4: jint; para5: jint; para6: jboolean); overload; virtual;
  end;

  JSPMMetalComboBoxButton = class external 'javax.swing.plaf.metal' name 'MetalComboBoxButton' (JSJButton)
  strict protected
    var
      fcomboBox: JSJComboBox; external name 'comboBox';
      flistBox: JSJList; external name 'listBox';
      frendererPane: JSCellRendererPane; external name 'rendererPane';
      fcomboIcon: JSIcon; external name 'comboIcon';
      ficonOnly: jboolean; external name 'iconOnly';
  public
    function getComboBox(): JSJComboBox; overload; virtual; final;
    procedure setComboBox(para1: JSJComboBox); overload; virtual; final;
    function getComboIcon(): JSIcon; overload; virtual; final;
    procedure setComboIcon(para1: JSIcon); overload; virtual; final;
    function isIconOnly(): jboolean; overload; virtual; final;
    procedure setIconOnly(para1: jboolean); overload; virtual; final;
    constructor create(para1: JSJComboBox; para2: JSIcon; para3: JSCellRendererPane; para4: JSJList); overload;
    constructor create(para1: JSJComboBox; para2: JSIcon; para3: jboolean; para4: JSCellRendererPane; para5: JSJList); overload;
    function isFocusTraversable(): jboolean; overload; virtual;
    procedure setEnabled(para1: jboolean); overload; virtual;
    procedure paintComponent(para1: JAGraphics); overload; virtual;
    function getMinimumSize(): JADimension; overload; virtual;
  end;

  JSPSSynthArrowButton = class external 'javax.swing.plaf.synth' name 'SynthArrowButton' (JSJButton, JSSwingConstants, JSPUIResource)
  public
    type
      InnerSynthArrowButtonUI = class;
      Arr1InnerSynthArrowButtonUI = array of InnerSynthArrowButtonUI;
      Arr2InnerSynthArrowButtonUI = array of Arr1InnerSynthArrowButtonUI;
      Arr3InnerSynthArrowButtonUI = array of Arr2InnerSynthArrowButtonUI;
      InnerSynthArrowButtonUI = class external 'javax.swing.plaf.synth' name 'SynthArrowButtonUI' 
      end;

  public
    constructor create(para1: jint); overload;
    function getUIClassID(): JLString; overload; virtual;
    procedure updateUI(); overload; virtual;
    procedure setDirection(para1: jint); overload; virtual;
    function getDirection(): jint; overload; virtual;
    procedure setFocusable(para1: jboolean); overload; virtual;
  end;

  JSJCheckBoxMenuItem = class external 'javax.swing' name 'JCheckBoxMenuItem' (JSJMenuItem, JSSwingConstants, JAAccessible)
  public
    type
      InnerAccessibleJCheckBoxMenuItem = class;
      Arr1InnerAccessibleJCheckBoxMenuItem = array of InnerAccessibleJCheckBoxMenuItem;
      Arr2InnerAccessibleJCheckBoxMenuItem = array of Arr1InnerAccessibleJCheckBoxMenuItem;
      Arr3InnerAccessibleJCheckBoxMenuItem = array of Arr2InnerAccessibleJCheckBoxMenuItem;
      InnerAccessibleJCheckBoxMenuItem = class external 'javax.swing' name 'AccessibleJCheckBoxMenuItem' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: JSIcon); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JSAction); overload;
    constructor create(para1: JLString; para2: JSIcon); overload;
    constructor create(para1: JLString; para2: jboolean); overload;
    constructor create(para1: JLString; para2: JSIcon; para3: jboolean); overload;
    function getUIClassID(): JLString; overload; virtual;
    function getState(): jboolean; overload; virtual;
    procedure setState(para1: jboolean); overload; virtual;
    function getSelectedObjects(): Arr1JLObject; overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJMenu = class external 'javax.swing' name 'JMenu' (JSJMenuItem, JAAccessible, JSMenuElement)
  public
    type
      InnerMenuChangeListener = class;
      Arr1InnerMenuChangeListener = array of InnerMenuChangeListener;
      Arr2InnerMenuChangeListener = array of Arr1InnerMenuChangeListener;
      Arr3InnerMenuChangeListener = array of Arr2InnerMenuChangeListener;
      InnerMenuChangeListener = class external 'javax.swing' name 'MenuChangeListener' 
      end;

  public
    type
      InnerAccessibleJMenu = class;
      Arr1InnerAccessibleJMenu = array of InnerAccessibleJMenu;
      Arr2InnerAccessibleJMenu = array of Arr1InnerAccessibleJMenu;
      Arr3InnerAccessibleJMenu = array of Arr2InnerAccessibleJMenu;
      InnerWinListener = class;
      Arr1InnerWinListener = array of InnerWinListener;
      Arr2InnerWinListener = array of Arr1InnerWinListener;
      Arr3InnerWinListener = array of Arr2InnerWinListener;
      InnerAccessibleJMenu = class external 'javax.swing' name 'AccessibleJMenu' 
      end;

      InnerWinListener = class external 'javax.swing' name 'WinListener' 
      end;

  strict protected
    var
      fpopupListener: JSJMenu.InnerWinListener; external name 'popupListener';
  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JSAction); overload;
    constructor create(para1: JLString; para2: jboolean); overload;
    procedure updateUI(); overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
    procedure setModel(para1: JSButtonModel); overload; virtual;
    function isSelected(): jboolean; overload; virtual;
    procedure setSelected(para1: jboolean); overload; virtual;
    function isPopupMenuVisible(): jboolean; overload; virtual;
    procedure setPopupMenuVisible(para1: jboolean); overload; virtual;
  strict protected
    function getPopupMenuOrigin(): JAPoint; overload; virtual;
  public
    function getDelay(): jint; overload; virtual;
    procedure setDelay(para1: jint); overload; virtual;
    procedure setMenuLocation(para1: jint; para2: jint); overload; virtual;
    function add(para1: JSJMenuItem): JSJMenuItem; overload; virtual;
    function add(para1: JAComponent): JAComponent; overload; virtual;
    function add(para1: JAComponent; para2: jint): JAComponent; overload; virtual;
    function add(para1: JLString): JSJMenuItem; overload; virtual;
    function add(para1: JSAction): JSJMenuItem; overload; virtual;
  strict protected
    function createActionComponent(para1: JSAction): JSJMenuItem; overload; virtual;
    function createActionChangeListener(para1: JSJMenuItem): JBPropertyChangeListener; overload; virtual;
  public
    procedure addSeparator(); overload; virtual;
    procedure insert(para1: JLString; para2: jint); overload; virtual;
    function insert(para1: JSJMenuItem; para2: jint): JSJMenuItem; overload; virtual;
    function insert(para1: JSAction; para2: jint): JSJMenuItem; overload; virtual;
    procedure insertSeparator(para1: jint); overload; virtual;
    function getItem(para1: jint): JSJMenuItem; overload; virtual;
    function getItemCount(): jint; overload; virtual;
    function isTearOff(): jboolean; overload; virtual;
    procedure remove(para1: JSJMenuItem); overload; virtual;
    procedure remove(para1: jint); overload; virtual;
    procedure remove(para1: JAComponent); overload; virtual;
    procedure removeAll(); overload; virtual;
    function getMenuComponentCount(): jint; overload; virtual;
    function getMenuComponent(para1: jint): JAComponent; overload; virtual;
    function getMenuComponents(): Arr1JAComponent; overload; virtual;
    function isTopLevelMenu(): jboolean; overload; virtual;
    function isMenuComponent(para1: JAComponent): jboolean; overload; virtual;
    function getPopupMenu(): JSJPopupMenu; overload; virtual;
    procedure addMenuListener(para1: JSEMenuListener); overload; virtual;
    procedure removeMenuListener(para1: JSEMenuListener); overload; virtual;
    function getMenuListeners(): Arr1JSEMenuListener; overload; virtual;
  strict protected
    procedure fireMenuSelected(); overload; virtual;
    procedure fireMenuDeselected(); overload; virtual;
    procedure fireMenuCanceled(); overload; virtual;
    function createWinListener(para1: JSJPopupMenu): JSJMenu.InnerWinListener; overload; virtual;
  public
    procedure menuSelectionChanged(para1: jboolean); overload; virtual;
    function getSubElements(): Arr1JSMenuElement; overload; virtual;
    function getComponent(): JAComponent; overload; virtual;
    procedure applyComponentOrientation(para1: JAComponentOrientation); overload; virtual;
    procedure setComponentOrientation(para1: JAComponentOrientation); overload; virtual;
    procedure setAccelerator(para1: JSKeyStroke); overload; virtual;
  strict protected
    procedure processKeyEvent(para1: JAEKeyEvent); overload; virtual;
  public
    procedure doClick(para1: jint); overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJRadioButtonMenuItem = class external 'javax.swing' name 'JRadioButtonMenuItem' (JSJMenuItem, JAAccessible)
  public
    type
      InnerAccessibleJRadioButtonMenuItem = class;
      Arr1InnerAccessibleJRadioButtonMenuItem = array of InnerAccessibleJRadioButtonMenuItem;
      Arr2InnerAccessibleJRadioButtonMenuItem = array of Arr1InnerAccessibleJRadioButtonMenuItem;
      Arr3InnerAccessibleJRadioButtonMenuItem = array of Arr2InnerAccessibleJRadioButtonMenuItem;
      InnerAccessibleJRadioButtonMenuItem = class external 'javax.swing' name 'AccessibleJRadioButtonMenuItem' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: JSIcon); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JSAction); overload;
    constructor create(para1: JLString; para2: JSIcon); overload;
    constructor create(para1: JLString; para2: jboolean); overload;
    constructor create(para1: JSIcon; para2: jboolean); overload;
    constructor create(para1: JLString; para2: JSIcon; para3: jboolean); overload;
    function getUIClassID(): JLString; overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJCheckBox = class external 'javax.swing' name 'JCheckBox' (JSJToggleButton, JAAccessible)
  public
    type
      InnerAccessibleJCheckBox = class;
      Arr1InnerAccessibleJCheckBox = array of InnerAccessibleJCheckBox;
      Arr2InnerAccessibleJCheckBox = array of Arr1InnerAccessibleJCheckBox;
      Arr3InnerAccessibleJCheckBox = array of Arr2InnerAccessibleJCheckBox;
      InnerAccessibleJCheckBox = class external 'javax.swing' name 'AccessibleJCheckBox' 
      end;

  public
    const
      BORDER_PAINTED_FLAT_CHANGED_PROPERTY = 'borderPaintedFlat';
  public
    constructor create(); overload;
    constructor create(para1: JSIcon); overload;
    constructor create(para1: JSIcon; para2: jboolean); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JSAction); overload;
    constructor create(para1: JLString; para2: jboolean); overload;
    constructor create(para1: JLString; para2: JSIcon); overload;
    constructor create(para1: JLString; para2: JSIcon; para3: jboolean); overload;
    procedure setBorderPaintedFlat(para1: jboolean); overload; virtual;
    function isBorderPaintedFlat(): jboolean; overload; virtual;
    procedure updateUI(); overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSJRadioButton = class external 'javax.swing' name 'JRadioButton' (JSJToggleButton, JAAccessible)
  public
    type
      InnerAccessibleJRadioButton = class;
      Arr1InnerAccessibleJRadioButton = array of InnerAccessibleJRadioButton;
      Arr2InnerAccessibleJRadioButton = array of Arr1InnerAccessibleJRadioButton;
      Arr3InnerAccessibleJRadioButton = array of Arr2InnerAccessibleJRadioButton;
      InnerAccessibleJRadioButton = class external 'javax.swing' name 'AccessibleJRadioButton' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: JSIcon); overload;
    constructor create(para1: JSAction); overload;
    constructor create(para1: JSIcon; para2: jboolean); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: JLString; para2: jboolean); overload;
    constructor create(para1: JLString; para2: JSIcon); overload;
    constructor create(para1: JLString; para2: JSIcon; para3: jboolean); overload;
    procedure updateUI(); overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSPMMetalDesktopIconUI = class external 'javax.swing.plaf.metal' name 'MetalDesktopIconUI' (JSPBBasicDesktopIconUI)
  public
    type
      InnerTitleListener = class;
      Arr1InnerTitleListener = array of InnerTitleListener;
      Arr2InnerTitleListener = array of Arr1InnerTitleListener;
      Arr3InnerTitleListener = array of Arr2InnerTitleListener;
      InnerTitleListener = class external 'javax.swing.plaf.metal' name 'TitleListener' 
      end;

  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    constructor create(); overload;
  strict protected
    procedure installDefaults(); overload; virtual;
    procedure installComponents(); overload; virtual;
    procedure uninstallComponents(); overload; virtual;
    procedure installListeners(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
  public
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMinimumSize(para1: JSJComponent): JADimension; overload; virtual;
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
  end;

  JSPSSynthDesktopIconUI = class external 'javax.swing.plaf.synth' name 'SynthDesktopIconUI' (JSPBBasicDesktopIconUI, SSPSSynthUI, JAEActionListener, JBPropertyChangeListener)
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    procedure installComponents(); overload; virtual;
    procedure installListeners(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
    procedure installDefaults(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
  public
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paint(para1: JSPSSynthContext; para2: JAGraphics); overload; virtual;
  public
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure actionPerformed(para1: JAEActionEvent); overload; virtual;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  end;

  JSCDefaultHSBChooserPanel = class external 'javax.swing.colorchooser' name 'DefaultHSBChooserPanel' (JSCAbstractColorChooserPanel, JSEChangeListener, JAEHierarchyListener)
  public
    type
      InnerHSBImage = class;
      Arr1InnerHSBImage = array of InnerHSBImage;
      Arr2InnerHSBImage = array of Arr1InnerHSBImage;
      Arr3InnerHSBImage = array of Arr2InnerHSBImage;
      InnerRadioButtonHandler = class;
      Arr1InnerRadioButtonHandler = array of InnerRadioButtonHandler;
      Arr2InnerRadioButtonHandler = array of Arr1InnerRadioButtonHandler;
      Arr3InnerRadioButtonHandler = array of Arr2InnerRadioButtonHandler;
      InnerHSBImage = class external 'javax.swing.colorchooser' name 'HSBImage' 
      end;

      InnerRadioButtonHandler = class external 'javax.swing.colorchooser' name 'RadioButtonHandler' 
      end;

  public
    constructor create(); overload;
    procedure updateChooser(); overload; virtual;
    procedure installChooserPanel(para1: JSJColorChooser); overload; virtual;
    procedure uninstallChooserPanel(para1: JSJColorChooser); overload; virtual;
  strict protected
    procedure buildChooser(); overload; virtual;
    function buildSliderPalettePanel(): JSJComponent; overload; virtual;
    function createPaletteLabel(): JSJLabel; overload; virtual;
  public
    function getDisplayName(): JLString; overload; virtual;
    function getMnemonic(): jint; overload; virtual;
    function getDisplayedMnemonicIndex(): jint; overload; virtual;
    function getSmallDisplayIcon(): JSIcon; overload; virtual;
    function getLargeDisplayIcon(): JSIcon; overload; virtual;
    procedure stateChanged(para1: JSEChangeEvent); overload; virtual;
    procedure hierarchyChanged(para1: JAEHierarchyEvent); overload; virtual;
  end;

  JSCDefaultRGBChooserPanel = class external 'javax.swing.colorchooser' name 'DefaultRGBChooserPanel' (JSCAbstractColorChooserPanel, JSEChangeListener)
  strict protected
    var
      fredSlider: JSJSlider; external name 'redSlider';
      fgreenSlider: JSJSlider; external name 'greenSlider';
      fblueSlider: JSJSlider; external name 'blueSlider';
      fredField: JSJSpinner; external name 'redField';
      fblueField: JSJSpinner; external name 'blueField';
      fgreenField: JSJSpinner; external name 'greenField';
  public
    constructor create(); overload;
    function getDisplayName(): JLString; overload; virtual;
    function getMnemonic(): jint; overload; virtual;
    function getDisplayedMnemonicIndex(): jint; overload; virtual;
    function getSmallDisplayIcon(): JSIcon; overload; virtual;
    function getLargeDisplayIcon(): JSIcon; overload; virtual;
    procedure installChooserPanel(para1: JSJColorChooser); overload; virtual;
  strict protected
    procedure buildChooser(); overload; virtual;
  public
    procedure uninstallChooserPanel(para1: JSJColorChooser); overload; virtual;
    procedure updateChooser(); overload; virtual;
    procedure stateChanged(para1: JSEChangeEvent); overload; virtual;
  end;

  JSCDefaultSwatchChooserPanel = class external 'javax.swing.colorchooser' name 'DefaultSwatchChooserPanel' (JSCAbstractColorChooserPanel)
  public
    type
      InnerMainSwatchListener = class;
      Arr1InnerMainSwatchListener = array of InnerMainSwatchListener;
      Arr2InnerMainSwatchListener = array of Arr1InnerMainSwatchListener;
      Arr3InnerMainSwatchListener = array of Arr2InnerMainSwatchListener;
      InnerRecentSwatchListener = class;
      Arr1InnerRecentSwatchListener = array of InnerRecentSwatchListener;
      Arr2InnerRecentSwatchListener = array of Arr1InnerRecentSwatchListener;
      Arr3InnerRecentSwatchListener = array of Arr2InnerRecentSwatchListener;
      InnerMainSwatchListener = class external 'javax.swing.colorchooser' name 'MainSwatchListener' 
      end;

      InnerRecentSwatchListener = class external 'javax.swing.colorchooser' name 'RecentSwatchListener' 
      end;

  public
    constructor create(); overload;
    function getDisplayName(): JLString; overload; virtual;
    function getMnemonic(): jint; overload; virtual;
    function getDisplayedMnemonicIndex(): jint; overload; virtual;
    function getSmallDisplayIcon(): JSIcon; overload; virtual;
    function getLargeDisplayIcon(): JSIcon; overload; virtual;
    procedure installChooserPanel(para1: JSJColorChooser); overload; virtual;
  strict protected
    procedure buildChooser(); overload; virtual;
  public
    procedure uninstallChooserPanel(para1: JSJColorChooser); overload; virtual;
    procedure updateChooser(); overload; virtual;
  end;

  JSCMainSwatchPanel = class external 'javax.swing.colorchooser' name 'MainSwatchPanel' (JSCSwatchPanel)
  strict protected
    procedure initValues(); overload; virtual;
    procedure initColors(); overload; virtual;
  end;

  JSCRecentSwatchPanel = class external 'javax.swing.colorchooser' name 'RecentSwatchPanel' (JSCSwatchPanel)
  strict protected
    procedure initValues(); overload; virtual;
    procedure initColors(); overload; virtual;
  public
    procedure setMostRecentColor(para1: JAColor); overload; virtual;
  end;

  JSPBBasicComboPopup = class external 'javax.swing.plaf.basic' name 'BasicComboPopup' (JSJPopupMenu, JSPBComboPopup)
  public
    type
      InnerAutoScrollActionHandler = class;
      Arr1InnerAutoScrollActionHandler = array of InnerAutoScrollActionHandler;
      Arr2InnerAutoScrollActionHandler = array of Arr1InnerAutoScrollActionHandler;
      Arr3InnerAutoScrollActionHandler = array of Arr2InnerAutoScrollActionHandler;
      InnerEmptyListModelClass = class;
      Arr1InnerEmptyListModelClass = array of InnerEmptyListModelClass;
      Arr2InnerEmptyListModelClass = array of Arr1InnerEmptyListModelClass;
      Arr3InnerEmptyListModelClass = array of Arr2InnerEmptyListModelClass;
      InnerHandler = class;
      Arr1InnerHandler = array of InnerHandler;
      Arr2InnerHandler = array of Arr1InnerHandler;
      Arr3InnerHandler = array of Arr2InnerHandler;
      InnerAutoScrollActionHandler = class external 'javax.swing.plaf.basic' name 'AutoScrollActionHandler' 
      end;

      InnerEmptyListModelClass = class external 'javax.swing.plaf.basic' name 'EmptyListModelClass' 
      end;

      InnerHandler = class external 'javax.swing.plaf.basic' name 'Handler' 
      end;

  public
    type
      InnerItemHandler = class;
      Arr1InnerItemHandler = array of InnerItemHandler;
      Arr2InnerItemHandler = array of Arr1InnerItemHandler;
      Arr3InnerItemHandler = array of Arr2InnerItemHandler;
      InnerPropertyChangeHandler = class;
      Arr1InnerPropertyChangeHandler = array of InnerPropertyChangeHandler;
      Arr2InnerPropertyChangeHandler = array of Arr1InnerPropertyChangeHandler;
      Arr3InnerPropertyChangeHandler = array of Arr2InnerPropertyChangeHandler;
      InnerInvocationKeyHandler = class;
      Arr1InnerInvocationKeyHandler = array of InnerInvocationKeyHandler;
      Arr2InnerInvocationKeyHandler = array of Arr1InnerInvocationKeyHandler;
      Arr3InnerInvocationKeyHandler = array of Arr2InnerInvocationKeyHandler;
      InnerInvocationMouseHandler = class;
      Arr1InnerInvocationMouseHandler = array of InnerInvocationMouseHandler;
      Arr2InnerInvocationMouseHandler = array of Arr1InnerInvocationMouseHandler;
      Arr3InnerInvocationMouseHandler = array of Arr2InnerInvocationMouseHandler;
      InnerListMouseHandler = class;
      Arr1InnerListMouseHandler = array of InnerListMouseHandler;
      Arr2InnerListMouseHandler = array of Arr1InnerListMouseHandler;
      Arr3InnerListMouseHandler = array of Arr2InnerListMouseHandler;
      InnerInvocationMouseMotionHandler = class;
      Arr1InnerInvocationMouseMotionHandler = array of InnerInvocationMouseMotionHandler;
      Arr2InnerInvocationMouseMotionHandler = array of Arr1InnerInvocationMouseMotionHandler;
      Arr3InnerInvocationMouseMotionHandler = array of Arr2InnerInvocationMouseMotionHandler;
      InnerListMouseMotionHandler = class;
      Arr1InnerListMouseMotionHandler = array of InnerListMouseMotionHandler;
      Arr2InnerListMouseMotionHandler = array of Arr1InnerListMouseMotionHandler;
      Arr3InnerListMouseMotionHandler = array of Arr2InnerListMouseMotionHandler;
      InnerListDataHandler = class;
      Arr1InnerListDataHandler = array of InnerListDataHandler;
      Arr2InnerListDataHandler = array of Arr1InnerListDataHandler;
      Arr3InnerListDataHandler = array of Arr2InnerListDataHandler;
      InnerListSelectionHandler = class;
      Arr1InnerListSelectionHandler = array of InnerListSelectionHandler;
      Arr2InnerListSelectionHandler = array of Arr1InnerListSelectionHandler;
      Arr3InnerListSelectionHandler = array of Arr2InnerListSelectionHandler;
      InnerItemHandler = class external 'javax.swing.plaf.basic' name 'ItemHandler' 
      end;

      InnerPropertyChangeHandler = class external 'javax.swing.plaf.basic' name 'PropertyChangeHandler' 
      end;

      InnerInvocationKeyHandler = class external 'javax.swing.plaf.basic' name 'InvocationKeyHandler' 
      end;

      InnerInvocationMouseHandler = class external 'javax.swing.plaf.basic' name 'InvocationMouseHandler' 
      end;

      InnerListMouseHandler = class external 'javax.swing.plaf.basic' name 'ListMouseHandler' 
      end;

      InnerInvocationMouseMotionHandler = class external 'javax.swing.plaf.basic' name 'InvocationMouseMotionHandler' 
      end;

      InnerListMouseMotionHandler = class external 'javax.swing.plaf.basic' name 'ListMouseMotionHandler' 
      end;

      InnerListDataHandler = class external 'javax.swing.plaf.basic' name 'ListDataHandler' 
      end;

      InnerListSelectionHandler = class external 'javax.swing.plaf.basic' name 'ListSelectionHandler' 
      end;

  strict protected
    var
      fcomboBox: JSJComboBox; external name 'comboBox';
      flist: JSJList; external name 'list';
      fscroller: JSJScrollPane; external name 'scroller';
      fvalueIsAdjusting: jboolean; external name 'valueIsAdjusting';
      fmouseMotionListener: JAEMouseMotionListener; external name 'mouseMotionListener';
      fmouseListener: JAEMouseListener; external name 'mouseListener';
      fkeyListener: JAEKeyListener; external name 'keyListener';
      flistSelectionListener: JSEListSelectionListener; external name 'listSelectionListener';
      flistMouseListener: JAEMouseListener; external name 'listMouseListener';
      flistMouseMotionListener: JAEMouseMotionListener; external name 'listMouseMotionListener';
      fpropertyChangeListener: JBPropertyChangeListener; external name 'propertyChangeListener';
      flistDataListener: JSEListDataListener; external name 'listDataListener';
      fitemListener: JAEItemListener; external name 'itemListener';
      fautoscrollTimer: JSTimer; external name 'autoscrollTimer';
      fhasEntered: jboolean; external name 'hasEntered';
      fisAutoScrolling: jboolean; external name 'isAutoScrolling';
      fscrollDirection: jint; external name 'scrollDirection';
  strict protected
    const
      SCROLL_UP = 0;
      SCROLL_DOWN = 1;
  public
    procedure show(); overload; virtual;
    procedure hide(); overload; virtual;
    function getList(): JSJList; overload; virtual;
    function getMouseListener(): JAEMouseListener; overload; virtual;
    function getMouseMotionListener(): JAEMouseMotionListener; overload; virtual;
    function getKeyListener(): JAEKeyListener; overload; virtual;
    procedure uninstallingUI(); overload; virtual;
  strict protected
    procedure uninstallComboBoxModelListeners(para1: JSComboBoxModel); overload; virtual;
    procedure uninstallKeyboardActions(); overload; virtual;
  public
    constructor create(para1: JSJComboBox); overload;
  strict protected
    procedure firePopupMenuWillBecomeVisible(); overload; virtual;
    procedure firePopupMenuWillBecomeInvisible(); overload; virtual;
    procedure firePopupMenuCanceled(); overload; virtual;
    function createMouseListener(): JAEMouseListener; overload; virtual;
    function createMouseMotionListener(): JAEMouseMotionListener; overload; virtual;
    function createKeyListener(): JAEKeyListener; overload; virtual;
    function createListSelectionListener(): JSEListSelectionListener; overload; virtual;
    function createListDataListener(): JSEListDataListener; overload; virtual;
    function createListMouseListener(): JAEMouseListener; overload; virtual;
    function createListMouseMotionListener(): JAEMouseMotionListener; overload; virtual;
    function createPropertyChangeListener(): JBPropertyChangeListener; overload; virtual;
    function createItemListener(): JAEItemListener; overload; virtual;
    function createList(): JSJList; overload; virtual;
    procedure configureList(); overload; virtual;
    procedure installListListeners(); overload; virtual;
    function createScroller(): JSJScrollPane; overload; virtual;
    procedure configureScroller(); overload; virtual;
    procedure configurePopup(); overload; virtual;
    procedure installComboBoxListeners(); overload; virtual;
    procedure installComboBoxModelListeners(para1: JSComboBoxModel); overload; virtual;
    procedure installKeyboardActions(); overload; virtual;
  public
    function isFocusTraversable(): jboolean; overload; virtual;
  strict protected
    procedure startAutoScrolling(para1: jint); overload; virtual;
    procedure stopAutoScrolling(); overload; virtual;
    procedure autoScrollUp(); overload; virtual;
    procedure autoScrollDown(); overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  strict protected
    procedure delegateFocus(para1: JAEMouseEvent); overload; virtual;
    procedure togglePopup(); overload; virtual;
    function convertMouseEvent(para1: JAEMouseEvent): JAEMouseEvent; overload; virtual;
    function getPopupHeightForRowCount(para1: jint): jint; overload; virtual;
    function computePopupBounds(para1: jint; para2: jint; para3: jint; para4: jint): JARectangle; overload; virtual;
    procedure updateListBoxSelectionForEvent(para1: JAEMouseEvent; para2: jboolean); overload; virtual;
  end;

  JSJTextPane = class external 'javax.swing' name 'JTextPane' (JSJEditorPane)
  public
    constructor create(); overload;
    constructor create(para1: JSTStyledDocument); overload;
    function getUIClassID(): JLString; overload; virtual;
    procedure setDocument(para1: JSTDocument); overload; virtual;
    procedure setStyledDocument(para1: JSTStyledDocument); overload; virtual;
    function getStyledDocument(): JSTStyledDocument; overload; virtual;
    procedure replaceSelection(para1: JLString); overload; virtual;
    procedure insertComponent(para1: JAComponent); overload; virtual;
    procedure insertIcon(para1: JSIcon); overload; virtual;
    function addStyle(para1: JLString; para2: JSTStyle): JSTStyle; overload; virtual;
    procedure removeStyle(para1: JLString); overload; virtual;
    function getStyle(para1: JLString): JSTStyle; overload; virtual;
    procedure setLogicalStyle(para1: JSTStyle); overload; virtual;
    function getLogicalStyle(): JSTStyle; overload; virtual;
    function getCharacterAttributes(): JSTAttributeSet; overload; virtual;
    procedure setCharacterAttributes(para1: JSTAttributeSet; para2: jboolean); overload; virtual;
    function getParagraphAttributes(): JSTAttributeSet; overload; virtual;
    procedure setParagraphAttributes(para1: JSTAttributeSet; para2: jboolean); overload; virtual;
    function getInputAttributes(): JSTMutableAttributeSet; overload; virtual;
  strict protected
    function getStyledEditorKit(): JSTStyledEditorKit; overload; virtual; final;
    function createDefaultEditorKit(): JSTEditorKit; overload; virtual;
  public
    procedure setEditorKit(para1: JSTEditorKit); overload; virtual; final;
  strict protected
    function paramString(): JLString; overload; virtual;
  end;

  JSJFormattedTextField = class external 'javax.swing' name 'JFormattedTextField' (JSJTextField)
  public
    type
      InnerCancelAction = class;
      Arr1InnerCancelAction = array of InnerCancelAction;
      Arr2InnerCancelAction = array of Arr1InnerCancelAction;
      Arr3InnerCancelAction = array of Arr2InnerCancelAction;
      InnerCommitAction = class;
      Arr1InnerCommitAction = array of InnerCommitAction;
      Arr2InnerCommitAction = array of Arr1InnerCommitAction;
      Arr3InnerCommitAction = array of Arr2InnerCommitAction;
      InnerDocumentHandler = class;
      Arr1InnerDocumentHandler = array of InnerDocumentHandler;
      Arr2InnerDocumentHandler = array of Arr1InnerDocumentHandler;
      Arr3InnerDocumentHandler = array of Arr2InnerDocumentHandler;
      InnerFocusLostHandler = class;
      Arr1InnerFocusLostHandler = array of InnerFocusLostHandler;
      Arr2InnerFocusLostHandler = array of Arr1InnerFocusLostHandler;
      Arr3InnerFocusLostHandler = array of Arr2InnerFocusLostHandler;
      InnerCancelAction = class external 'javax.swing' name 'CancelAction' 
      end;

      InnerCommitAction = class external 'javax.swing' name 'CommitAction' 
      end;

      InnerDocumentHandler = class external 'javax.swing' name 'DocumentHandler' 
      end;

      InnerFocusLostHandler = class external 'javax.swing' name 'FocusLostHandler' 
      end;

  public
    type
      InnerAbstractFormatter = class;
      Arr1InnerAbstractFormatter = array of InnerAbstractFormatter;
      Arr2InnerAbstractFormatter = array of Arr1InnerAbstractFormatter;
      Arr3InnerAbstractFormatter = array of Arr2InnerAbstractFormatter;
      InnerAbstractFormatterFactory = class;
      Arr1InnerAbstractFormatterFactory = array of InnerAbstractFormatterFactory;
      Arr2InnerAbstractFormatterFactory = array of Arr1InnerAbstractFormatterFactory;
      Arr3InnerAbstractFormatterFactory = array of Arr2InnerAbstractFormatterFactory;
      InnerAbstractFormatter = class abstract external 'javax.swing' name 'AbstractFormatter' (JLObject, JISerializable)
      public
        constructor create(); overload;
        procedure install(para1: JSJFormattedTextField); overload; virtual;
        procedure uninstall(); overload; virtual;
        function stringToValue(para1: JLString): JLObject; overload; virtual; abstract;  // throws java.text.ParseException
        function valueToString(para1: JLObject): JLString; overload; virtual; abstract;  // throws java.text.ParseException
      strict protected
        function getFormattedTextField(): JSJFormattedTextField; overload; virtual;
        procedure invalidEdit(); overload; virtual;
        procedure setEditValid(para1: jboolean); overload; virtual;
        function getActions(): Arr1JSAction; overload; virtual;
        function getDocumentFilter(): JSTDocumentFilter; overload; virtual;
        function getNavigationFilter(): JSTNavigationFilter; overload; virtual;
        function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
      end;

      InnerAbstractFormatterFactory = class abstract external 'javax.swing' name 'AbstractFormatterFactory' (JLObject)
      public
        constructor create(); overload;
        function getFormatter(para1: JSJFormattedTextField): JSJFormattedTextField.InnerAbstractFormatter; overload; virtual; abstract;
      end;

  public
    const
      COMMIT = 0;
      COMMIT_OR_REVERT = 1;
      REVERT = 2;
      PERSIST = 3;
  public
    constructor create(); overload;
    constructor create(para1: JLObject); overload;
    constructor create(para1: JTFormat); overload;
    constructor create(para1: JSJFormattedTextField.InnerAbstractFormatter); overload;
    constructor create(para1: JSJFormattedTextField.InnerAbstractFormatterFactory); overload;
    constructor create(para1: JSJFormattedTextField.InnerAbstractFormatterFactory; para2: JLObject); overload;
    procedure setFocusLostBehavior(para1: jint); overload; virtual;
    function getFocusLostBehavior(): jint; overload; virtual;
    procedure setFormatterFactory(para1: JSJFormattedTextField.InnerAbstractFormatterFactory); overload; virtual;
    function getFormatterFactory(): JSJFormattedTextField.InnerAbstractFormatterFactory; overload; virtual;
  strict protected
    procedure setFormatter(para1: JSJFormattedTextField.InnerAbstractFormatter); overload; virtual;
  public
    function getFormatter(): JSJFormattedTextField.InnerAbstractFormatter; overload; virtual;
    procedure setValue(para1: JLObject); overload; virtual;
    function getValue(): JLObject; overload; virtual;
    procedure commitEdit(); overload; virtual;  // throws java.text.ParseException
    function isEditValid(): jboolean; overload; virtual;
  strict protected
    procedure invalidEdit(); overload; virtual;
    procedure processInputMethodEvent(para1: JAEInputMethodEvent); overload; virtual;
    procedure processFocusEvent(para1: JAEFocusEvent); overload; virtual;
  public
    function getActions(): Arr1JSAction; overload; virtual;
    function getUIClassID(): JLString; overload; virtual;
    procedure setDocument(para1: JSTDocument); overload; virtual;
  end;

  JSJPasswordField = class external 'javax.swing' name 'JPasswordField' (JSJTextField)
  public
    type
      InnerAccessibleJPasswordField = class;
      Arr1InnerAccessibleJPasswordField = array of InnerAccessibleJPasswordField;
      Arr2InnerAccessibleJPasswordField = array of Arr1InnerAccessibleJPasswordField;
      Arr3InnerAccessibleJPasswordField = array of Arr2InnerAccessibleJPasswordField;
      InnerAccessibleJPasswordField = class external 'javax.swing' name 'AccessibleJPasswordField' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;
    constructor create(para1: jint); overload;
    constructor create(para1: JLString; para2: jint); overload;
    constructor create(para1: JSTDocument; para2: JLString; para3: jint); overload;
    function getUIClassID(): JLString; overload; virtual;
    procedure updateUI(); overload; virtual;
    function getEchoChar(): jchar; overload; virtual;
    procedure setEchoChar(para1: jchar); overload; virtual;
    function echoCharIsSet(): jboolean; overload; virtual;
    procedure cut(); overload; virtual;
    procedure copy(); overload; virtual;
    function getText(): JLString; overload; virtual;
    function getText(para1: jint; para2: jint): JLString; overload; virtual;  // throws javax.swing.text.BadLocationException
    function getPassword(): Arr1jchar; overload; virtual;
  strict protected
    function paramString(): JLString; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSPBBasicLookAndFeel = class abstract external 'javax.swing.plaf.basic' name 'BasicLookAndFeel' (JSLookAndFeel, JISerializable)
  public
    type
      InnerAWTEventHelper = class;
      Arr1InnerAWTEventHelper = array of InnerAWTEventHelper;
      Arr2InnerAWTEventHelper = array of Arr1InnerAWTEventHelper;
      Arr3InnerAWTEventHelper = array of Arr2InnerAWTEventHelper;
      InnerAudioAction = class;
      Arr1InnerAudioAction = array of InnerAudioAction;
      Arr2InnerAudioAction = array of Arr1InnerAudioAction;
      Arr3InnerAudioAction = array of Arr2InnerAudioAction;
      InnerAWTEventHelper = class external 'javax.swing.plaf.basic' name 'AWTEventHelper' 
      end;

      InnerAudioAction = class external 'javax.swing.plaf.basic' name 'AudioAction' 
      end;

  public
    constructor create(); overload;
    function getDefaults(): JSUIDefaults; overload; virtual;
    procedure initialize(); overload; virtual;
    procedure uninitialize(); overload; virtual;
  strict protected
    procedure initClassDefaults(para1: JSUIDefaults); overload; virtual;
    procedure initSystemColorDefaults(para1: JSUIDefaults); overload; virtual;
    procedure loadSystemColors(para1: JSUIDefaults; para2: Arr1JLString; para3: jboolean); overload; virtual;
    procedure loadSystemColors(para1: JSUIDefaults; var para2: array of JLString; para3: jboolean); overload; virtual;
    procedure initComponentDefaults(para1: JSUIDefaults); overload; virtual;
    function getAudioActionMap(): JSActionMap; overload; virtual;
    function createAudioAction(para1: JLObject): JSAction; overload; virtual;
    procedure playSound(para1: JSAction); overload; virtual;
  end;

  JSPMMultiLookAndFeel = class external 'javax.swing.plaf.multi' name 'MultiLookAndFeel' (JSLookAndFeel)
  public
    constructor create(); overload;
    function getName(): JLString; overload; virtual;
    function getID(): JLString; overload; virtual;
    function getDescription(): JLString; overload; virtual;
    function isNativeLookAndFeel(): jboolean; overload; virtual;
    function isSupportedLookAndFeel(): jboolean; overload; virtual;
    function getDefaults(): JSUIDefaults; overload; virtual;
    class function createUIs(para1: JSPComponentUI; para2: JUVector; para3: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    class function uisToArray(para1: JUVector): Arr1JSPComponentUI; static; overload;
  end;

  JSPBBasicCheckBoxMenuItemUI = class external 'javax.swing.plaf.basic' name 'BasicCheckBoxMenuItemUI' (JSPBBasicMenuItemUI)
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    function getPropertyPrefix(): JLString; overload; virtual;
  public
    procedure processMouseEvent(para1: JSJMenuItem; para2: JAEMouseEvent; para3: Arr1JSMenuElement; para4: JSMenuSelectionManager); overload; virtual;
    procedure processMouseEvent(para1: JSJMenuItem; para2: JAEMouseEvent; var para3: array of JSMenuElement; para4: JSMenuSelectionManager); overload; virtual;
  end;

  JSPBBasicMenuUI = class external 'javax.swing.plaf.basic' name 'BasicMenuUI' (JSPBBasicMenuItemUI)
  public
    type
      InnerActions = class;
      Arr1InnerActions = array of InnerActions;
      Arr2InnerActions = array of Arr1InnerActions;
      Arr3InnerActions = array of Arr2InnerActions;
      InnerHandler = class;
      Arr1InnerHandler = array of InnerHandler;
      Arr2InnerHandler = array of Arr1InnerHandler;
      Arr3InnerHandler = array of Arr2InnerHandler;
      InnerActions = class external 'javax.swing.plaf.basic' name 'Actions' 
      end;

      InnerHandler = class external 'javax.swing.plaf.basic' name 'Handler' 
      end;

  public
    type
      InnerChangeHandler = class;
      Arr1InnerChangeHandler = array of InnerChangeHandler;
      Arr2InnerChangeHandler = array of Arr1InnerChangeHandler;
      Arr3InnerChangeHandler = array of Arr2InnerChangeHandler;
      InnerMouseInputHandler = class;
      Arr1InnerMouseInputHandler = array of InnerMouseInputHandler;
      Arr2InnerMouseInputHandler = array of Arr1InnerMouseInputHandler;
      Arr3InnerMouseInputHandler = array of Arr2InnerMouseInputHandler;
      InnerChangeHandler = class external 'javax.swing.plaf.basic' name 'ChangeHandler' 
      end;

      InnerMouseInputHandler = class external 'javax.swing.plaf.basic' name 'MouseInputHandler' 
      end;

  strict protected
    var
      fchangeListener: JSEChangeListener; external name 'changeListener';
      fmenuListener: JSEMenuListener; external name 'menuListener';
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    procedure installDefaults(); overload; virtual;
    function getPropertyPrefix(): JLString; overload; virtual;
    procedure installListeners(); overload; virtual;
    procedure installKeyboardActions(); overload; virtual;
    procedure uninstallKeyboardActions(); overload; virtual;
    function createMouseInputListener(para1: JSJComponent): JSEMouseInputListener; overload; virtual;
    function createMenuListener(para1: JSJComponent): JSEMenuListener; overload; virtual;
    function createChangeListener(para1: JSJComponent): JSEChangeListener; overload; virtual;
    function createPropertyChangeListener(para1: JSJComponent): JBPropertyChangeListener; overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
    function createMenuDragMouseListener(para1: JSJComponent): JSEMenuDragMouseListener; overload; virtual;
    function createMenuKeyListener(para1: JSJComponent): JSEMenuKeyListener; overload; virtual;
  public
    function getMaximumSize(para1: JSJComponent): JADimension; overload; virtual;
  strict protected
    procedure setupPostTimer(para1: JSJMenu); overload; virtual;
  end;

  JSPBBasicRadioButtonMenuItemUI = class external 'javax.swing.plaf.basic' name 'BasicRadioButtonMenuItemUI' (JSPBBasicMenuItemUI)
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    function getPropertyPrefix(): JLString; overload; virtual;
  public
    procedure processMouseEvent(para1: JSJMenuItem; para2: JAEMouseEvent; para3: Arr1JSMenuElement; para4: JSMenuSelectionManager); overload; virtual;
    procedure processMouseEvent(para1: JSJMenuItem; para2: JAEMouseEvent; var para3: array of JSMenuElement; para4: JSMenuSelectionManager); overload; virtual;
  end;

  JSPSSynthMenuItemUI = class external 'javax.swing.plaf.synth' name 'SynthMenuItemUI' (JSPBBasicMenuItemUI, JBPropertyChangeListener, SSPSSynthUI)
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure installDefaults(); overload; virtual;
    procedure installListeners(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
  public
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
    function getContext(para1: JSJComponent; para2: JSPSRegion): JSPSSynthContext; overload; virtual;
  strict protected
    function getPreferredMenuItemSize(para1: JSJComponent; para2: JSIcon; para3: JSIcon; para4: jint): JADimension; overload; virtual;
  public
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paint(para1: JSPSSynthContext; para2: JAGraphics); overload; virtual;
  public
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  end;

  JSPBBasicRadioButtonUI = class external 'javax.swing.plaf.basic' name 'BasicRadioButtonUI' (JSPBBasicToggleButtonUI)
  strict protected
    var
      ficon: JSIcon; external name 'icon';
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    function getPropertyPrefix(): JLString; overload; virtual;
    procedure installDefaults(para1: JSAbstractButton); overload; virtual;
    procedure uninstallDefaults(para1: JSAbstractButton); overload; virtual;
  public
    function getDefaultIcon(): JSIcon; overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paintFocus(para1: JAGraphics; para2: JARectangle; para3: JADimension); overload; virtual;
  public
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
  end;

  JSPMMetalToggleButtonUI = class external 'javax.swing.plaf.metal' name 'MetalToggleButtonUI' (JSPBBasicToggleButtonUI)
  strict protected
    var
      ffocusColor: JAColor; external name 'focusColor';
      fselectColor: JAColor; external name 'selectColor';
      fdisabledTextColor: JAColor; external name 'disabledTextColor';
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installDefaults(para1: JSAbstractButton); overload; virtual;
  strict protected
    procedure uninstallDefaults(para1: JSAbstractButton); overload; virtual;
    function getSelectColor(): JAColor; overload; virtual;
    function getDisabledTextColor(): JAColor; overload; virtual;
    function getFocusColor(): JAColor; overload; virtual;
  public
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paintButtonPressed(para1: JAGraphics; para2: JSAbstractButton); overload; virtual;
    procedure paintText(para1: JAGraphics; para2: JSJComponent; para3: JARectangle; para4: JLString); overload; virtual;
    procedure paintFocus(para1: JAGraphics; para2: JSAbstractButton; para3: JARectangle; para4: JARectangle; para5: JARectangle); overload; virtual;
    procedure paintIcon(para1: JAGraphics; para2: JSAbstractButton; para3: JARectangle); overload; virtual;
  end;

  JSPSSynthToggleButtonUI = class external 'javax.swing.plaf.synth' name 'SynthToggleButtonUI' (JSPSSynthButtonUI)
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    function getPropertyPrefix(): JLString; overload; virtual;
  public
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
  end;

  JSPMMetalPopupMenuSeparatorUI = class external 'javax.swing.plaf.metal' name 'MetalPopupMenuSeparatorUI' (JSPMMetalSeparatorUI)
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    function getPreferredSize(para1: JSJComponent): JADimension; overload; virtual;
  end;

  JNCDatagramChannel = class abstract external 'java.nio.channels' name 'DatagramChannel' (JNCSAbstractSelectableChannel, JNCByteChannel, JNCScatteringByteChannel, JNCGatheringByteChannel)
  strict protected
    constructor create(para1: JNCSSelectorProvider); overload;
  public
    class function open(): JNCDatagramChannel; static; overload;  // throws java.io.IOException
    function validOps(): jint; overload; virtual; final;
    function socket(): JNDatagramSocket; overload; virtual; abstract;
    function isConnected(): jboolean; overload; virtual; abstract;
    function connect(para1: JNSocketAddress): JNCDatagramChannel; overload; virtual; abstract;  // throws java.io.IOException
    function disconnect(): JNCDatagramChannel; overload; virtual; abstract;  // throws java.io.IOException
    function receive(para1: JNByteBuffer): JNSocketAddress; overload; virtual; abstract;  // throws java.io.IOException
    function send(para1: JNByteBuffer; para2: JNSocketAddress): jint; overload; virtual; abstract;  // throws java.io.IOException
    function read(para1: JNByteBuffer): jint; overload; virtual; abstract;  // throws java.io.IOException
    function read(para1: Arr1JNByteBuffer; para2: jint; para3: jint): jlong; overload; virtual; abstract;  // throws java.io.IOException
    function read(var para1: array of JNByteBuffer; para2: jint; para3: jint): jlong; overload; virtual; abstract;  // throws java.io.IOException
    function read(para1: Arr1JNByteBuffer): jlong; overload; virtual; final;  // throws java.io.IOException
    function read(var para1: array of JNByteBuffer): jlong; overload; virtual; final;  // throws java.io.IOException
    function write(para1: JNByteBuffer): jint; overload; virtual; abstract;  // throws java.io.IOException
    function write(para1: Arr1JNByteBuffer; para2: jint; para3: jint): jlong; overload; virtual; abstract;  // throws java.io.IOException
    function write(var para1: array of JNByteBuffer; para2: jint; para3: jint): jlong; overload; virtual; abstract;  // throws java.io.IOException
    function write(para1: Arr1JNByteBuffer): jlong; overload; virtual; final;  // throws java.io.IOException
    function write(var para1: array of JNByteBuffer): jlong; overload; virtual; final;  // throws java.io.IOException
  end;

  JNCPipe = class abstract external 'java.nio.channels' name 'Pipe' (JLObject)
  public
    type
      InnerSinkChannel = class;
      Arr1InnerSinkChannel = array of InnerSinkChannel;
      Arr2InnerSinkChannel = array of Arr1InnerSinkChannel;
      Arr3InnerSinkChannel = array of Arr2InnerSinkChannel;
      InnerSourceChannel = class;
      Arr1InnerSourceChannel = array of InnerSourceChannel;
      Arr2InnerSourceChannel = array of Arr1InnerSourceChannel;
      Arr3InnerSourceChannel = array of Arr2InnerSourceChannel;
      InnerSinkChannel = class abstract external 'java.nio.channels' name 'SinkChannel' (JNCSAbstractSelectableChannel, JNCWritableByteChannel, JNCGatheringByteChannel)
      strict protected
        constructor create(para1: JNCSSelectorProvider); overload;
      public
        function validOps(): jint; overload; virtual; final;
      end;

      InnerSourceChannel = class abstract external 'java.nio.channels' name 'SourceChannel' (JNCSAbstractSelectableChannel, JNCReadableByteChannel, JNCScatteringByteChannel)
      strict protected
        constructor create(para1: JNCSSelectorProvider); overload;
      public
        function validOps(): jint; overload; virtual; final;
      end;

  strict protected
    constructor create(); overload;
  public
    function source(): JNCPipe.InnerSourceChannel; overload; virtual; abstract;
    function sink(): JNCPipe.InnerSinkChannel; overload; virtual; abstract;
    class function open(): JNCPipe; static; overload;  // throws java.io.IOException
  end;

  JNCServerSocketChannel = class abstract external 'java.nio.channels' name 'ServerSocketChannel' (JNCSAbstractSelectableChannel)
  strict protected
    constructor create(para1: JNCSSelectorProvider); overload;
  public
    class function open(): JNCServerSocketChannel; static; overload;  // throws java.io.IOException
    function validOps(): jint; overload; virtual; final;
    function socket(): JNServerSocket; overload; virtual; abstract;
    function accept(): JNCSocketChannel; overload; virtual; abstract;  // throws java.io.IOException
  end;

  JNCSocketChannel = class abstract external 'java.nio.channels' name 'SocketChannel' (JNCSAbstractSelectableChannel, JNCByteChannel, JNCScatteringByteChannel, JNCGatheringByteChannel)
  strict protected
    constructor create(para1: JNCSSelectorProvider); overload;
  public
    class function open(): JNCSocketChannel; static; overload;  // throws java.io.IOException
    class function open(para1: JNSocketAddress): JNCSocketChannel; static; overload;  // throws java.io.IOException
    function validOps(): jint; overload; virtual; final;
    function socket(): JNSocket; overload; virtual; abstract;
    function isConnected(): jboolean; overload; virtual; abstract;
    function isConnectionPending(): jboolean; overload; virtual; abstract;
    function connect(para1: JNSocketAddress): jboolean; overload; virtual; abstract;  // throws java.io.IOException
    function finishConnect(): jboolean; overload; virtual; abstract;  // throws java.io.IOException
    function read(para1: JNByteBuffer): jint; overload; virtual; abstract;  // throws java.io.IOException
    function read(para1: Arr1JNByteBuffer; para2: jint; para3: jint): jlong; overload; virtual; abstract;  // throws java.io.IOException
    function read(var para1: array of JNByteBuffer; para2: jint; para3: jint): jlong; overload; virtual; abstract;  // throws java.io.IOException
    function read(para1: Arr1JNByteBuffer): jlong; overload; virtual; final;  // throws java.io.IOException
    function read(var para1: array of JNByteBuffer): jlong; overload; virtual; final;  // throws java.io.IOException
    function write(para1: JNByteBuffer): jint; overload; virtual; abstract;  // throws java.io.IOException
    function write(para1: Arr1JNByteBuffer; para2: jint; para3: jint): jlong; overload; virtual; abstract;  // throws java.io.IOException
    function write(var para1: array of JNByteBuffer; para2: jint; para3: jint): jlong; overload; virtual; abstract;  // throws java.io.IOException
    function write(para1: Arr1JNByteBuffer): jlong; overload; virtual; final;  // throws java.io.IOException
    function write(var para1: array of JNByteBuffer): jlong; overload; virtual; final;  // throws java.io.IOException
  end;

  JSTStyledEditorKit = class external 'javax.swing.text' name 'StyledEditorKit' (JSTDefaultEditorKit)
  public
    type
      InnerStyledInsertBreakAction = class;
      Arr1InnerStyledInsertBreakAction = array of InnerStyledInsertBreakAction;
      Arr2InnerStyledInsertBreakAction = array of Arr1InnerStyledInsertBreakAction;
      Arr3InnerStyledInsertBreakAction = array of Arr2InnerStyledInsertBreakAction;
      InnerAttributeTracker = class;
      Arr1InnerAttributeTracker = array of InnerAttributeTracker;
      Arr2InnerAttributeTracker = array of Arr1InnerAttributeTracker;
      Arr3InnerAttributeTracker = array of Arr2InnerAttributeTracker;
      InnerStyledViewFactory = class;
      Arr1InnerStyledViewFactory = array of InnerStyledViewFactory;
      Arr2InnerStyledViewFactory = array of Arr1InnerStyledViewFactory;
      Arr3InnerStyledViewFactory = array of Arr2InnerStyledViewFactory;
      InnerStyledInsertBreakAction = class external 'javax.swing.text' name 'StyledInsertBreakAction' 
      end;

      InnerAttributeTracker = class external 'javax.swing.text' name 'AttributeTracker' 
      end;

      InnerStyledViewFactory = class external 'javax.swing.text' name 'StyledViewFactory' 
      end;

  public
    type
      InnerStyledTextAction = class;
      Arr1InnerStyledTextAction = array of InnerStyledTextAction;
      Arr2InnerStyledTextAction = array of Arr1InnerStyledTextAction;
      Arr3InnerStyledTextAction = array of Arr2InnerStyledTextAction;
      InnerAlignmentAction = class;
      Arr1InnerAlignmentAction = array of InnerAlignmentAction;
      Arr2InnerAlignmentAction = array of Arr1InnerAlignmentAction;
      Arr3InnerAlignmentAction = array of Arr2InnerAlignmentAction;
      InnerBoldAction = class;
      Arr1InnerBoldAction = array of InnerBoldAction;
      Arr2InnerBoldAction = array of Arr1InnerBoldAction;
      Arr3InnerBoldAction = array of Arr2InnerBoldAction;
      InnerFontFamilyAction = class;
      Arr1InnerFontFamilyAction = array of InnerFontFamilyAction;
      Arr2InnerFontFamilyAction = array of Arr1InnerFontFamilyAction;
      Arr3InnerFontFamilyAction = array of Arr2InnerFontFamilyAction;
      InnerFontSizeAction = class;
      Arr1InnerFontSizeAction = array of InnerFontSizeAction;
      Arr2InnerFontSizeAction = array of Arr1InnerFontSizeAction;
      Arr3InnerFontSizeAction = array of Arr2InnerFontSizeAction;
      InnerForegroundAction = class;
      Arr1InnerForegroundAction = array of InnerForegroundAction;
      Arr2InnerForegroundAction = array of Arr1InnerForegroundAction;
      Arr3InnerForegroundAction = array of Arr2InnerForegroundAction;
      InnerItalicAction = class;
      Arr1InnerItalicAction = array of InnerItalicAction;
      Arr2InnerItalicAction = array of Arr1InnerItalicAction;
      Arr3InnerItalicAction = array of Arr2InnerItalicAction;
      InnerUnderlineAction = class;
      Arr1InnerUnderlineAction = array of InnerUnderlineAction;
      Arr2InnerUnderlineAction = array of Arr1InnerUnderlineAction;
      Arr3InnerUnderlineAction = array of Arr2InnerUnderlineAction;
      InnerStyledTextAction = class abstract external 'javax.swing.text' name 'StyledTextAction' (JSTTextAction)
      public
        constructor create(para1: JLString); overload;
      strict protected
        function getEditor(para1: JAEActionEvent): JSJEditorPane; overload; virtual; final;
        function getStyledDocument(para1: JSJEditorPane): JSTStyledDocument; overload; virtual; final;
        function getStyledEditorKit(para1: JSJEditorPane): JSTStyledEditorKit; overload; virtual; final;
        procedure setCharacterAttributes(para1: JSJEditorPane; para2: JSTAttributeSet; para3: jboolean); overload; virtual; final;
        procedure setParagraphAttributes(para1: JSJEditorPane; para2: JSTAttributeSet; para3: jboolean); overload; virtual; final;
      end;

      InnerAlignmentAction = class external 'javax.swing.text' name 'AlignmentAction' (InnerStyledTextAction)
      public
        constructor create(para1: JLString; para2: jint); overload;
        procedure actionPerformed(para1: JAEActionEvent); overload; virtual;
      end;

      InnerBoldAction = class external 'javax.swing.text' name 'BoldAction' (InnerStyledTextAction)
      public
        constructor create(); overload;
        procedure actionPerformed(para1: JAEActionEvent); overload; virtual;
      end;

      InnerFontFamilyAction = class external 'javax.swing.text' name 'FontFamilyAction' (InnerStyledTextAction)
      public
        constructor create(para1: JLString; para2: JLString); overload;
        procedure actionPerformed(para1: JAEActionEvent); overload; virtual;
      end;

      InnerFontSizeAction = class external 'javax.swing.text' name 'FontSizeAction' (InnerStyledTextAction)
      public
        constructor create(para1: JLString; para2: jint); overload;
        procedure actionPerformed(para1: JAEActionEvent); overload; virtual;
      end;

      InnerForegroundAction = class external 'javax.swing.text' name 'ForegroundAction' (InnerStyledTextAction)
      public
        constructor create(para1: JLString; para2: JAColor); overload;
        procedure actionPerformed(para1: JAEActionEvent); overload; virtual;
      end;

      InnerItalicAction = class external 'javax.swing.text' name 'ItalicAction' (InnerStyledTextAction)
      public
        constructor create(); overload;
        procedure actionPerformed(para1: JAEActionEvent); overload; virtual;
      end;

      InnerUnderlineAction = class external 'javax.swing.text' name 'UnderlineAction' (InnerStyledTextAction)
      public
        constructor create(); overload;
        procedure actionPerformed(para1: JAEActionEvent); overload; virtual;
      end;

  public
    constructor create(); overload;
    function getInputAttributes(): JSTMutableAttributeSet; overload; virtual;
    function getCharacterAttributeRun(): JSTElement; overload; virtual;
    function getActions(): Arr1JSAction; overload; virtual;
    function createDefaultDocument(): JSTDocument; overload; virtual;
    procedure install(para1: JSJEditorPane); overload; virtual;
    procedure deinstall(para1: JSJEditorPane); overload; virtual;
    function getViewFactory(): JSTViewFactory; overload; virtual;
    function clone(): JLObject; overload; virtual;
  strict protected
    procedure createInputAttributes(para1: JSTElement; para2: JSTMutableAttributeSet); overload; virtual;
  end;

  JSTHParagraphView = class external 'javax.swing.text.html' name 'ParagraphView' (JSTParagraphView)
  public
    constructor create(para1: JSTElement); overload;
    procedure setParent(para1: JSTView); overload; virtual;
    function getAttributes(): JSTAttributeSet; overload; virtual;
  strict protected
    procedure setPropertiesFromAttributes(); overload; virtual;
    function getStyleSheet(): JSTHStyleSheet; overload; virtual;
    function calculateMinorAxisRequirements(para1: jint; para2: JSSizeRequirements): JSSizeRequirements; overload; virtual;
  public
    function isVisible(): jboolean; overload; virtual;
    procedure paint(para1: JAGraphics; para2: JAShape); overload; virtual;
    function getPreferredSpan(para1: jint): jfloat; overload; virtual;
    function getMinimumSpan(para1: jint): jfloat; overload; virtual;
    function getMaximumSpan(para1: jint): jfloat; overload; virtual;
  end;

  JSPBBasicTextPaneUI = class external 'javax.swing.plaf.basic' name 'BasicTextPaneUI' (JSPBBasicEditorPaneUI)
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    constructor create(); overload;
  strict protected
    function getPropertyPrefix(): JLString; overload; virtual;
  public
    procedure installUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  end;

  JSPSSynthEditorPaneUI = class external 'javax.swing.plaf.synth' name 'SynthEditorPaneUI' (JSPBBasicEditorPaneUI, SSPSSynthUI)
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    procedure installDefaults(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  public
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paint(para1: JSPSSynthContext; para2: JAGraphics); overload; virtual;
    procedure paintBackground(para1: JAGraphics); overload; virtual;
  public
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
  end;

  JSPSSynthTextAreaUI = class external 'javax.swing.plaf.synth' name 'SynthTextAreaUI' (JSPBBasicTextAreaUI, SSPSSynthUI, JAEFocusListener)
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure focusGained(para1: JAEFocusEvent); overload; virtual;
    procedure focusLost(para1: JAEFocusEvent); overload; virtual;
  strict protected
    procedure installDefaults(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
  public
    procedure installUI(para1: JSJComponent); overload; virtual;
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paint(para1: JSPSSynthContext; para2: JAGraphics); overload; virtual;
    procedure paintBackground(para1: JAGraphics); overload; virtual;
  public
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
  strict protected
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  end;

  JSPBBasicFormattedTextFieldUI = class external 'javax.swing.plaf.basic' name 'BasicFormattedTextFieldUI' (JSPBBasicTextFieldUI)
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    function getPropertyPrefix(): JLString; overload; virtual;
  end;

  JSPBBasicPasswordFieldUI = class external 'javax.swing.plaf.basic' name 'BasicPasswordFieldUI' (JSPBBasicTextFieldUI)
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    function getPropertyPrefix(): JLString; overload; virtual;
    procedure installDefaults(); overload; virtual;
  public
    function create_(para1: JSTElement): JSTView; external name 'create'; overload; virtual;
  end;

  JSPMMetalTextFieldUI = class external 'javax.swing.plaf.metal' name 'MetalTextFieldUI' (JSPBBasicTextFieldUI)
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  end;

  JSPSSynthTextFieldUI = class external 'javax.swing.plaf.synth' name 'SynthTextFieldUI' (JSPBBasicTextFieldUI, SSPSSynthUI, JAEFocusListener)
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    constructor create(); overload;
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paint(para1: JSPSSynthContext; para2: JAGraphics); overload; virtual;
  public
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
  strict protected
    procedure paintBackground(para1: JAGraphics); overload; virtual;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  public
    procedure focusGained(para1: JAEFocusEvent); overload; virtual;
    procedure focusLost(para1: JAEFocusEvent); overload; virtual;
  strict protected
    procedure installDefaults(); overload; virtual;
    procedure uninstallDefaults(); overload; virtual;
  public
    procedure installUI(para1: JSJComponent); overload; virtual;
  end;

  JSPMMetalScrollButton = class external 'javax.swing.plaf.metal' name 'MetalScrollButton' (JSPBBasicArrowButton)
  public
    constructor create(para1: jint; para2: jint; para3: jboolean); overload;
    procedure setFreeStanding(para1: jboolean); overload; virtual;
    procedure paint(para1: JAGraphics); overload; virtual;
    function getPreferredSize(): JADimension; overload; virtual;
    function getMinimumSize(): JADimension; overload; virtual;
    function getMaximumSize(): JADimension; overload; virtual;
    function getButtonWidth(): jint; overload; virtual;
  end;

  JSPSSynthComboPopup = class external 'javax.swing.plaf.synth' name 'SynthComboPopup' (JSPBBasicComboPopup)
  public
    constructor create(para1: JSJComboBox); overload;
  strict protected
    procedure configureList(); overload; virtual;
    function computePopupBounds(para1: jint; para2: jint; para3: jint; para4: jint): JARectangle; overload; virtual;
  end;

  JSTDefaultFormatter = class external 'javax.swing.text' name 'DefaultFormatter' (JSJFormattedTextField.InnerAbstractFormatter, JLCloneable, JISerializable)
  public
    type
      InnerDefaultDocumentFilter = class;
      Arr1InnerDefaultDocumentFilter = array of InnerDefaultDocumentFilter;
      Arr2InnerDefaultDocumentFilter = array of Arr1InnerDefaultDocumentFilter;
      Arr3InnerDefaultDocumentFilter = array of Arr2InnerDefaultDocumentFilter;
      InnerDefaultNavigationFilter = class;
      Arr1InnerDefaultNavigationFilter = array of InnerDefaultNavigationFilter;
      Arr2InnerDefaultNavigationFilter = array of Arr1InnerDefaultNavigationFilter;
      Arr3InnerDefaultNavigationFilter = array of Arr2InnerDefaultNavigationFilter;
      InnerReplaceHolder = class;
      Arr1InnerReplaceHolder = array of InnerReplaceHolder;
      Arr2InnerReplaceHolder = array of Arr1InnerReplaceHolder;
      Arr3InnerReplaceHolder = array of Arr2InnerReplaceHolder;
      InnerDefaultDocumentFilter = class external 'javax.swing.text' name 'DefaultDocumentFilter' 
      end;

      InnerDefaultNavigationFilter = class external 'javax.swing.text' name 'DefaultNavigationFilter' 
      end;

      InnerReplaceHolder = class external 'javax.swing.text' name 'ReplaceHolder' 
      end;

  public
    constructor create(); overload;
    procedure install(para1: JSJFormattedTextField); overload; virtual;
    procedure setCommitsOnValidEdit(para1: jboolean); overload; virtual;
    function getCommitsOnValidEdit(): jboolean; overload; virtual;
    procedure setOverwriteMode(para1: jboolean); overload; virtual;
    function getOverwriteMode(): jboolean; overload; virtual;
    procedure setAllowsInvalid(para1: jboolean); overload; virtual;
    function getAllowsInvalid(): jboolean; overload; virtual;
    procedure setValueClass(para1: JLClass); overload; virtual;
    function getValueClass(): JLClass; overload; virtual;
    function stringToValue(para1: JLString): JLObject; overload; virtual;  // throws java.text.ParseException
    function valueToString(para1: JLObject): JLString; overload; virtual;  // throws java.text.ParseException
  strict protected
    function getDocumentFilter(): JSTDocumentFilter; overload; virtual;
    function getNavigationFilter(): JSTNavigationFilter; overload; virtual;
  public
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  end;

  JSTDefaultFormatterFactory = class external 'javax.swing.text' name 'DefaultFormatterFactory' (JSJFormattedTextField.InnerAbstractFormatterFactory, JISerializable)
  public
    constructor create(); overload;
    constructor create(para1: JSJFormattedTextField.InnerAbstractFormatter); overload;
    constructor create(para1: JSJFormattedTextField.InnerAbstractFormatter; para2: JSJFormattedTextField.InnerAbstractFormatter); overload;
    constructor create(para1: JSJFormattedTextField.InnerAbstractFormatter; para2: JSJFormattedTextField.InnerAbstractFormatter; para3: JSJFormattedTextField.InnerAbstractFormatter); overload;
    constructor create(para1: JSJFormattedTextField.InnerAbstractFormatter; para2: JSJFormattedTextField.InnerAbstractFormatter; para3: JSJFormattedTextField.InnerAbstractFormatter; para4: JSJFormattedTextField.InnerAbstractFormatter); overload;
    procedure setDefaultFormatter(para1: JSJFormattedTextField.InnerAbstractFormatter); overload; virtual;
    function getDefaultFormatter(): JSJFormattedTextField.InnerAbstractFormatter; overload; virtual;
    procedure setDisplayFormatter(para1: JSJFormattedTextField.InnerAbstractFormatter); overload; virtual;
    function getDisplayFormatter(): JSJFormattedTextField.InnerAbstractFormatter; overload; virtual;
    procedure setEditFormatter(para1: JSJFormattedTextField.InnerAbstractFormatter); overload; virtual;
    function getEditFormatter(): JSJFormattedTextField.InnerAbstractFormatter; overload; virtual;
    procedure setNullFormatter(para1: JSJFormattedTextField.InnerAbstractFormatter); overload; virtual;
    function getNullFormatter(): JSJFormattedTextField.InnerAbstractFormatter; overload; virtual;
    function getFormatter(para1: JSJFormattedTextField): JSJFormattedTextField.InnerAbstractFormatter; overload; virtual;
  end;

  JSPMMetalLookAndFeel = class external 'javax.swing.plaf.metal' name 'MetalLookAndFeel' (JSPBBasicLookAndFeel)
  public
    type
      InnerAATextListener = class;
      Arr1InnerAATextListener = array of InnerAATextListener;
      Arr2InnerAATextListener = array of Arr1InnerAATextListener;
      Arr3InnerAATextListener = array of Arr2InnerAATextListener;
      InnerFontActiveValue = class;
      Arr1InnerFontActiveValue = array of InnerFontActiveValue;
      Arr2InnerFontActiveValue = array of Arr1InnerFontActiveValue;
      Arr3InnerFontActiveValue = array of Arr2InnerFontActiveValue;
      InnerMetalLazyValue = class;
      Arr1InnerMetalLazyValue = array of InnerMetalLazyValue;
      Arr2InnerMetalLazyValue = array of Arr1InnerMetalLazyValue;
      Arr3InnerMetalLazyValue = array of Arr2InnerMetalLazyValue;
      InnerMetalLayoutStyle = class;
      Arr1InnerMetalLayoutStyle = array of InnerMetalLayoutStyle;
      Arr2InnerMetalLayoutStyle = array of Arr1InnerMetalLayoutStyle;
      Arr3InnerMetalLayoutStyle = array of Arr2InnerMetalLayoutStyle;
      InnerAATextListener = class external 'javax.swing.plaf.metal' name 'AATextListener' 
      end;

      InnerFontActiveValue = class external 'javax.swing.plaf.metal' name 'FontActiveValue' 
      end;

      InnerMetalLazyValue = class external 'javax.swing.plaf.metal' name 'MetalLazyValue' 
      end;

      InnerMetalLayoutStyle = class external 'javax.swing.plaf.metal' name 'MetalLayoutStyle' 
      end;

  public
    constructor create(); overload;
    function getName(): JLString; overload; virtual;
    function getID(): JLString; overload; virtual;
    function getDescription(): JLString; overload; virtual;
    function isNativeLookAndFeel(): jboolean; overload; virtual;
    function isSupportedLookAndFeel(): jboolean; overload; virtual;
    function getSupportsWindowDecorations(): jboolean; overload; virtual;
  strict protected
    procedure initClassDefaults(para1: JSUIDefaults); overload; virtual;
    procedure initSystemColorDefaults(para1: JSUIDefaults); overload; virtual;
    procedure initComponentDefaults(para1: JSUIDefaults); overload; virtual;
    procedure createDefaultTheme(); overload; virtual;
  public
    function getDefaults(): JSUIDefaults; overload; virtual;
    procedure provideErrorFeedback(para1: JAComponent); overload; virtual;
    class procedure setCurrentTheme(para1: JSPMMetalTheme); static; overload;
    class function getCurrentTheme(): JSPMMetalTheme; static; overload;
    function getDisabledIcon(para1: JSJComponent; para2: JSIcon): JSIcon; overload; virtual;
    function getDisabledSelectedIcon(para1: JSJComponent; para2: JSIcon): JSIcon; overload; virtual;
    class function getControlTextFont(): JSPFontUIResource; static; overload;
    class function getSystemTextFont(): JSPFontUIResource; static; overload;
    class function getUserTextFont(): JSPFontUIResource; static; overload;
    class function getMenuTextFont(): JSPFontUIResource; static; overload;
    class function getWindowTitleFont(): JSPFontUIResource; static; overload;
    class function getSubTextFont(): JSPFontUIResource; static; overload;
    class function getDesktopColor(): JSPColorUIResource; static; overload;
    class function getFocusColor(): JSPColorUIResource; static; overload;
    class function getWhite(): JSPColorUIResource; static; overload;
    class function getBlack(): JSPColorUIResource; static; overload;
    class function getControl(): JSPColorUIResource; static; overload;
    class function getControlShadow(): JSPColorUIResource; static; overload;
    class function getControlDarkShadow(): JSPColorUIResource; static; overload;
    class function getControlInfo(): JSPColorUIResource; static; overload;
    class function getControlHighlight(): JSPColorUIResource; static; overload;
    class function getControlDisabled(): JSPColorUIResource; static; overload;
    class function getPrimaryControl(): JSPColorUIResource; static; overload;
    class function getPrimaryControlShadow(): JSPColorUIResource; static; overload;
    class function getPrimaryControlDarkShadow(): JSPColorUIResource; static; overload;
    class function getPrimaryControlInfo(): JSPColorUIResource; static; overload;
    class function getPrimaryControlHighlight(): JSPColorUIResource; static; overload;
    class function getSystemTextColor(): JSPColorUIResource; static; overload;
    class function getControlTextColor(): JSPColorUIResource; static; overload;
    class function getInactiveControlTextColor(): JSPColorUIResource; static; overload;
    class function getInactiveSystemTextColor(): JSPColorUIResource; static; overload;
    class function getUserTextColor(): JSPColorUIResource; static; overload;
    class function getTextHighlightColor(): JSPColorUIResource; static; overload;
    class function getHighlightedTextColor(): JSPColorUIResource; static; overload;
    class function getWindowBackground(): JSPColorUIResource; static; overload;
    class function getWindowTitleBackground(): JSPColorUIResource; static; overload;
    class function getWindowTitleForeground(): JSPColorUIResource; static; overload;
    class function getWindowTitleInactiveBackground(): JSPColorUIResource; static; overload;
    class function getWindowTitleInactiveForeground(): JSPColorUIResource; static; overload;
    class function getMenuBackground(): JSPColorUIResource; static; overload;
    class function getMenuForeground(): JSPColorUIResource; static; overload;
    class function getMenuSelectedBackground(): JSPColorUIResource; static; overload;
    class function getMenuSelectedForeground(): JSPColorUIResource; static; overload;
    class function getMenuDisabledForeground(): JSPColorUIResource; static; overload;
    class function getSeparatorBackground(): JSPColorUIResource; static; overload;
    class function getSeparatorForeground(): JSPColorUIResource; static; overload;
    class function getAcceleratorForeground(): JSPColorUIResource; static; overload;
    class function getAcceleratorSelectedForeground(): JSPColorUIResource; static; overload;
    function getLayoutStyle(): JSLayoutStyle; overload; virtual;
  end;

  JSPSSynthLookAndFeel = class external 'javax.swing.plaf.synth' name 'SynthLookAndFeel' (JSPBBasicLookAndFeel)
  public
    type
      InnerAATextListener = class;
      Arr1InnerAATextListener = array of InnerAATextListener;
      Arr2InnerAATextListener = array of Arr1InnerAATextListener;
      Arr3InnerAATextListener = array of Arr2InnerAATextListener;
      InnerHandler = class;
      Arr1InnerHandler = array of InnerHandler;
      Arr2InnerHandler = array of Arr1InnerHandler;
      Arr3InnerHandler = array of Arr2InnerHandler;
      InnerAATextListener = class external 'javax.swing.plaf.synth' name 'AATextListener' 
      end;

      InnerHandler = class external 'javax.swing.plaf.synth' name 'Handler' 
      end;

  public
    class procedure setStyleFactory(para1: JSPSSynthStyleFactory); static; overload;
    class function getStyleFactory(): JSPSSynthStyleFactory; static; overload;
    class function getStyle(para1: JSJComponent; para2: JSPSRegion): JSPSSynthStyle; static; overload;
    class procedure updateStyles(para1: JAComponent); static; overload;
    class function getRegion(para1: JSJComponent): JSPSRegion; static; overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    constructor create(); overload;
    procedure load(para1: JIInputStream; para2: JLClass); overload; virtual;  // throws java.text.ParseException
    procedure load(para1: JNURL); overload; virtual;  // throws java.text.ParseException, java.io.IOException
    procedure initialize(); overload; virtual;
    procedure uninitialize(); overload; virtual;
    function getDefaults(): JSUIDefaults; overload; virtual;
    function isSupportedLookAndFeel(): jboolean; overload; virtual;
    function isNativeLookAndFeel(): jboolean; overload; virtual;
    function getDescription(): JLString; overload; virtual;
    function getName(): JLString; overload; virtual;
    function getID(): JLString; overload; virtual;
    function shouldUpdateStyleOnAncestorChanged(): jboolean; overload; virtual;
  end;

  JSPSSynthMenuUI = class external 'javax.swing.plaf.synth' name 'SynthMenuUI' (JSPBBasicMenuUI, JBPropertyChangeListener, SSPSSynthUI)
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    procedure installDefaults(); overload; virtual;
    procedure installListeners(); overload; virtual;
  public
    procedure uninstallUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure uninstallDefaults(); overload; virtual;
    procedure uninstallListeners(); overload; virtual;
  public
    function getContext(para1: JSJComponent): JSPSSynthContext; overload; virtual;
    function getContext(para1: JSJComponent; para2: JSPSRegion): JSPSSynthContext; overload; virtual;
  strict protected
    function getPreferredMenuItemSize(para1: JSJComponent; para2: JSIcon; para3: JSIcon; para4: jint): JADimension; overload; virtual;
  public
    procedure update(para1: JAGraphics; para2: JSJComponent); overload; virtual;
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paint(para1: JSPSSynthContext; para2: JAGraphics); overload; virtual;
  public
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  end;

  JSPSSynthCheckBoxMenuItemUI = class external 'javax.swing.plaf.synth' name 'SynthCheckBoxMenuItemUI' (JSPSSynthMenuItemUI)
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    function getPropertyPrefix(): JLString; overload; virtual;
  public
    procedure processMouseEvent(para1: JSJMenuItem; para2: JAEMouseEvent; para3: Arr1JSMenuElement; para4: JSMenuSelectionManager); overload; virtual;
    procedure processMouseEvent(para1: JSJMenuItem; para2: JAEMouseEvent; var para3: array of JSMenuElement; para4: JSMenuSelectionManager); overload; virtual;
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
  end;

  JSPSSynthRadioButtonMenuItemUI = class external 'javax.swing.plaf.synth' name 'SynthRadioButtonMenuItemUI' (JSPSSynthMenuItemUI)
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    function getPropertyPrefix(): JLString; overload; virtual;
  public
    procedure processMouseEvent(para1: JSJMenuItem; para2: JAEMouseEvent; para3: Arr1JSMenuElement; para4: JSMenuSelectionManager); overload; virtual;
    procedure processMouseEvent(para1: JSJMenuItem; para2: JAEMouseEvent; var para3: array of JSMenuElement; para4: JSMenuSelectionManager); overload; virtual;
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
  end;

  JSPBBasicCheckBoxUI = class external 'javax.swing.plaf.basic' name 'BasicCheckBoxUI' (JSPBBasicRadioButtonUI)
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    function getPropertyPrefix(): JLString; overload; virtual;
  end;

  JSPMMetalRadioButtonUI = class external 'javax.swing.plaf.metal' name 'MetalRadioButtonUI' (JSPBBasicRadioButtonUI)
  strict protected
    var
      ffocusColor: JAColor; external name 'focusColor';
      fselectColor: JAColor; external name 'selectColor';
      fdisabledTextColor: JAColor; external name 'disabledTextColor';
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    procedure installDefaults(para1: JSAbstractButton); overload; virtual;
  strict protected
    procedure uninstallDefaults(para1: JSAbstractButton); overload; virtual;
    function getSelectColor(): JAColor; overload; virtual;
    function getDisabledTextColor(): JAColor; overload; virtual;
    function getFocusColor(): JAColor; overload; virtual;
  public
    procedure paint(para1: JAGraphics; para2: JSJComponent); overload; virtual;
  strict protected
    procedure paintFocus(para1: JAGraphics; para2: JARectangle; para3: JADimension); overload; virtual;
  end;

  JSPSSynthRadioButtonUI = class external 'javax.swing.plaf.synth' name 'SynthRadioButtonUI' (JSPSSynthToggleButtonUI)
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    function getPropertyPrefix(): JLString; overload; virtual;
    function getSizingIcon(para1: JSAbstractButton): JSIcon; overload; virtual;
  public
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
  end;

  JSTHHTMLEditorKit = class external 'javax.swing.text.html' name 'HTMLEditorKit' (JSTStyledEditorKit, JAAccessible)
  public
    type
      InnerActivateLinkAction = class;
      Arr1InnerActivateLinkAction = array of InnerActivateLinkAction;
      Arr2InnerActivateLinkAction = array of Arr1InnerActivateLinkAction;
      Arr3InnerActivateLinkAction = array of Arr2InnerActivateLinkAction;
      InnerBeginAction = class;
      Arr1InnerBeginAction = array of InnerBeginAction;
      Arr2InnerBeginAction = array of Arr1InnerBeginAction;
      Arr3InnerBeginAction = array of Arr2InnerBeginAction;
      InnerInsertHRAction = class;
      Arr1InnerInsertHRAction = array of InnerInsertHRAction;
      Arr2InnerInsertHRAction = array of Arr1InnerInsertHRAction;
      Arr3InnerInsertHRAction = array of Arr2InnerInsertHRAction;
      InnerNavigateLinkAction = class;
      Arr1InnerNavigateLinkAction = array of InnerNavigateLinkAction;
      Arr2InnerNavigateLinkAction = array of Arr1InnerNavigateLinkAction;
      Arr3InnerNavigateLinkAction = array of Arr2InnerNavigateLinkAction;
      InnerActivateLinkAction = class external 'javax.swing.text.html' name 'ActivateLinkAction' 
      end;

      InnerBeginAction = class external 'javax.swing.text.html' name 'BeginAction' 
      end;

      InnerInsertHRAction = class external 'javax.swing.text.html' name 'InsertHRAction' 
      end;

      InnerNavigateLinkAction = class external 'javax.swing.text.html' name 'NavigateLinkAction' 
      public
        type
          InnerFocusHighlightPainter = class;
          Arr1InnerFocusHighlightPainter = array of InnerFocusHighlightPainter;
          Arr2InnerFocusHighlightPainter = array of Arr1InnerFocusHighlightPainter;
          Arr3InnerFocusHighlightPainter = array of Arr2InnerFocusHighlightPainter;
          InnerFocusHighlightPainter = class external 'javax.swing.text.html' name 'FocusHighlightPainter' 
          end;

      end;

  public
    type
      InnerHTMLFactory = class;
      Arr1InnerHTMLFactory = array of InnerHTMLFactory;
      Arr2InnerHTMLFactory = array of Arr1InnerHTMLFactory;
      Arr3InnerHTMLFactory = array of Arr2InnerHTMLFactory;
      InnerParserCallback = class;
      Arr1InnerParserCallback = array of InnerParserCallback;
      Arr2InnerParserCallback = array of Arr1InnerParserCallback;
      Arr3InnerParserCallback = array of Arr2InnerParserCallback;
      InnerHTMLTextAction = class;
      Arr1InnerHTMLTextAction = array of InnerHTMLTextAction;
      Arr2InnerHTMLTextAction = array of Arr1InnerHTMLTextAction;
      Arr3InnerHTMLTextAction = array of Arr2InnerHTMLTextAction;
      InnerParser = class;
      Arr1InnerParser = array of InnerParser;
      Arr2InnerParser = array of Arr1InnerParser;
      Arr3InnerParser = array of Arr2InnerParser;
      InnerLinkController = class;
      Arr1InnerLinkController = array of InnerLinkController;
      Arr2InnerLinkController = array of Arr1InnerLinkController;
      Arr3InnerLinkController = array of Arr2InnerLinkController;
      InnerInsertHTMLTextAction = class;
      Arr1InnerInsertHTMLTextAction = array of InnerInsertHTMLTextAction;
      Arr2InnerInsertHTMLTextAction = array of Arr1InnerInsertHTMLTextAction;
      Arr3InnerInsertHTMLTextAction = array of Arr2InnerInsertHTMLTextAction;
      InnerHTMLFactory = class external 'javax.swing.text.html' name 'HTMLFactory' (JLObject, JSTViewFactory)
      public
        type
          InnerBodyBlockView = class;
          Arr1InnerBodyBlockView = array of InnerBodyBlockView;
          Arr2InnerBodyBlockView = array of Arr1InnerBodyBlockView;
          Arr3InnerBodyBlockView = array of Arr2InnerBodyBlockView;
          InnerBodyBlockView = class external 'javax.swing.text.html' name 'BodyBlockView' 
          end;

      public
        constructor create(); overload;
        function create_(para1: JSTElement): JSTView; external name 'create'; overload; virtual;
      end;

      InnerParserCallback = class external 'javax.swing.text.html' name 'ParserCallback' (JLObject)
      public
        final class var
          fIMPLIED: JLObject; external name 'IMPLIED';
      public
        constructor create(); overload;
        procedure flush(); overload; virtual;  // throws javax.swing.text.BadLocationException
        procedure handleText(para1: Arr1jchar; para2: jint); overload; virtual;
        procedure handleText(var para1: array of jchar; para2: jint); overload; virtual;
        procedure handleComment(para1: Arr1jchar; para2: jint); overload; virtual;
        procedure handleComment(var para1: array of jchar; para2: jint); overload; virtual;
        procedure handleStartTag(para1: JSTHHTML.InnerTag; para2: JSTMutableAttributeSet; para3: jint); overload; virtual;
        procedure handleEndTag(para1: JSTHHTML.InnerTag; para2: jint); overload; virtual;
        procedure handleSimpleTag(para1: JSTHHTML.InnerTag; para2: JSTMutableAttributeSet; para3: jint); overload; virtual;
        procedure handleError(para1: JLString; para2: jint); overload; virtual;
        procedure handleEndOfLineString(para1: JLString); overload; virtual;
      end;

      InnerHTMLTextAction = class abstract external 'javax.swing.text.html' name 'HTMLTextAction' (JSTStyledEditorKit.InnerStyledTextAction)
      public
        constructor create(para1: JLString); overload;
      strict protected
        function getHTMLDocument(para1: JSJEditorPane): JSTHHTMLDocument; overload; virtual;
        function getHTMLEditorKit(para1: JSJEditorPane): JSTHHTMLEditorKit; overload; virtual;
        function getElementsAt(para1: JSTHHTMLDocument; para2: jint): Arr1JSTElement; overload; virtual;
        function elementCountToTag(para1: JSTHHTMLDocument; para2: jint; para3: JSTHHTML.InnerTag): jint; overload; virtual;
        function findElementMatchingTag(para1: JSTHHTMLDocument; para2: jint; para3: JSTHHTML.InnerTag): JSTElement; overload; virtual;
      end;

      InnerParser = class abstract external 'javax.swing.text.html' name 'Parser' (JLObject)
      public
        constructor create(); overload;
        procedure parse(para1: JIReader; para2: JSTHHTMLEditorKit.InnerParserCallback; para3: jboolean); overload; virtual; abstract;  // throws java.io.IOException
      end;

      InnerLinkController = class external 'javax.swing.text.html' name 'LinkController' (JAEMouseAdapter, JAEMouseMotionListener, JISerializable)
      public
        constructor create(); overload;
        procedure mouseClicked(para1: JAEMouseEvent); overload; virtual;
        procedure mouseDragged(para1: JAEMouseEvent); overload; virtual;
        procedure mouseMoved(para1: JAEMouseEvent); overload; virtual;
      strict protected
        procedure activateLink(para1: jint; para2: JSJEditorPane); overload; virtual;
      end;

      InnerInsertHTMLTextAction = class external 'javax.swing.text.html' name 'InsertHTMLTextAction' (InnerHTMLTextAction)
      strict protected
        var
          fhtml: JLString; external name 'html';
          fparentTag: JSTHHTML.InnerTag; external name 'parentTag';
          faddTag: JSTHHTML.InnerTag; external name 'addTag';
          falternateParentTag: JSTHHTML.InnerTag; external name 'alternateParentTag';
          falternateAddTag: JSTHHTML.InnerTag; external name 'alternateAddTag';
      public
        constructor create(para1: JLString; para2: JLString; para3: JSTHHTML.InnerTag; para4: JSTHHTML.InnerTag); overload;
        constructor create(para1: JLString; para2: JLString; para3: JSTHHTML.InnerTag; para4: JSTHHTML.InnerTag; para5: JSTHHTML.InnerTag; para6: JSTHHTML.InnerTag); overload;
      strict protected
        procedure insertHTML(para1: JSJEditorPane; para2: JSTHHTMLDocument; para3: jint; para4: JLString; para5: jint; para6: jint; para7: JSTHHTML.InnerTag); overload; virtual;
        procedure insertAtBoundary(para1: JSJEditorPane; para2: JSTHHTMLDocument; para3: jint; para4: JSTElement; para5: JLString; para6: JSTHHTML.InnerTag; para7: JSTHHTML.InnerTag); overload; virtual;
        procedure insertAtBoundry(para1: JSJEditorPane; para2: JSTHHTMLDocument; para3: jint; para4: JSTElement; para5: JLString; para6: JSTHHTML.InnerTag; para7: JSTHHTML.InnerTag); overload; virtual;
      public
        procedure actionPerformed(para1: JAEActionEvent); overload; virtual;
      end;

  public
    const
      DEFAULT_CSS = 'default.css';
      BOLD_ACTION = 'html-bold-action';
      ITALIC_ACTION = 'html-italic-action';
      PARA_INDENT_LEFT = 'html-para-indent-left';
      PARA_INDENT_RIGHT = 'html-para-indent-right';
      FONT_CHANGE_BIGGER = 'html-font-bigger';
      FONT_CHANGE_SMALLER = 'html-font-smaller';
      COLOR_ACTION = 'html-color-action';
      LOGICAL_STYLE_ACTION = 'html-logical-style-action';
      IMG_ALIGN_TOP = 'html-image-align-top';
      IMG_ALIGN_MIDDLE = 'html-image-align-middle';
      IMG_ALIGN_BOTTOM = 'html-image-align-bottom';
      IMG_BORDER = 'html-image-border';
  public
    constructor create(); overload;
    function getContentType(): JLString; overload; virtual;
    function getViewFactory(): JSTViewFactory; overload; virtual;
    function createDefaultDocument(): JSTDocument; overload; virtual;
    procedure read(para1: JIReader; para2: JSTDocument; para3: jint); overload; virtual;  // throws java.io.IOException, javax.swing.text.BadLocationException
    procedure insertHTML(para1: JSTHHTMLDocument; para2: jint; para3: JLString; para4: jint; para5: jint; para6: JSTHHTML.InnerTag); overload; virtual;  // throws javax.swing.text.BadLocationException, java.io.IOException
    procedure write(para1: JIWriter; para2: JSTDocument; para3: jint; para4: jint); overload; virtual;  // throws java.io.IOException, javax.swing.text.BadLocationException
    procedure install(para1: JSJEditorPane); overload; virtual;
    procedure deinstall(para1: JSJEditorPane); overload; virtual;
    procedure setStyleSheet(para1: JSTHStyleSheet); overload; virtual;
    function getStyleSheet(): JSTHStyleSheet; overload; virtual;
    function getActions(): Arr1JSAction; overload; virtual;
  strict protected
    procedure createInputAttributes(para1: JSTElement; para2: JSTMutableAttributeSet); overload; virtual;
  public
    function getInputAttributes(): JSTMutableAttributeSet; overload; virtual;
    procedure setDefaultCursor(para1: JACursor); overload; virtual;
    function getDefaultCursor(): JACursor; overload; virtual;
    procedure setLinkCursor(para1: JACursor); overload; virtual;
    function getLinkCursor(): JACursor; overload; virtual;
    function isAutoFormSubmission(): jboolean; overload; virtual;
    procedure setAutoFormSubmission(para1: jboolean); overload; virtual;
    function clone(): JLObject; overload; virtual;
  strict protected
    function getParser(): JSTHHTMLEditorKit.InnerParser; overload; virtual;
  public
    function getAccessibleContext(): JAAccessibleContext; overload; virtual;
  end;

  JSTRRTFEditorKit = class external 'javax.swing.text.rtf' name 'RTFEditorKit' (JSTStyledEditorKit)
  public
    constructor create(); overload;
    function getContentType(): JLString; overload; virtual;
    procedure read(para1: JIInputStream; para2: JSTDocument; para3: jint); overload; virtual;  // throws java.io.IOException, javax.swing.text.BadLocationException
    procedure write(para1: JIOutputStream; para2: JSTDocument; para3: jint; para4: jint); overload; virtual;  // throws java.io.IOException, javax.swing.text.BadLocationException
    procedure read(para1: JIReader; para2: JSTDocument; para3: jint); overload; virtual;  // throws java.io.IOException, javax.swing.text.BadLocationException
    procedure write(para1: JIWriter; para2: JSTDocument; para3: jint; para4: jint); overload; virtual;  // throws java.io.IOException, javax.swing.text.BadLocationException
  end;

  JSTHLineView = class external 'javax.swing.text.html' name 'LineView' (JSTHParagraphView)
  public
    constructor create(para1: JSTElement); overload;
    function isVisible(): jboolean; overload; virtual;
    function getMinimumSpan(para1: jint): jfloat; overload; virtual;
    function getResizeWeight(para1: jint): jint; overload; virtual;
    function getAlignment(para1: jint): jfloat; overload; virtual;
  strict protected
    procedure layout(para1: jint; para2: jint); overload; virtual;
  public
    function nextTabStop(para1: jfloat; para2: jint): jfloat; overload; virtual;
  strict protected
    function getPreTab(para1: jfloat; para2: jint): jfloat; overload; virtual;
    function getCharactersPerTab(): jint; overload; virtual;
  end;

  JSPSSynthTextPaneUI = class external 'javax.swing.plaf.synth' name 'SynthTextPaneUI' (JSPSSynthEditorPaneUI)
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    function getPropertyPrefix(): JLString; overload; virtual;
  public
    procedure installUI(para1: JSJComponent); overload; virtual;
  strict protected
    procedure propertyChange(para1: JBPropertyChangeEvent); overload; virtual;
  public
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
  end;

  JSPSSynthFormattedTextFieldUI = class external 'javax.swing.plaf.synth' name 'SynthFormattedTextFieldUI' (JSPSSynthTextFieldUI)
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    function getPropertyPrefix(): JLString; overload; virtual;
  public
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
  end;

  JSPSSynthPasswordFieldUI = class external 'javax.swing.plaf.synth' name 'SynthPasswordFieldUI' (JSPSSynthTextFieldUI)
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    function getPropertyPrefix(): JLString; overload; virtual;
  public
    function create_(para1: JSTElement): JSTView; external name 'create'; overload; virtual;
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
  strict protected
    procedure installKeyboardActions(); overload; virtual;
  end;

  JSTInternationalFormatter = class external 'javax.swing.text' name 'InternationalFormatter' (JSTDefaultFormatter)
  public
    type
      InnerExtendedReplaceHolder = class;
      Arr1InnerExtendedReplaceHolder = array of InnerExtendedReplaceHolder;
      Arr2InnerExtendedReplaceHolder = array of Arr1InnerExtendedReplaceHolder;
      Arr3InnerExtendedReplaceHolder = array of Arr2InnerExtendedReplaceHolder;
      InnerIncrementAction = class;
      Arr1InnerIncrementAction = array of InnerIncrementAction;
      Arr2InnerIncrementAction = array of Arr1InnerIncrementAction;
      Arr3InnerIncrementAction = array of Arr2InnerIncrementAction;
      InnerExtendedReplaceHolder = class external 'javax.swing.text' name 'ExtendedReplaceHolder' 
      end;

      InnerIncrementAction = class external 'javax.swing.text' name 'IncrementAction' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: JTFormat); overload;
    procedure setFormat(para1: JTFormat); overload; virtual;
    function getFormat(): JTFormat; overload; virtual;
    procedure setMinimum(para1: JLComparable); overload; virtual;
    function getMinimum(): JLComparable; overload; virtual;
    procedure setMaximum(para1: JLComparable); overload; virtual;
    function getMaximum(): JLComparable; overload; virtual;
    procedure install(para1: JSJFormattedTextField); overload; virtual;
    function valueToString(para1: JLObject): JLString; overload; virtual;  // throws java.text.ParseException
    function stringToValue(para1: JLString): JLObject; overload; virtual;  // throws java.text.ParseException
    function getFields(para1: jint): JTFormat.Arr1InnerField; overload; virtual;
    function clone(): JLObject; overload; virtual;  // throws java.lang.CloneNotSupportedException
  strict protected
    function getActions(): Arr1JSAction; overload; virtual;
  end;

  JSTMaskFormatter = class external 'javax.swing.text' name 'MaskFormatter' (JSTDefaultFormatter)
  public
    type
      InnerAlphaNumericCharacter = class;
      Arr1InnerAlphaNumericCharacter = array of InnerAlphaNumericCharacter;
      Arr2InnerAlphaNumericCharacter = array of Arr1InnerAlphaNumericCharacter;
      Arr3InnerAlphaNumericCharacter = array of Arr2InnerAlphaNumericCharacter;
      InnerCharCharacter = class;
      Arr1InnerCharCharacter = array of InnerCharCharacter;
      Arr2InnerCharCharacter = array of Arr1InnerCharCharacter;
      Arr3InnerCharCharacter = array of Arr2InnerCharCharacter;
      InnerDigitMaskCharacter = class;
      Arr1InnerDigitMaskCharacter = array of InnerDigitMaskCharacter;
      Arr2InnerDigitMaskCharacter = array of Arr1InnerDigitMaskCharacter;
      Arr3InnerDigitMaskCharacter = array of Arr2InnerDigitMaskCharacter;
      InnerHexCharacter = class;
      Arr1InnerHexCharacter = array of InnerHexCharacter;
      Arr2InnerHexCharacter = array of Arr1InnerHexCharacter;
      Arr3InnerHexCharacter = array of Arr2InnerHexCharacter;
      InnerLiteralCharacter = class;
      Arr1InnerLiteralCharacter = array of InnerLiteralCharacter;
      Arr2InnerLiteralCharacter = array of Arr1InnerLiteralCharacter;
      Arr3InnerLiteralCharacter = array of Arr2InnerLiteralCharacter;
      InnerLowerCaseCharacter = class;
      Arr1InnerLowerCaseCharacter = array of InnerLowerCaseCharacter;
      Arr2InnerLowerCaseCharacter = array of Arr1InnerLowerCaseCharacter;
      Arr3InnerLowerCaseCharacter = array of Arr2InnerLowerCaseCharacter;
      InnerUpperCaseCharacter = class;
      Arr1InnerUpperCaseCharacter = array of InnerUpperCaseCharacter;
      Arr2InnerUpperCaseCharacter = array of Arr1InnerUpperCaseCharacter;
      Arr3InnerUpperCaseCharacter = array of Arr2InnerUpperCaseCharacter;
      InnerMaskCharacter = class;
      Arr1InnerMaskCharacter = array of InnerMaskCharacter;
      Arr2InnerMaskCharacter = array of Arr1InnerMaskCharacter;
      Arr3InnerMaskCharacter = array of Arr2InnerMaskCharacter;
      InnerAlphaNumericCharacter = class external 'javax.swing.text' name 'AlphaNumericCharacter' 
      end;

      InnerCharCharacter = class external 'javax.swing.text' name 'CharCharacter' 
      end;

      InnerDigitMaskCharacter = class external 'javax.swing.text' name 'DigitMaskCharacter' 
      end;

      InnerHexCharacter = class external 'javax.swing.text' name 'HexCharacter' 
      end;

      InnerLiteralCharacter = class external 'javax.swing.text' name 'LiteralCharacter' 
      end;

      InnerLowerCaseCharacter = class external 'javax.swing.text' name 'LowerCaseCharacter' 
      end;

      InnerUpperCaseCharacter = class external 'javax.swing.text' name 'UpperCaseCharacter' 
      end;

      InnerMaskCharacter = class external 'javax.swing.text' name 'MaskCharacter' 
      end;

  public
    constructor create(); overload;
    constructor create(para1: JLString); overload;  // throws java.text.ParseException
    procedure setMask(para1: JLString); overload; virtual;  // throws java.text.ParseException
    function getMask(): JLString; overload; virtual;
    procedure setValidCharacters(para1: JLString); overload; virtual;
    function getValidCharacters(): JLString; overload; virtual;
    procedure setInvalidCharacters(para1: JLString); overload; virtual;
    function getInvalidCharacters(): JLString; overload; virtual;
    procedure setPlaceholder(para1: JLString); overload; virtual;
    function getPlaceholder(): JLString; overload; virtual;
    procedure setPlaceholderCharacter(para1: jchar); overload; virtual;
    function getPlaceholderCharacter(): jchar; overload; virtual;
    procedure setValueContainsLiteralCharacters(para1: jboolean); overload; virtual;
    function getValueContainsLiteralCharacters(): jboolean; overload; virtual;
    function stringToValue(para1: JLString): JLObject; overload; virtual;  // throws java.text.ParseException
    function valueToString(para1: JLObject): JLString; overload; virtual;  // throws java.text.ParseException
    procedure install(para1: JSJFormattedTextField); overload; virtual;
  end;

  JSPMMetalCheckBoxUI = class external 'javax.swing.plaf.metal' name 'MetalCheckBoxUI' (JSPMMetalRadioButtonUI)
  public
    constructor create(); overload;
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
    function getPropertyPrefix(): JLString; overload; virtual;
    procedure installDefaults(para1: JSAbstractButton); overload; virtual;
  strict protected
    procedure uninstallDefaults(para1: JSAbstractButton); overload; virtual;
  end;

  JSPSSynthCheckBoxUI = class external 'javax.swing.plaf.synth' name 'SynthCheckBoxUI' (JSPSSynthRadioButtonUI)
  public
    class function createUI(para1: JSJComponent): JSPComponentUI; static; overload;
  strict protected
    function getPropertyPrefix(): JLString; overload; virtual;
  public
    procedure paintBorder(para1: JSPSSynthContext; para2: JAGraphics; para3: jint; para4: jint; para5: jint; para6: jint); overload; virtual;
  end;

  JSTHHTMLDocument = class external 'javax.swing.text.html' name 'HTMLDocument' (JSTDefaultStyledDocument)
  public
    type
      InnerFixedLengthDocument = class;
      Arr1InnerFixedLengthDocument = array of InnerFixedLengthDocument;
      Arr2InnerFixedLengthDocument = array of Arr1InnerFixedLengthDocument;
      Arr3InnerFixedLengthDocument = array of Arr2InnerFixedLengthDocument;
      InnerLeafIterator = class;
      Arr1InnerLeafIterator = array of InnerLeafIterator;
      Arr2InnerLeafIterator = array of Arr1InnerLeafIterator;
      Arr3InnerLeafIterator = array of Arr2InnerLeafIterator;
      InnerTaggedAttributeSet = class;
      Arr1InnerTaggedAttributeSet = array of InnerTaggedAttributeSet;
      Arr2InnerTaggedAttributeSet = array of Arr1InnerTaggedAttributeSet;
      Arr3InnerTaggedAttributeSet = array of Arr2InnerTaggedAttributeSet;
      InnerFixedLengthDocument = class external 'javax.swing.text.html' name 'FixedLengthDocument' 
      end;

      InnerLeafIterator = class external 'javax.swing.text.html' name 'LeafIterator' 
      end;

      InnerTaggedAttributeSet = class external 'javax.swing.text.html' name 'TaggedAttributeSet' 
      end;

  public
    type
      InnerBlockElement = class;
      Arr1InnerBlockElement = array of InnerBlockElement;
      Arr2InnerBlockElement = array of Arr1InnerBlockElement;
      Arr3InnerBlockElement = array of Arr2InnerBlockElement;
      InnerRunElement = class;
      Arr1InnerRunElement = array of InnerRunElement;
      Arr2InnerRunElement = array of Arr1InnerRunElement;
      Arr3InnerRunElement = array of Arr2InnerRunElement;
      InnerHTMLReader = class;
      Arr1InnerHTMLReader = array of InnerHTMLReader;
      Arr2InnerHTMLReader = array of Arr1InnerHTMLReader;
      Arr3InnerHTMLReader = array of Arr2InnerHTMLReader;
      InnerIterator = class;
      Arr1InnerIterator = array of InnerIterator;
      Arr2InnerIterator = array of Arr1InnerIterator;
      Arr3InnerIterator = array of Arr2InnerIterator;
      InnerBlockElement = class external 'javax.swing.text.html' name 'BlockElement' 
      end;

      InnerRunElement = class external 'javax.swing.text.html' name 'RunElement' 
      end;

      InnerHTMLReader = class external 'javax.swing.text.html' name 'HTMLReader' 
      public
        type
          InnerAnchorAction = class;
          Arr1InnerAnchorAction = array of InnerAnchorAction;
          Arr2InnerAnchorAction = array of Arr1InnerAnchorAction;
          Arr3InnerAnchorAction = array of Arr2InnerAnchorAction;
          InnerAreaAction = class;
          Arr1InnerAreaAction = array of InnerAreaAction;
          Arr2InnerAreaAction = array of Arr1InnerAreaAction;
          Arr3InnerAreaAction = array of Arr2InnerAreaAction;
          InnerBaseAction = class;
          Arr1InnerBaseAction = array of InnerBaseAction;
          Arr2InnerBaseAction = array of Arr1InnerBaseAction;
          Arr3InnerBaseAction = array of Arr2InnerBaseAction;
          InnerConvertAction = class;
          Arr1InnerConvertAction = array of InnerConvertAction;
          Arr2InnerConvertAction = array of Arr1InnerConvertAction;
          Arr3InnerConvertAction = array of Arr2InnerConvertAction;
          InnerFormTagAction = class;
          Arr1InnerFormTagAction = array of InnerFormTagAction;
          Arr2InnerFormTagAction = array of Arr1InnerFormTagAction;
          Arr3InnerFormTagAction = array of Arr2InnerFormTagAction;
          InnerHeadAction = class;
          Arr1InnerHeadAction = array of InnerHeadAction;
          Arr2InnerHeadAction = array of Arr1InnerHeadAction;
          Arr3InnerHeadAction = array of Arr2InnerHeadAction;
          InnerLinkAction = class;
          Arr1InnerLinkAction = array of InnerLinkAction;
          Arr2InnerLinkAction = array of Arr1InnerLinkAction;
          Arr3InnerLinkAction = array of Arr2InnerLinkAction;
          InnerMapAction = class;
          Arr1InnerMapAction = array of InnerMapAction;
          Arr2InnerMapAction = array of Arr1InnerMapAction;
          Arr3InnerMapAction = array of Arr2InnerMapAction;
          InnerMetaAction = class;
          Arr1InnerMetaAction = array of InnerMetaAction;
          Arr2InnerMetaAction = array of Arr1InnerMetaAction;
          Arr3InnerMetaAction = array of Arr2InnerMetaAction;
          InnerObjectAction = class;
          Arr1InnerObjectAction = array of InnerObjectAction;
          Arr2InnerObjectAction = array of Arr1InnerObjectAction;
          Arr3InnerObjectAction = array of Arr2InnerObjectAction;
          InnerStyleAction = class;
          Arr1InnerStyleAction = array of InnerStyleAction;
          Arr2InnerStyleAction = array of Arr1InnerStyleAction;
          Arr3InnerStyleAction = array of Arr2InnerStyleAction;
          InnerTitleAction = class;
          Arr1InnerTitleAction = array of InnerTitleAction;
          Arr2InnerTitleAction = array of Arr1InnerTitleAction;
          Arr3InnerTitleAction = array of Arr2InnerTitleAction;
          InnerAnchorAction = class external 'javax.swing.text.html' name 'AnchorAction' 
          end;

          InnerAreaAction = class external 'javax.swing.text.html' name 'AreaAction' 
          end;

          InnerBaseAction = class external 'javax.swing.text.html' name 'BaseAction' 
          end;

          InnerConvertAction = class external 'javax.swing.text.html' name 'ConvertAction' 
          end;

          InnerFormTagAction = class external 'javax.swing.text.html' name 'FormTagAction' 
          end;

          InnerHeadAction = class external 'javax.swing.text.html' name 'HeadAction' 
          end;

          InnerLinkAction = class external 'javax.swing.text.html' name 'LinkAction' 
          end;

          InnerMapAction = class external 'javax.swing.text.html' name 'MapAction' 
          end;

          InnerMetaAction = class external 'javax.swing.text.html' name 'MetaAction' 
          end;

          InnerObjectAction = class external 'javax.swing.text.html' name 'ObjectAction' 
          end;

          InnerStyleAction = class external 'javax.swing.text.html' name 'StyleAction' 
          end;

          InnerTitleAction = class external 'javax.swing.text.html' name 'TitleAction' 
          end;

      public
        type
          InnerBlockAction = class;
          Arr1InnerBlockAction = array of InnerBlockAction;
          Arr2InnerBlockAction = array of Arr1InnerBlockAction;
          Arr3InnerBlockAction = array of Arr2InnerBlockAction;
          InnerCharacterAction = class;
          Arr1InnerCharacterAction = array of InnerCharacterAction;
          Arr2InnerCharacterAction = array of Arr1InnerCharacterAction;
          Arr3InnerCharacterAction = array of Arr2InnerCharacterAction;
          InnerFormAction = class;
          Arr1InnerFormAction = array of InnerFormAction;
          Arr2InnerFormAction = array of Arr1InnerFormAction;
          Arr3InnerFormAction = array of Arr2InnerFormAction;
          InnerHiddenAction = class;
          Arr1InnerHiddenAction = array of InnerHiddenAction;
          Arr2InnerHiddenAction = array of Arr1InnerHiddenAction;
          Arr3InnerHiddenAction = array of Arr2InnerHiddenAction;
          InnerIsindexAction = class;
          Arr1InnerIsindexAction = array of InnerIsindexAction;
          Arr2InnerIsindexAction = array of Arr1InnerIsindexAction;
          Arr3InnerIsindexAction = array of Arr2InnerIsindexAction;
          InnerParagraphAction = class;
          Arr1InnerParagraphAction = array of InnerParagraphAction;
          Arr2InnerParagraphAction = array of Arr1InnerParagraphAction;
          Arr3InnerParagraphAction = array of Arr2InnerParagraphAction;
          InnerPreAction = class;
          Arr1InnerPreAction = array of InnerPreAction;
          Arr2InnerPreAction = array of Arr1InnerPreAction;
          Arr3InnerPreAction = array of Arr2InnerPreAction;
          InnerSpecialAction = class;
          Arr1InnerSpecialAction = array of InnerSpecialAction;
          Arr2InnerSpecialAction = array of Arr1InnerSpecialAction;
          Arr3InnerSpecialAction = array of Arr2InnerSpecialAction;
          InnerTagAction = class;
          Arr1InnerTagAction = array of InnerTagAction;
          Arr2InnerTagAction = array of Arr1InnerTagAction;
          Arr3InnerTagAction = array of Arr2InnerTagAction;
          InnerBlockAction = class external 'javax.swing.text.html' name 'BlockAction' 
          end;

          InnerCharacterAction = class external 'javax.swing.text.html' name 'CharacterAction' 
          end;

          InnerFormAction = class external 'javax.swing.text.html' name 'FormAction' 
          end;

          InnerHiddenAction = class external 'javax.swing.text.html' name 'HiddenAction' 
          end;

          InnerIsindexAction = class external 'javax.swing.text.html' name 'IsindexAction' 
          end;

          InnerParagraphAction = class external 'javax.swing.text.html' name 'ParagraphAction' 
          end;

          InnerPreAction = class external 'javax.swing.text.html' name 'PreAction' 
          end;

          InnerSpecialAction = class external 'javax.swing.text.html' name 'SpecialAction' 
          end;

          InnerTagAction = class external 'javax.swing.text.html' name 'TagAction' 
          end;

      end;

      InnerIterator = class abstract external 'javax.swing.text.html' name 'Iterator' (JLObject)
      public
        constructor create(); overload;
        function getAttributes(): JSTAttributeSet; overload; virtual; abstract;
        function getStartOffset(): jint; overload; virtual; abstract;
        function getEndOffset(): jint; overload; virtual; abstract;
        procedure next(); overload; virtual; abstract;
        function isValid(): jboolean; overload; virtual; abstract;
        function getTag(): JSTHHTML.InnerTag; overload; virtual; abstract;
      end;

  public
    const
      AdditionalComments = 'AdditionalComments';
  public
    constructor create(); overload;
    constructor create(para1: JSTHStyleSheet); overload;
    constructor create(para1: JSTAbstractDocument.InnerContent; para2: JSTHStyleSheet); overload;
    function getReader(para1: jint): JSTHHTMLEditorKit.InnerParserCallback; overload; virtual;
    function getReader(para1: jint; para2: jint; para3: jint; para4: JSTHHTML.InnerTag): JSTHHTMLEditorKit.InnerParserCallback; overload; virtual;
    function getBase(): JNURL; overload; virtual;
    procedure setBase(para1: JNURL); overload; virtual;
  strict protected
    procedure insert(para1: jint; para2: JSTDefaultStyledDocument.Arr1InnerElementSpec); overload; virtual;  // throws javax.swing.text.BadLocationException
    procedure insert(para1: jint; var para2: array of JSTDefaultStyledDocument.InnerElementSpec); overload; virtual;  // throws javax.swing.text.BadLocationException
    procedure insertUpdate(para1: JSTAbstractDocument.InnerDefaultDocumentEvent; para2: JSTAttributeSet); overload; virtual;
    procedure create_(para1: JSTDefaultStyledDocument.Arr1InnerElementSpec); external name 'create'; overload; virtual;
    procedure create_(var para1: array of JSTDefaultStyledDocument.InnerElementSpec); external name 'create'; overload; virtual;
  public
    procedure setParagraphAttributes(para1: jint; para2: jint; para3: JSTAttributeSet; para4: jboolean); overload; virtual;
    function getStyleSheet(): JSTHStyleSheet; overload; virtual;
    function getIterator(para1: JSTHHTML.InnerTag): JSTHHTMLDocument.InnerIterator; overload; virtual;
  strict protected
    function createLeafElement(para1: JSTElement; para2: JSTAttributeSet; para3: jint; para4: jint): JSTElement; overload; virtual;
    function createBranchElement(para1: JSTElement; para2: JSTAttributeSet): JSTElement; overload; virtual;
    function createDefaultRoot(): JSTAbstractDocument.InnerAbstractElement; overload; virtual;
  public
    procedure setTokenThreshold(para1: jint); overload; virtual;
    function getTokenThreshold(): jint; overload; virtual;
    procedure setPreservesUnknownTags(para1: jboolean); overload; virtual;
    function getPreservesUnknownTags(): jboolean; overload; virtual;
    procedure processHTMLFrameHyperlinkEvent(para1: JSTHHTMLFrameHyperlinkEvent); overload; virtual;
    procedure setParser(para1: JSTHHTMLEditorKit.InnerParser); overload; virtual;
    function getParser(): JSTHHTMLEditorKit.InnerParser; overload; virtual;
    procedure setInnerHTML(para1: JSTElement; para2: JLString); overload; virtual;  // throws javax.swing.text.BadLocationException, java.io.IOException
    procedure setOuterHTML(para1: JSTElement; para2: JLString); overload; virtual;  // throws javax.swing.text.BadLocationException, java.io.IOException
    procedure insertAfterStart(para1: JSTElement; para2: JLString); overload; virtual;  // throws javax.swing.text.BadLocationException, java.io.IOException
    procedure insertBeforeEnd(para1: JSTElement; para2: JLString); overload; virtual;  // throws javax.swing.text.BadLocationException, java.io.IOException
    procedure insertBeforeStart(para1: JSTElement; para2: JLString); overload; virtual;  // throws javax.swing.text.BadLocationException, java.io.IOException
    procedure insertAfterEnd(para1: JSTElement; para2: JLString); overload; virtual;  // throws javax.swing.text.BadLocationException, java.io.IOException
    function getElement(para1: JLString): JSTElement; overload; virtual;
    function getElement(para1: JSTElement; para2: JLObject; para3: JLObject): JSTElement; overload; virtual;
  strict protected
    procedure fireChangedUpdate(para1: JSEDocumentEvent); overload; virtual;
    procedure fireUndoableEditUpdate(para1: JSEUndoableEditEvent); overload; virtual;
  end;

  JSTHPDocumentParser = class external 'javax.swing.text.html.parser' name 'DocumentParser' (JSTHPParser)
  public
    constructor create(para1: JSTHPDTD); overload;
    procedure parse(para1: JIReader; para2: JSTHHTMLEditorKit.InnerParserCallback; para3: jboolean); overload; virtual;  // throws java.io.IOException
  strict protected
    procedure handleStartTag(para1: JSTHPTagElement); overload; virtual;
    procedure handleComment(para1: Arr1jchar); overload; virtual;
    procedure handleComment(var para1: array of jchar); overload; virtual;
    procedure handleEmptyTag(para1: JSTHPTagElement); overload; virtual;  // throws javax.swing.text.ChangedCharSetException
    procedure handleEndTag(para1: JSTHPTagElement); overload; virtual;
    procedure handleText(para1: Arr1jchar); overload; virtual;
    procedure handleText(var para1: array of jchar); overload; virtual;
    procedure handleError(para1: jint; para2: JLString); overload; virtual;
  end;

  JSTHPParserDelegator = class external 'javax.swing.text.html.parser' name 'ParserDelegator' (JSTHHTMLEditorKit.InnerParser, JISerializable)
  strict protected
    class procedure setDefaultDTD(); static; overload;
    class function createDTD(para1: JSTHPDTD; para2: JLString): JSTHPDTD; static; overload;
  public
    constructor create(); overload;
    procedure parse(para1: JIReader; para2: JSTHHTMLEditorKit.InnerParserCallback; para3: jboolean); overload; virtual;  // throws java.io.IOException
  end;

  JSTDateFormatter = class external 'javax.swing.text' name 'DateFormatter' (JSTInternationalFormatter)
  public
    constructor create(); overload;
    constructor create(para1: JTDateFormat); overload;
    procedure setFormat(para1: JTDateFormat); overload; virtual;
  end;

  JSTNumberFormatter = class external 'javax.swing.text' name 'NumberFormatter' (JSTInternationalFormatter)
  public
    constructor create(); overload;
    constructor create(para1: JTNumberFormat); overload;
    procedure setFormat(para1: JTFormat); overload; virtual;
  end;

