Skip to content

Commit 047aab5

Browse files
committed
A number of changes to fixup metadata
This generator has stricter rules as far as referenced/implemented/base classes/interfaces are concerned - all of them must be known, that is in one way or another defined in either the API description file or the fixup files. This commit moves some generic type declarations from the `name` attribute to the `name-generic-aware`. This is more consistent with what we have in most other types as well as makes the name explicitly generic or non-generic. When XA supports Java generic types the generator will be able to use the `name-generic-aware` attribute to generate the correct class. References to generic types are also moved to various `*-generic-aware` attributes. Additionally, more references to `Java.Nio.Channels.{Network,Multicast}Channel` are removed.
1 parent fc07188 commit 047aab5

File tree

1 file changed

+28
-18
lines changed

1 file changed

+28
-18
lines changed

metadata

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -172,8 +172,8 @@
172172
<attr path="/api/package[@name='android.content.pm']/class[@name='ApplicationInfo.DisplayNameComparator']/implements[@name='java.util.Comparator']" name="name">java.util.Comparator&lt;android.content.pm.ApplicationInfo&gt;</attr>
173173
<attr path="/api/package[@name='android.content.pm']/class[@name='PackageItemInfo.DisplayNameComparator']/implements[@name='java.util.Comparator']" name="name">java.util.Comparator&lt;android.content.pm.PackageItemInfo&gt;</attr>
174174
<attr path="/api/package[@name='android.content.pm']/class[@name='ResolveInfo.DisplayNameComparator']/implements[@name='java.util.Comparator']" name="name">java.util.Comparator&lt;android.content.pm.ResolveInfo&gt;</attr>
175-
<attr path="/api/package[@name='android.database']/class[@name='CursorJoiner']/implements[@name='java.lang.Iterable']" name="name">java.lang.Iterable&lt;android.database.CursorJoiner.Result&gt;</attr>
176-
<attr path="/api/package[@name='android.database']/class[@name='CursorJoiner']/implements[@name='java.util.Iterator']" name="name">java.util.Iterator&lt;android.database.CursorJoiner.Result&gt;</attr>
175+
<attr path="/api/package[@name='android.database']/class[@name='CursorJoiner']/implements[@name='java.lang.Iterable']" name="name-generic-aware">java.lang.Iterable&lt;android.database.CursorJoiner.Result&gt;</attr>
176+
<attr path="/api/package[@name='android.database']/class[@name='CursorJoiner']/implements[@name='java.util.Iterator']" name="name-generic-aware">java.util.Iterator&lt;android.database.CursorJoiner.Result&gt;</attr>
177177
<attr path="/api/package[@name='android.drm']/class[@name='DrmConvertedStatus']/field[@name='statusCode']" name="type" api-since="11">Android.Drm.DrmConvertedStatusCode</attr>
178178
<attr path="/api/package[@name='android.drm']/class[@name='DrmInfoStatus']/field[@name='infoType']" name="type" api-since="11">Android.Drm.DrmInfoRequestType</attr>
179179
<attr path="/api/package[@name='android.drm']/class[@name='DrmInfoStatus']/field[@name='statusCode']" name="type" api-since="11">Android.Drm.DrmInfoStatusCode</attr>
@@ -202,7 +202,7 @@
202202
<attr path="/api/package[@name='android.media.audiofx']/interface[@name='PresetReverb.OnParameterChangeListener']/method[@name='onParameterChange']/parameter[@name='effect']" name="sender" api-since="9">true</attr>
203203
<attr path="/api/package[@name='android.media.audiofx']/interface[@name='Virtualizer.OnParameterChangeListener']/method[@name='onParameterChange']/parameter[@name='effect']" name="sender" api-since="9">true</attr>
204204
<attr path="/api/package[@name='android.nfc']/class[@name='NdefRecord']/method[@name='getType']" name="managedName" api-since="9">GetTypeInfo</attr>
205-
<attr path="/api/package[@name='android.os']/class[@name='AsyncTask']" name="name">AsyncTask&lt;Params, Progress, Result&gt;</attr>
205+
<attr path="/api/package[@name='android.os']/class[@name='AsyncTask']" name="name-generic-aware">AsyncTask&lt;Params, Progress, Result&gt;</attr>
206206
<attr path="/api/package[@name='android.os']/interface[@name='IBinder']" name="managedName">IBinder</attr>
207207
<attr path="/api/package[@name='android.os']/interface[@name='IInterface']" name="managedName">IInterface</attr>
208208
<attr path="/api/package[@name='android.preference']" name="managedName">Android.Preferences</attr>
@@ -283,8 +283,8 @@
283283
<attr path="/api/package[@name='android.hardware']/interface[@name='SensorListener']/method[@name='onAccuracyChanged']" name="argsType">SensorListenerAccuracyChangedEventArgs</attr>
284284
<attr path="/api/package[@name='android.hardware']/interface[@name='SensorListener']/method[@name='onSensorChanged']" name="argsType">SensorListenerSensorChangedEventArgs</attr>
285285

