On Sep 20, 2012, at 2:08 PM, Jeremy A. Kolb - ARA/NED <[email protected]> wrote:
> How do I change the name of a parameter in a constructor in metadata.xml?  So 
> Far I have:
>  
> <attr 
> path="/api/package[@name='org.osmdroid.util']/class[@name='GeoPoint']/method[@name='.ctor']/signature[@name='(II)V']/parameter[@name='p0']"
>  name="name">latitude</attr>

Right idea...

However, the //attr/@path XSLT expressions need to refer to Google AOSP format 
XML, in which constructors use a <constructor/> element, not a <method/> 
element with a name of ".ctor":

        
http://docs.xamarin.com/android/tutorials/API_Metadata_Reference#Google_AOSP_Format

Furthermore, there is no <signature/> element, so checking for that won't match 
either.

What I believe you want is:

        <attr
                
path="/api/package[@name='org.osmdroid.util']/class[@name='GeoPoint']/constructor[count(parameter)=2
 and parameter[1][@type='int'] and 
parameter[2][@type='int']]/parameter[@name='p0']"
                name="name"
        >latitude</attr>

Which is a bit of a mouthful. Assuming that org.osmdroid.util.GeoPoint is this:

        
http://code.google.com/p/osmdroid/source/browse/trunk/osmdroid-android/src/org/osmdroid/util/GeoPoint.java?r=667

We can simplify that and instead say "if the constructor has more than one 
parameter, the first parameter is named "latitude":

        <attr
                
path="/api/package[@name='org.osmdroid.util']/class[@name='GeoPoint']/constructor[count(parameter)&gt;1]/parameter[@name='p0']"
                name="name"
        >latitude</attr>

> Also on http://docs.xamarin.com/android/tutorials/API_Metadata_Reference the 
> link to “http://www.mono-project.com/ GAPI#Metadata” is wrong.

Is it? It looks right to me...

 - Jon

_______________________________________________
Monodroid mailing list
[email protected]

UNSUBSCRIBE INFORMATION:
http://lists.ximian.com/mailman/listinfo/monodroid

Reply via email to