classpath
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: japi and public references to non-public types


From: Stuart Ballard
Subject: Re: japi and public references to non-public types
Date: Tue, 4 Oct 2005 19:41:27 -0400

On 10/4/05, Stuart Ballard <address@hidden> wrote:
> I can't think of any reasons why any such field (or a method taking a
> non-public type as a parameter or returning one) should ever matter in
> practice for compatibility, but I'd like to see if other people feel
> the same way before trying to implement skipping them.

I've got an implementation of this in my local copy for testing. I had
it spit out the list of items that would be skipped if we skipped all
fields with a non-public type and methods with non-public parameter
types, return types or thrown exception types. I'd also like to catch
anything with a non-public type parameter bound, but my initial naive
implementation stackoverflowed on (where else?) Enum<T extends
Enum<T>>.

The list that came out was:

java.awt,GridBagLayout!#layoutInfo
java.awt,GridBagLayout!GetLayoutInfo(Ljava/awt/Container;,I)
java.awt,GridBagLayout!GetMinSize(Ljava/awt/Container;,Ljava/awt/GridBagLayoutInfo;)
java.awt,GridBagLayout!getLayoutInfo(Ljava/awt/Container;,I)
java.awt,GridBagLayout!getMinSize(Ljava/awt/Container;,Ljava/awt/GridBagLayoutInfo;)
javax.management.loading,MLet!check(Ljava/lang/String;,Ljava/net/URL;,Ljava/lang/String;,Ljavax/management/loading/MLetContent;)
javax.management.loading,PrivateMLet!check(Ljava/lang/String;,Ljava/net/URL;,Ljava/lang/String;,Ljavax/management/loading/MLetContent;)
javax.management.timer,TimerAlarmClockNotification!(Ljavax/management/timer/TimerAlarmClock;)
javax.naming,CompoundName!#impl
javax.swing,JRootPane!#defaultPressAction
javax.swing,JRootPane!#defaultReleaseAction
javax.swing,JTree$EmptySelectionModel!notifyPathChange(Ljava/util/Vector<Ljavax/swing/tree/PathPlaceHolder;>;,Ljavax/swing/tree/TreePath;)
javax.swing.plaf.metal,MetalBorders$ToolBarBorder!#bumps
javax.swing.plaf.metal,MetalFileChooserUI!createDirectoryComboBoxRenderer(Ljavax/swing/JFileChooser;)
javax.swing.plaf.metal,MetalScrollBarUI!#bumps
javax.swing.plaf.metal,MetalSplitPaneDivider$MetalDividerLayout!(Ljavax/swing/plaf/metal/MetalSplitPaneDivider;)
javax.swing.plaf.synth,SynthSliderUI$SynthTrackListener!(Ljavax/swing/plaf/synth/SynthSliderUI;)
javax.swing.text,ParagraphView!adjustRow(Ljavax/swing/text/ParagraphView$Row;,I,I)
javax.swing.text.html,AccessibleHTML$HTMLAccessibleContext!#elementInfo
javax.swing.text.html,AccessibleHTML$HTMLAccessibleContext!(Ljavax/swing/text/html/AccessibleHTML;,Ljavax/swing/text/html/AccessibleHTML$ElementInfo;)
javax.swing.text.html,AccessibleHTML$IconElementInfo$IconAccessibleContext!#elementInfo
javax.swing.text.html,AccessibleHTML$IconElementInfo$IconAccessibleContext!(Ljavax/swing/text/html/AccessibleHTML$IconElementInfo;,Ljavax/swing/text/html/AccessibleHTML$ElementInfo;)
javax.swing.text.html,AccessibleHTML$TableElementInfo$TableAccessibleContext!#elementInfo
javax.swing.text.html,AccessibleHTML$TableElementInfo$TableAccessibleContext!(Ljavax/swing/text/html/AccessibleHTML$TableElementInfo;,Ljavax/swing/text/html/AccessibleHTML$ElementInfo;)
javax.swing.text.html,AccessibleHTML$TableElementInfo$TableAccessibleContext!addRowHeader(Ljavax/swing/text/html/AccessibleHTML$TableElementInfo$TableCellElementInfo;,I)
javax.swing.text.html,AccessibleHTML$TableElementInfo$TableAccessibleContext$AccessibleHeadersTable!addHeader(Ljavax/swing/text/html/AccessibleHTML$TableElementInfo$TableCellElementInfo;,I)
javax.swing.text.html,AccessibleHTML$TextElementInfo$TextAccessibleContext!#elementInfo
javax.swing.text.html,AccessibleHTML$TextElementInfo$TextAccessibleContext!(Ljavax/swing/text/html/AccessibleHTML$TextElementInfo;,Ljavax/swing/text/html/AccessibleHTML$ElementInfo;)
javax.swing.text.html,ParagraphView!adjustRow(Ljavax/swing/text/ParagraphView$Row;,I,I)
javax.swing.text.html,TableView$RowView!(Ljavax/swing/text/html/TableView;,Ljavax/swing/text/Element;)
javax.swing.tree,DefaultTreeSelectionModel!notifyPathChange(Ljava/util/Vector<Ljavax/swing/tree/PathPlaceHolder;>;,Ljavax/swing/tree/TreePath;)

Anyone who knows any of those areas of code have any strong feelings
either way on whether those items shout be treated as part of the
public API or not? Can any of them actually be used for anything
useful despite the non-publicness of types associated with them?

Stuart.

PS I sent a mail to classpath-patches earlier today with some other
trivial japi fixes but it's stuck in moderation since I'm not
subscribed...
--
http://sab39.dev.netreach.com/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]