286-
<attr path="/api/package[@name='android.widget']/class[@name='AdapterView']" name="name">AdapterView&lt;T&gt;</attr>
287-
<attr path="/api/package[@name='android.widget']/class[@name='ArrayAdapter']" name="name">ArrayAdapter&lt;T&gt;</attr>
286+
<attr path="/api/package[@name='android.widget']/class[@name='AdapterView']" name="name-generic-aware">AdapterView&lt;T&gt;</attr>
287+
<attr path="/api/package[@name='android.widget']/class[@name='ArrayAdapter']" name="name-generic-aware">ArrayAdapter&lt;T&gt;</attr>
288288
<attr path="/api/package[@name='android.widget']/class[@name='AutoCompleteTextView']/method[@name='setAdapter']/parameter[@name='adapter']" name="type">android.widget.ListAdapter</attr>
289289
<attr path="/api/package[@name='android.widget']/class[@name='CursorTreeAdapter']/method[@name='getChild']" name="return">java.lang.Object</attr>
290290
<attr path="/api/package[@name='android.widget']/class[@name='CursorTreeAdapter']/method[@name='getGroup']" name="return">java.lang.Object</attr>
@@ -309,33 +309,33 @@
309309
<attr path="/api/package[@name='java.lang']/class[@name='StringBuffer']/method[@name='append']" name="managedReturn">Java.Lang.IAppendable</attr>
310310
<attr path="/api/package[@name='java.lang']/class[@name='StringBuilder']/method[@name='append']" name="managedReturn">Java.Lang.IAppendable</attr>
311311
<attr path="/api/package[@name='java.lang']/interface[@name='CharSequence']" name="managedName">ICharSequence</attr>
312-
<attr path="/api/package[@name='java.lang']/interface[@name='Iterable']" name="name">Iterable&lt;T&gt;</attr>
312+
<attr path="/api/package[@name='java.lang']/interface[@name='Iterable']" name="name-generic-aware">Iterable&lt;T&gt;</attr>
313313
<attr path="/api/package[@name='java.nio.channels']/class[@name='Channels']/method[@name='newChannel' and @return='java.nio.channels.ReadableByteChannel']" name="managedName">NewReadableChannel</attr>
314314
<attr path="/api/package[@name='java.nio.channels']/class[@name='Channels']/method[@name='newChannel' and @return='java.nio.channels.WritableByteChannel']" name="managedName">NewWritableChannel</attr>
315315
<attr path="/api/package[@name='java.util']/class[@name='Dictionary']/method/parameter[@name='key']" name="type">K</attr>
316316
<attr path="/api/package[@name='java.util']/class[@name='Dictionary']/method/parameter[@name='value']" name="type">V</attr>
317317
<attr path="/api/package[@name='java.util']/class[@name='Dictionary']" name="name">Dictionary&lt;K, V&gt;</attr>
318318
<attr path="/api/package[@name='java.util']/class[@name='Hashtable']/method/parameter[@name='key']" name="type">K</attr>
319319
<attr path="/api/package[@name='java.util']/class[@name='Hashtable']/method/parameter[@name='value']" name="type">V</attr>
320-
<attr path="/api/package[@name='java.util']/class[@name='Hashtable']/implements[@name='java.util.Map']" name="name">java.util.Map&lt;K, V&gt;</attr>
321-
<attr path="/api/package[@name='java.util']/class[@name='Hashtable']" name="extends">java.util.Dictionary&lt;K, V&gt;</attr>
322-
<attr path="/api/package[@name='java.util']/class[@name='Hashtable']" name="name">Hashtable&lt;K, V&gt;</attr>
320+
<attr path="/api/package[@name='java.util']/class[@name='Hashtable']/implements[@name='java.util.Map']" name="name-generic-aware">java.util.Map&lt;K, V&gt;</attr>
321+
<attr path="/api/package[@name='java.util']/class[@name='Hashtable']" name="extends-generic-aware">java.util.Dictionary&lt;K, V&gt;</attr>
322+
<attr path="/api/package[@name='java.util']/class[@name='Hashtable']" name="name-generic-aware">Hashtable&lt;K, V&gt;</attr>
323323
<attr path="/api/package[@name='java.util']/class[@name='Properties']" name="extends">java.lang.Object</attr>
324324
<attr path="/api/package[@name='java.util']/class[@name='ResourceBundle']/method[@name='handleGetObject']" name="visibility">public</attr>
325-
<attr path="/api/package[@name='java.util']/class[@name='Scanner']/implements[@name='java.util.Iterator']" name="name">java.lang.Iterator&lt;java.lang.String&gt;</attr>
326-
<attr path="/api/package[@name='java.util']/interface[@name='Collection']/implements[@name='java.lang.Iterable']" name="name">java.lang.Iterable&lt;E&gt;</attr>
325+
<attr path="/api/package[@name='java.util']/class[@name='Scanner']/implements[@name='java.util.Iterator']" name="name-generic-aware">java.lang.Iterator&lt;java.lang.String&gt;</attr>
326+
<attr path="/api/package[@name='java.util']/interface[@name='Collection']/implements[@name='java.lang.Iterable']" name="name-generic-aware">java.lang.Iterable&lt;E&gt;</attr>
327327
<attr path="/api/package[@name='java.util']/interface[@name='Collection']/method[@name='containsAll']/parameter[@type='java.util.Collection&lt;?&gt;']" name="type">java.util.Collection&lt;E&gt;</attr>
328328
<attr path="/api/package[@name='java.util']/interface[@name='Collection']/method[@name='removeAll']/parameter[@type='java.util.Collection&lt;?&gt;']" name="type">java.util.Collection&lt;E&gt;</attr>
329329
<attr path="/api/package[@name='java.util']/interface[@name='Collection']/method[@name='retainAll']/parameter[@type='java.util.Collection&lt;?&gt;']" name="type">java.util.Collection&lt;E&gt;</attr>
330330
<attr path="/api/package[@name='java.util']/interface[@name='Collection']/method[@name='toArray']/parameter[@type='T[]']" name="type">E[]</attr>
331331
<attr path="/api/package[@name='java.util']/interface[@name='Collection']/method[@name='toArray' and count(parameter)=1]" name="return">E[]</attr>
332-
<attr path="/api/package[@name='java.util']/interface[@name='Collection']" name="name">Collection&lt;E&gt;</attr>
333-
<attr path="/api/package[@name='java.util']/interface[@name='Comparator']" name="name">Comparator&lt;T&gt;</attr>
334-
<attr path="/api/package[@name='java.util']/interface[@name='Iterator']" name="name">Iterator&lt;E&gt;</attr>
332+
<attr path="/api/package[@name='java.util']/interface[@name='Collection']" name="name-generic-aware">Collection&lt;E&gt;</attr>
333+
<attr path="/api/package[@name='java.util']/interface[@name='Comparator']" name="name-generic-aware">Comparator&lt;T&gt;</attr>
334+
<attr path="/api/package[@name='java.util']/interface[@name='Iterator']" name="name-generic-aware">Iterator&lt;E&gt;</attr>
335335
<attr path="/api/package[@name='java.util']/interface[@name='Map']/method/parameter[@name='key']" name="type">K</attr>
336336
<attr path="/api/package[@name='java.util']/interface[@name='Map']/method/parameter[@name='value']" name="type">V</attr>
337-
<attr path="/api/package[@name='java.util']/interface[@name='Map']" name="name">Map&lt;K, V&gt;</attr>
338-
<attr path="/api/package[@name='java.util']/interface[@name='Map.Entry']" name="name">Map.Entry&lt;K, V&gt;</attr>
337+
<attr path="/api/package[@name='java.util']/interface[@name='Map']" name="name-generic-aware">Map&lt;K, V&gt;</attr>
338+
<attr path="/api/package[@name='java.util']/interface[@name='Map.Entry']" name="name-generic-aware">Map.Entry&lt;K, V&gt;</attr>
339339
<attr path="/api/package[@name='javax.security.auth.callback']/interface[@name='CallbackHandler']/method[@name='handle']" name="managedName">HandleCallbacks</attr>
340340
<attr path="/api/package[@name='org.xmlpull.v1']" name="managedName">Org.XmlPull.V1</attr>
341341
<attr path="/api/package[@name='android.util']/class[@name='Log']/method[@name='d']" name="managedName">Debug</attr>
@@ -479,7 +479,8 @@
479479
<!-- For these types' constructors, both Map and SortedMap are mapped to IDictionary and one results in duplicate definition. So one needs to be removed. -->
480480
<remove-node path="/api/package[@name='java.util']/class[@name='TreeMap']/constructor[parameter[1][@type='java.util.SortedMap&lt;K, ? extends V>']]" />
481481
<remove-node path="/api/package[@name='java.util.concurrent']/class[@name='ConcurrentSkipListMap']/constructor[parameter[1][@type='java.util.SortedMap&lt;K, ? extends V>']]" api-since="10" />
482-
482+
<remove-node path="/api/package[@name='java.util.concurrent']/class[@name='ConcurrentSkipListMap']/implements[@name='java.util.concurrent.ConcurrentNavigableMap']" api-since="10" />
483+
483484
<!-- FIXME: they bring too messy breakages, so just kill 'em so far -->
484485
<remove-node path="/api/package[@name='java.util.concurrent']/class[@name='ConcurrentSkipListSet']" api-since="10" />
485486
<remove-node path="/api/package[@name='java.util.concurrent']/interface[@name='ConcurrentNavigableMap']" api-since="10" />
@@ -1093,13 +1094,15 @@
10931094
<attr api-until="9" path="/api/package/class" name="deprecated">This platform is deprecated. Please re-target your app for a minumum of API-10</attr>
10941095
<attr api-until="9" path="/api/package/interface" name="deprecated">This platform is deprecated. Please re-target your app for a minumum of API-10</attr>
10951096

