diff --git a/tools/generator/Java.Interop.Tools.Generator.CodeGeneration/CodeGenerator.cs b/tools/generator/Java.Interop.Tools.Generator.CodeGeneration/CodeGenerator.cs
index bc5a85922..78a109c50 100644
--- a/tools/generator/Java.Interop.Tools.Generator.CodeGeneration/CodeGenerator.cs
+++ b/tools/generator/Java.Interop.Tools.Generator.CodeGeneration/CodeGenerator.cs
@@ -22,6 +22,8 @@ protected CodeGenerator (TextWriter writer, CodeGenerationOptions options)
opt = options;
}
+ internal virtual string GetAllInterfaceImplements () => "IJavaObject";
+
internal abstract void WriteClassHandle (ClassGen type, string indent, bool requireNew);
internal abstract void WriteClassHandle (InterfaceGen type, string indent, string declaringType);
@@ -522,7 +524,7 @@ public void WriteInterfaceDeclaration (InterfaceGen @interface, string indent)
if (@interface.TypeParameters != null && @interface.TypeParameters.Any ())
writer.WriteLine ("{0}{1}", indent, @interface.TypeParameters.ToGeneratedAttributeString ());
writer.WriteLine ("{0}{1} partial interface {2}{3} {{", indent, @interface.Visibility, @interface.Name,
- @interface.IsConstSugar ? string.Empty : @interface.Interfaces.Count == 0 || sb.Length == 0 ? " : IJavaObject" : " : " + sb.ToString ());
+ @interface.IsConstSugar ? string.Empty : @interface.Interfaces.Count == 0 || sb.Length == 0 ? " : " + GetAllInterfaceImplements () : " : " + sb.ToString ());
WriteInterfaceFields (@interface, indent + "\t");
writer.WriteLine ();
WriteInterfaceProperties (@interface, indent + "\t");
diff --git a/tools/generator/Java.Interop.Tools.Generator.CodeGeneration/JavaInteropCodeGenerator.cs b/tools/generator/Java.Interop.Tools.Generator.CodeGeneration/JavaInteropCodeGenerator.cs
index c04a58e76..065cc433a 100644
--- a/tools/generator/Java.Interop.Tools.Generator.CodeGeneration/JavaInteropCodeGenerator.cs
+++ b/tools/generator/Java.Interop.Tools.Generator.CodeGeneration/JavaInteropCodeGenerator.cs
@@ -23,6 +23,7 @@ static string GetInvokeType (string type)
}
}
+ internal override string GetAllInterfaceImplements () => "IJavaObject, IJavaPeerable";
internal override void WriteClassHandle (ClassGen type, string indent, bool requireNew)
{
diff --git a/tools/generator/Tests-Core/expected.ji/Android.Text.ISpanned.cs b/tools/generator/Tests-Core/expected.ji/Android.Text.ISpanned.cs
index 7a815b6d5..714aff197 100644
--- a/tools/generator/Tests-Core/expected.ji/Android.Text.ISpanned.cs
+++ b/tools/generator/Tests-Core/expected.ji/Android.Text.ISpanned.cs
@@ -7,7 +7,7 @@ namespace Android.Text {
// Metadata.xml XPath interface reference: path="/api/package[@name='android.text']/interface[@name='Spanned']"
[Register ("android/text/Spanned", "", "Android.Text.ISpannedInvoker")]
- public partial interface ISpanned : IJavaObject {
+ public partial interface ISpanned : IJavaObject, IJavaPeerable {
// Metadata.xml XPath method reference: path="/api/package[@name='android.text']/interface[@name='Spanned']/method[@name='getSpanFlags' and count(parameter)=1 and parameter[1][@type='java.lang.Object']]"
[return:global::Android.Runtime.GeneratedEnum]
diff --git a/tools/generator/Tests-Core/expected.ji/Android.Views.View.cs b/tools/generator/Tests-Core/expected.ji/Android.Views.View.cs
index a06c080b4..3e7e73877 100644
--- a/tools/generator/Tests-Core/expected.ji/Android.Views.View.cs
+++ b/tools/generator/Tests-Core/expected.ji/Android.Views.View.cs
@@ -11,7 +11,7 @@ public partial class View : Java.Lang.Object {
// Metadata.xml XPath interface reference: path="/api/package[@name='android.view']/interface[@name='View.OnClickListener']"
[Register ("android/view/View$OnClickListener", "", "Android.Views.View/IOnClickListenerInvoker")]
- public partial interface IOnClickListener : IJavaObject {
+ public partial interface IOnClickListener : IJavaObject, IJavaPeerable {
// Metadata.xml XPath method reference: path="/api/package[@name='android.view']/interface[@name='View.OnClickListener']/method[@name='onClick' and count(parameter)=1 and parameter[1][@type='android.view.View']]"
[Register ("onClick", "(Landroid/view/View;)V", "GetOnClick_Landroid_view_View_Handler:Android.Views.View/IOnClickListenerInvoker, ")]
diff --git a/tools/generator/Tests/Unit-Tests/CodeGeneratorExpectedResults/JavaInterop1/WriteInterface.txt b/tools/generator/Tests/Unit-Tests/CodeGeneratorExpectedResults/JavaInterop1/WriteInterface.txt
index d4d9d1b9e..b06042e9c 100644
--- a/tools/generator/Tests/Unit-Tests/CodeGeneratorExpectedResults/JavaInterop1/WriteInterface.txt
+++ b/tools/generator/Tests/Unit-Tests/CodeGeneratorExpectedResults/JavaInterop1/WriteInterface.txt
@@ -30,7 +30,7 @@ public abstract class MyInterfaceConsts : MyInterface {
// Metadata.xml XPath interface reference: path="/api/package[@name='java.code']/interface[@name='IMyInterface']"
[Register ("java/code/IMyInterface", "", "java.code.IMyInterfaceInvoker")]
-public partial interface IMyInterface : IJavaObject {
+public partial interface IMyInterface : IJavaObject, IJavaPeerable {
int Count {
// Metadata.xml XPath method reference: path="/api/package[@name='java.code']/interface[@name='IMyInterface']/method[@name='get_Count' and count(parameter)=0]"
diff --git a/tools/generator/Tests/Unit-Tests/CodeGeneratorExpectedResults/JavaInterop1/WriteInterfaceDeclaration.txt b/tools/generator/Tests/Unit-Tests/CodeGeneratorExpectedResults/JavaInterop1/WriteInterfaceDeclaration.txt
new file mode 100644
index 000000000..15447c62b
--- /dev/null
+++ b/tools/generator/Tests/Unit-Tests/CodeGeneratorExpectedResults/JavaInterop1/WriteInterfaceDeclaration.txt
@@ -0,0 +1,39 @@
+// Metadata.xml XPath interface reference: path="/api/package[@name='java.code']/interface[@name='IMyInterface']"
+[Register ("java/code/IMyInterface", "", "java.code.IMyInterfaceInvoker")]
+public partial interface IMyInterface : IJavaObject, IJavaPeerable {
+
+ int Count {
+ // Metadata.xml XPath method reference: path="/api/package[@name='java.code']/interface[@name='IMyInterface']/method[@name='get_Count' and count(parameter)=0]"
+ [Register ("get_Count", "()I", "Getget_CountHandler:java.code.IMyInterfaceInvoker, ")] get;
+ // Metadata.xml XPath method reference: path="/api/package[@name='java.code']/interface[@name='IMyInterface']/method[@name='set_Count' and count(parameter)=1 and parameter[1][@type='int']]"
+ [Register ("set_Count", "(I)V", "Getset_Count_IHandler:java.code.IMyInterfaceInvoker, ")] set;
+ }
+
+ java.lang.String Key {
+ // Metadata.xml XPath method reference: path="/api/package[@name='java.code']/interface[@name='IMyInterface']/method[@name='get_Key' and count(parameter)=0]"
+ [Register ("get_Key", "()Ljava/lang/String;", "Getget_KeyHandler:java.code.IMyInterfaceInvoker, ")] get;
+ // Metadata.xml XPath method reference: path="/api/package[@name='java.code']/interface[@name='IMyInterface']/method[@name='set_Key' and count(parameter)=1 and parameter[1][@type='java.lang.String']]"
+ [Register ("set_Key", "(Ljava/lang/String;)V", "Getset_Key_Ljava_lang_String_Handler:java.code.IMyInterfaceInvoker, ")] set;
+ }
+
+ int AbstractCount {
+ // Metadata.xml XPath method reference: path="/api/package[@name='java.code']/interface[@name='IMyInterface']/method[@name='get_AbstractCount' and count(parameter)=0]"
+ [Register ("get_AbstractCount", "()I", "Getget_AbstractCountHandler:java.code.IMyInterfaceInvoker, ")] get;
+ // Metadata.xml XPath method reference: path="/api/package[@name='java.code']/interface[@name='IMyInterface']/method[@name='set_AbstractCount' and count(parameter)=1 and parameter[1][@type='int']]"
+ [Register ("set_AbstractCount", "(I)V", "Getset_AbstractCount_IHandler:java.code.IMyInterfaceInvoker, ")] set;
+ }
+
+ // Metadata.xml XPath method reference: path="/api/package[@name='java.code']/interface[@name='IMyInterface']/method[@name='GetCountForKey' and count(parameter)=1 and parameter[1][@type='java.lang.String']]"
+ [Register ("GetCountForKey", "(Ljava/lang/String;)I", "GetGetCountForKey_Ljava_lang_String_Handler:java.code.IMyInterfaceInvoker, ")]
+ int GetCountForKey (string key);
+
+ // Metadata.xml XPath method reference: path="/api/package[@name='java.code']/interface[@name='IMyInterface']/method[@name='Key' and count(parameter)=0]"
+ [Register ("Key", "()Ljava/lang/String;", "GetKeyHandler:java.code.IMyInterfaceInvoker, ")]
+ string Key ();
+
+ // Metadata.xml XPath method reference: path="/api/package[@name='java.code']/interface[@name='IMyInterface']/method[@name='AbstractMethod' and count(parameter)=0]"
+ [Register ("AbstractMethod", "()V", "GetAbstractMethodHandler:java.code.IMyInterfaceInvoker, ")]
+ void AbstractMethod ();
+
+}
+
diff --git a/tools/generator/Tests/Unit-Tests/CodeGeneratorExpectedResults/JavaInterop1/WriteInterfaceFields.txt b/tools/generator/Tests/Unit-Tests/CodeGeneratorExpectedResults/JavaInterop1/WriteInterfaceFields.txt
index 085ad91e2..25ae46f12 100644
--- a/tools/generator/Tests/Unit-Tests/CodeGeneratorExpectedResults/JavaInterop1/WriteInterfaceFields.txt
+++ b/tools/generator/Tests/Unit-Tests/CodeGeneratorExpectedResults/JavaInterop1/WriteInterfaceFields.txt
@@ -1,6 +1,6 @@
// Metadata.xml XPath interface reference: path="/api/package[@name='java.code']/interface[@name='IMyInterface']"
[Register ("java/code/IMyInterface", "", "java.code.IMyInterfaceInvoker")]
-public partial interface IMyInterface : IJavaObject {
+public partial interface IMyInterface : IJavaObject, IJavaPeerable {
// Metadata.xml XPath field reference: path="/api/package[@name='java.code']/interface[@name='IMyInterface']/field[@name='MyConstantField']"
[Register ("MyConstantField")]
diff --git a/tools/generator/Tests/Unit-Tests/CodeGeneratorExpectedResults/JavaInterop1/WriteInterfaceMethod.txt b/tools/generator/Tests/Unit-Tests/CodeGeneratorExpectedResults/JavaInterop1/WriteInterfaceMethod.txt
new file mode 100644
index 000000000..b616be47a
--- /dev/null
+++ b/tools/generator/Tests/Unit-Tests/CodeGeneratorExpectedResults/JavaInterop1/WriteInterfaceMethod.txt
@@ -0,0 +1,11 @@
+// Metadata.xml XPath interface reference: path="/api/package[@name='java.code']/interface[@name='IMyInterface']"
+[Register ("java/code/IMyInterface", "", "java.code.IMyInterfaceInvoker")]
+public partial interface IMyInterface : IJavaObject, IJavaPeerable {
+
+ // Metadata.xml XPath method reference: path="/api/package[@name='java.code']/interface[@name='IMyInterface']/method[@name='DoSomething' and count(parameter)=0]"
+ [global::Java.Interop.JavaInterfaceDefaultMethod]
+ [Register ("DoSomething", "()V", "GetDoSomethingHandler:java.code.IMyInterfaceInvoker, ")]
+ void DoSomething ();
+
+}
+
diff --git a/tools/generator/Tests/Unit-Tests/CodeGeneratorExpectedResults/Common/WriteInterfaceDeclaration.txt b/tools/generator/Tests/Unit-Tests/CodeGeneratorExpectedResults/XamarinAndroid/WriteInterfaceDeclaration.txt
similarity index 100%
rename from tools/generator/Tests/Unit-Tests/CodeGeneratorExpectedResults/Common/WriteInterfaceDeclaration.txt
rename to tools/generator/Tests/Unit-Tests/CodeGeneratorExpectedResults/XamarinAndroid/WriteInterfaceDeclaration.txt
diff --git a/tools/generator/Tests/Unit-Tests/CodeGeneratorExpectedResults/XamarinAndroid/WriteInterfaceMethod.txt b/tools/generator/Tests/Unit-Tests/CodeGeneratorExpectedResults/XamarinAndroid/WriteInterfaceMethod.txt
new file mode 100644
index 000000000..e82dbe04a
--- /dev/null
+++ b/tools/generator/Tests/Unit-Tests/CodeGeneratorExpectedResults/XamarinAndroid/WriteInterfaceMethod.txt
@@ -0,0 +1,11 @@
+// Metadata.xml XPath interface reference: path="/api/package[@name='java.code']/interface[@name='IMyInterface']"
+[Register ("java/code/IMyInterface", "", "java.code.IMyInterfaceInvoker")]
+public partial interface IMyInterface : IJavaObject {
+
+ // Metadata.xml XPath method reference: path="/api/package[@name='java.code']/interface[@name='IMyInterface']/method[@name='DoSomething' and count(parameter)=0]"
+ [global::Java.Interop.JavaInterfaceDefaultMethod]
+ [Register ("DoSomething", "()V", "GetDoSomethingHandler:java.code.IMyInterfaceInvoker, ")]
+ void DoSomething ();
+
+}
+
diff --git a/tools/generator/Tests/Unit-Tests/CodeGeneratorTests.cs b/tools/generator/Tests/Unit-Tests/CodeGeneratorTests.cs
index 186b56c47..fa8fd2432 100644
--- a/tools/generator/Tests/Unit-Tests/CodeGeneratorTests.cs
+++ b/tools/generator/Tests/Unit-Tests/CodeGeneratorTests.cs
@@ -421,7 +421,7 @@ public void WriteInterfaceDeclaration ()
generator.WriteInterfaceDeclaration (iface, string.Empty);
generator.Context.ContextTypes.Pop ();
- Assert.AreEqual (GetExpected (nameof (WriteInterfaceDeclaration)), writer.ToString ().NormalizeLineEndings ());
+ Assert.AreEqual (GetTargetedExpected (nameof (WriteInterfaceDeclaration)), writer.ToString ().NormalizeLineEndings ());
}
[Test]
diff --git a/tools/generator/Tests/expected.ji/Adapters/Xamarin.Test.IAdapter.cs b/tools/generator/Tests/expected.ji/Adapters/Xamarin.Test.IAdapter.cs
index 09e19b4a1..71eed794c 100644
--- a/tools/generator/Tests/expected.ji/Adapters/Xamarin.Test.IAdapter.cs
+++ b/tools/generator/Tests/expected.ji/Adapters/Xamarin.Test.IAdapter.cs
@@ -7,7 +7,7 @@ namespace Xamarin.Test {
// Metadata.xml XPath interface reference: path="/api/package[@name='xamarin.test']/interface[@name='Adapter']"
[Register ("xamarin/test/Adapter", "", "Xamarin.Test.IAdapterInvoker")]
- public partial interface IAdapter : IJavaObject {
+ public partial interface IAdapter : IJavaObject, IJavaPeerable {
}
diff --git a/tools/generator/Tests/expected.ji/GenericArguments/Com.Google.Android.Exoplayer.Drm.IExoMediaDrm.cs b/tools/generator/Tests/expected.ji/GenericArguments/Com.Google.Android.Exoplayer.Drm.IExoMediaDrm.cs
index 83b61d242..f52c3ffef 100644
--- a/tools/generator/Tests/expected.ji/GenericArguments/Com.Google.Android.Exoplayer.Drm.IExoMediaDrm.cs
+++ b/tools/generator/Tests/expected.ji/GenericArguments/Com.Google.Android.Exoplayer.Drm.IExoMediaDrm.cs
@@ -8,7 +8,7 @@ namespace Com.Google.Android.Exoplayer.Drm {
// Metadata.xml XPath interface reference: path="/api/package[@name='com.google.android.exoplayer.drm']/interface[@name='ExoMediaDrm.OnEventListener']"
[Register ("com/google/android/exoplayer/drm/ExoMediaDrm$OnEventListener", "", "Com.Google.Android.Exoplayer.Drm.IExoMediaDrmOnEventListenerInvoker")]
[global::Java.Interop.JavaTypeParameters (new string [] {"T extends com.google.android.exoplayer.drm.ExoMediaCrypto"})]
- public partial interface IExoMediaDrmOnEventListener : IJavaObject {
+ public partial interface IExoMediaDrmOnEventListener : IJavaObject, IJavaPeerable {
// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.exoplayer.drm']/interface[@name='ExoMediaDrm.OnEventListener']/method[@name='onEvent' and count(parameter)=5 and parameter[1][@type='com.google.android.exoplayer.drm.ExoMediaDrm<T>'] and parameter[2][@type='byte[]'] and parameter[3][@type='int'] and parameter[4][@type='int'] and parameter[5][@type='byte[]']]"
[Register ("onEvent", "(Lcom/google/android/exoplayer/drm/ExoMediaDrm;[BII[B)V", "GetOnEvent_Lcom_google_android_exoplayer_drm_ExoMediaDrm_arrayBIIarrayBHandler:Com.Google.Android.Exoplayer.Drm.IExoMediaDrmOnEventListenerInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
@@ -189,7 +189,7 @@ internal static bool __IsEmpty (IExoMediaDrmOnEventListenerImplementor value)
// Metadata.xml XPath interface reference: path="/api/package[@name='com.google.android.exoplayer.drm']/interface[@name='ExoMediaDrm']"
[Register ("com/google/android/exoplayer/drm/ExoMediaDrm", "", "Com.Google.Android.Exoplayer.Drm.IExoMediaDrmInvoker")]
[global::Java.Interop.JavaTypeParameters (new string [] {"T extends com.google.android.exoplayer.drm.ExoMediaCrypto"})]
- public partial interface IExoMediaDrm : IJavaObject {
+ public partial interface IExoMediaDrm : IJavaObject, IJavaPeerable {
// Metadata.xml XPath method reference: path="/api/package[@name='com.google.android.exoplayer.drm']/interface[@name='ExoMediaDrm']/method[@name='setOnEventListener' and count(parameter)=1 and parameter[1][@type='com.google.android.exoplayer.drm.ExoMediaDrm.OnEventListener<T>']]"
[Register ("setOnEventListener", "(Lcom/google/android/exoplayer/drm/ExoMediaDrm$OnEventListener;)V", "GetSetOnEventListener_Lcom_google_android_exoplayer_drm_ExoMediaDrm_OnEventListener_Handler:Com.Google.Android.Exoplayer.Drm.IExoMediaDrmInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
diff --git a/tools/generator/Tests/expected.ji/InterfaceMethodsConflict/Xamarin.Test.II1.cs b/tools/generator/Tests/expected.ji/InterfaceMethodsConflict/Xamarin.Test.II1.cs
index 4283ad00d..5165d829e 100644
--- a/tools/generator/Tests/expected.ji/InterfaceMethodsConflict/Xamarin.Test.II1.cs
+++ b/tools/generator/Tests/expected.ji/InterfaceMethodsConflict/Xamarin.Test.II1.cs
@@ -7,7 +7,7 @@ namespace Xamarin.Test {
// Metadata.xml XPath interface reference: path="/api/package[@name='xamarin.test']/interface[@name='I1']"
[Register ("xamarin/test/I1", "", "Xamarin.Test.II1Invoker")]
- public partial interface II1 : IJavaObject {
+ public partial interface II1 : IJavaObject, IJavaPeerable {
// Metadata.xml XPath method reference: path="/api/package[@name='xamarin.test']/interface[@name='I1']/method[@name='close' and count(parameter)=0]"
[Register ("close", "()V", "GetCloseHandler:Xamarin.Test.II1Invoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
diff --git a/tools/generator/Tests/expected.ji/InterfaceMethodsConflict/Xamarin.Test.II2.cs b/tools/generator/Tests/expected.ji/InterfaceMethodsConflict/Xamarin.Test.II2.cs
index 03777de4b..5306f70f6 100644
--- a/tools/generator/Tests/expected.ji/InterfaceMethodsConflict/Xamarin.Test.II2.cs
+++ b/tools/generator/Tests/expected.ji/InterfaceMethodsConflict/Xamarin.Test.II2.cs
@@ -7,7 +7,7 @@ namespace Xamarin.Test {
// Metadata.xml XPath interface reference: path="/api/package[@name='xamarin.test']/interface[@name='I2']"
[Register ("xamarin/test/I2", "", "Xamarin.Test.II2Invoker")]
- public partial interface II2 : IJavaObject {
+ public partial interface II2 : IJavaObject, IJavaPeerable {
// Metadata.xml XPath method reference: path="/api/package[@name='xamarin.test']/interface[@name='I2']/method[@name='close' and count(parameter)=0]"
[Register ("close", "()V", "GetCloseHandler:Xamarin.Test.II2Invoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
diff --git a/tools/generator/Tests/expected.ji/NestedTypes/Xamarin.Test.NotificationCompatBase.cs b/tools/generator/Tests/expected.ji/NestedTypes/Xamarin.Test.NotificationCompatBase.cs
index 399d15dc6..ac35892b5 100644
--- a/tools/generator/Tests/expected.ji/NestedTypes/Xamarin.Test.NotificationCompatBase.cs
+++ b/tools/generator/Tests/expected.ji/NestedTypes/Xamarin.Test.NotificationCompatBase.cs
@@ -15,7 +15,7 @@ public abstract partial class Action : global::Java.Lang.Object {
// Metadata.xml XPath interface reference: path="/api/package[@name='xamarin.test']/interface[@name='NotificationCompatBase.Action.Factory']"
[Register ("xamarin/test/NotificationCompatBase$Action$Factory", "", "Xamarin.Test.NotificationCompatBase/Action/IFactoryInvoker")]
- public partial interface IFactory : IJavaObject {
+ public partial interface IFactory : IJavaObject, IJavaPeerable {
// Metadata.xml XPath method reference: path="/api/package[@name='xamarin.test']/interface[@name='NotificationCompatBase.Action.Factory']/method[@name='build' and count(parameter)=1 and parameter[1][@type='int']]"
[Register ("build", "(I)Lxamarin/test/NotificationCompatBase$Action;", "GetBuild_IHandler:Xamarin.Test.NotificationCompatBase/Action/IFactoryInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
diff --git a/tools/generator/Tests/expected.ji/TestInterface/Test.ME.IGenericInterface.cs b/tools/generator/Tests/expected.ji/TestInterface/Test.ME.IGenericInterface.cs
index d70c1c322..6a65dbda6 100644
--- a/tools/generator/Tests/expected.ji/TestInterface/Test.ME.IGenericInterface.cs
+++ b/tools/generator/Tests/expected.ji/TestInterface/Test.ME.IGenericInterface.cs
@@ -8,7 +8,7 @@ namespace Test.ME {
// Metadata.xml XPath interface reference: path="/api/package[@name='test.me']/interface[@name='GenericInterface']"
[Register ("test/me/GenericInterface", "", "Test.ME.IGenericInterfaceInvoker")]
[global::Java.Interop.JavaTypeParameters (new string [] {"T"})]
- public partial interface IGenericInterface : IJavaObject {
+ public partial interface IGenericInterface : IJavaObject, IJavaPeerable {
// Metadata.xml XPath method reference: path="/api/package[@name='test.me']/interface[@name='GenericInterface']/method[@name='SetObject' and count(parameter)=1 and parameter[1][@type='T']]"
[Register ("SetObject", "(Ljava/lang/Object;)V", "GetSetObject_Ljava_lang_Object_Handler:Test.ME.IGenericInterfaceInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
diff --git a/tools/generator/Tests/expected.ji/TestInterface/Test.ME.IGenericPropertyInterface.cs b/tools/generator/Tests/expected.ji/TestInterface/Test.ME.IGenericPropertyInterface.cs
index 0407e179a..29dc4d262 100644
--- a/tools/generator/Tests/expected.ji/TestInterface/Test.ME.IGenericPropertyInterface.cs
+++ b/tools/generator/Tests/expected.ji/TestInterface/Test.ME.IGenericPropertyInterface.cs
@@ -8,7 +8,7 @@ namespace Test.ME {
// Metadata.xml XPath interface reference: path="/api/package[@name='test.me']/interface[@name='GenericPropertyInterface']"
[Register ("test/me/GenericPropertyInterface", "", "Test.ME.IGenericPropertyInterfaceInvoker")]
[global::Java.Interop.JavaTypeParameters (new string [] {"T"})]
- public partial interface IGenericPropertyInterface : IJavaObject {
+ public partial interface IGenericPropertyInterface : IJavaObject, IJavaPeerable {
global::Java.Lang.Object Object {
// Metadata.xml XPath method reference: path="/api/package[@name='test.me']/interface[@name='GenericPropertyInterface']/method[@name='getObject' and count(parameter)=0]"
diff --git a/tools/generator/Tests/expected.ji/TestInterface/Test.ME.ITestInterface.cs b/tools/generator/Tests/expected.ji/TestInterface/Test.ME.ITestInterface.cs
index 414c61afc..83adcdac9 100644
--- a/tools/generator/Tests/expected.ji/TestInterface/Test.ME.ITestInterface.cs
+++ b/tools/generator/Tests/expected.ji/TestInterface/Test.ME.ITestInterface.cs
@@ -42,7 +42,7 @@ private TestInterfaceConsts ()
// Metadata.xml XPath interface reference: path="/api/package[@name='test.me']/interface[@name='TestInterface']"
[Register ("test/me/TestInterface", "", "Test.ME.ITestInterfaceInvoker")]
- public partial interface ITestInterface : IJavaObject {
+ public partial interface ITestInterface : IJavaObject, IJavaPeerable {
// Metadata.xml XPath method reference: path="/api/package[@name='test.me']/interface[@name='TestInterface']/method[@name='getSpanFlags' and count(parameter)=1 and parameter[1][@type='java.lang.Object']]"
[Register ("getSpanFlags", "(Ljava/lang/Object;)I", "GetGetSpanFlags_Ljava_lang_Object_Handler:Test.ME.ITestInterfaceInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
diff --git a/tools/generator/Tests/expected.ji/java.lang.Enum/Java.Lang.IComparable.cs b/tools/generator/Tests/expected.ji/java.lang.Enum/Java.Lang.IComparable.cs
index 027268f0f..ea52c8365 100644
--- a/tools/generator/Tests/expected.ji/java.lang.Enum/Java.Lang.IComparable.cs
+++ b/tools/generator/Tests/expected.ji/java.lang.Enum/Java.Lang.IComparable.cs
@@ -8,7 +8,7 @@ namespace Java.Lang {
// Metadata.xml XPath interface reference: path="/api/package[@name='java.lang']/interface[@name='Comparable']"
[Register ("java/lang/Comparable", "", "Java.Lang.IComparableInvoker")]
[global::Java.Interop.JavaTypeParameters (new string [] {"T"})]
- public partial interface IComparable : IJavaObject {
+ public partial interface IComparable : IJavaObject, IJavaPeerable {
// Metadata.xml XPath method reference: path="/api/package[@name='java.lang']/interface[@name='Comparable']/method[@name='compareTo' and count(parameter)=1 and parameter[1][@type='T']]"
[Register ("compareTo", "(Ljava/lang/Object;)I", "GetCompareTo_Ljava_lang_Object_Handler:Java.Lang.IComparableInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
diff --git a/tools/generator/Tests/generator-Tests.csproj b/tools/generator/Tests/generator-Tests.csproj
index 6e645eb07..5e32d5b7e 100644
--- a/tools/generator/Tests/generator-Tests.csproj
+++ b/tools/generator/Tests/generator-Tests.csproj
@@ -238,6 +238,9 @@
PreserveNewest
+
+ PreserveNewest
+
PreserveNewest
@@ -349,9 +352,6 @@
PreserveNewest
-
- PreserveNewest
-
PreserveNewest
@@ -370,6 +370,9 @@
PreserveNewest
+
+ PreserveNewest
+
PreserveNewest