1097+
<!-- Removed because it is a duplicate (also defined in enummetadata)
10961098
<add-node api-until="12" path="/api">
10971099
<enum name="Android.Views.Axis" />
10981100
</add-node>
1101+
10991102
<add-node api-until="14" path="/api">
11001103
<enum name="Android.Views.SystemUiFlags" />
11011104
</add-node>
1102-
1105+
-->
11031106
<attr path="/api/package[@name='android.view.textservice']/interface[@name='SpellCheckerSession.SpellCheckerSessionListener']/method[@name='onGetSuggestions']"
11041107
name="argsType"
11051108
>SpellCheckerSessionEventArgs</attr>
@@ -1196,10 +1199,17 @@
11961199
-->
11971200

11981201
<remove-node path="/api/package[@name='java.nio.channels']/interface[@name='NetworkChannel']" />
1202+
<remove-node path="/api/package[@name='java.nio.channels']/interface[@name='MulticastChannel']" />
11991203
<remove-node path="/api/package[@name='java.nio.channels']/class[@name='DatagramChannel']/implements[@name='java.nio.channels.NetworkChannel']" />
12001204
<remove-node path="/api/package[@name='java.nio.channels']/class[@name='SocketChannel']/implements[@name='java.nio.channels.NetworkChannel']" />
12011205
<remove-node path="/api/package[@name='java.nio.channels']/class[@name='ServerSocketChannel']/implements[@name='java.nio.channels.NetworkChannel']" />
12021206

1207+
<remove-node path="/api/package[@name='java.nio.channels']/class[@name='AsynchronousServerSocketChannel']/implements[@name='java.nio.channels.NetworkChannel']" />
1208+
<remove-node path="/api/package[@name='java.nio.channels']/class[@name='AsynchronousSocketChannel']/implements[@name='java.nio.channels.NetworkChannel']" />
1209+
1210+
<remove-node path="/api/package[@name='java.nio.channels']/class[@name='DatagramChannel']/implements[@name='java.nio.channels.MulticastChannel']" />
1211+
1212+
12031213
<attr path="/api/package[@name='java.util.concurrent.atomic']/class[@name='Striped64']" name="visibility">public</attr>
12041214

12051215
<!-- non-public intermediate CollectionView brings a lot of issues, just kill it -->

0 commit comments

Comments
 (0)