diff --git a/Java.Interop.sln b/Java.Interop.sln
index 361ef409b..ec2765077 100644
--- a/Java.Interop.sln
+++ b/Java.Interop.sln
@@ -87,8 +87,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Java.Interop.Tools.Cecil",
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Java.Interop.Tools.Diagnostics", "src\Java.Interop.Tools.Diagnostics\Java.Interop.Tools.Diagnostics.csproj", "{64CC4E44-CE3A-4319-BF3F-6CF8BD513870}"
EndProject
-Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Java.Interop.Tools.TypeNameMappings", "src\Java.Interop.Tools.TypeNameMappings\Java.Interop.Tools.TypeNameMappings.shproj", "{E706B6F2-5562-4765-8F07-8CF84A797B30}"
-EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "jcw-gen", "tools\jcw-gen\jcw-gen.csproj", "{52C7D9B6-E8C8-47D0-9471-652D278D7D77}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Java.Interop.Tools.JavaCallableWrappers-Tests", "src\Java.Interop.Tools.JavaCallableWrappers\Test\Java.Interop.Tools.JavaCallableWrappers-Tests.csproj", "{58B564A1-570D-4DA2-B02D-25BDDB1A9F4F}"
@@ -378,7 +376,6 @@ Global
{D18FCF91-8876-48A0-A693-2DC1E7D3D80A} = {0998E45F-8BCE-4791-A944-962CD54E2D80}
{D48EE8D0-0A0A-4493-AEF5-DAF5F8CF86AD} = {0998E45F-8BCE-4791-A944-962CD54E2D80}
{64CC4E44-CE3A-4319-BF3F-6CF8BD513870} = {0998E45F-8BCE-4791-A944-962CD54E2D80}
- {E706B6F2-5562-4765-8F07-8CF84A797B30} = {0998E45F-8BCE-4791-A944-962CD54E2D80}
{52C7D9B6-E8C8-47D0-9471-652D278D7D77} = {C8F58966-94BF-407F-914A-8654F8B8AE3B}
{58B564A1-570D-4DA2-B02D-25BDDB1A9F4F} = {271C9F30-F679-4793-942B-0D9527CB3E2F}
{15945D4B-FF56-4BCC-B598-2718D199DD08} = {C8F58966-94BF-407F-914A-8654F8B8AE3B}
diff --git a/src/Java.Interop.Tools.JavaCallableWrappers/Java.Interop.Tools.JavaCallableWrappers.csproj b/src/Java.Interop.Tools.JavaCallableWrappers/Java.Interop.Tools.JavaCallableWrappers.csproj
index ef263cae8..eb2972633 100644
--- a/src/Java.Interop.Tools.JavaCallableWrappers/Java.Interop.Tools.JavaCallableWrappers.csproj
+++ b/src/Java.Interop.Tools.JavaCallableWrappers/Java.Interop.Tools.JavaCallableWrappers.csproj
@@ -38,9 +38,10 @@
+
+ JavaNativeTypeManager.cs
+
-
-
{64CC4E44-CE3A-4319-BF3F-6CF8BD513870}
@@ -63,5 +64,6 @@
MonoRuntimeProvider.Shared.java
+
diff --git a/src/Java.Interop.Tools.JavaCallableWrappers/Test/Java.Interop.Tools.JavaCallableWrappers-Tests.csproj b/src/Java.Interop.Tools.JavaCallableWrappers/Test/Java.Interop.Tools.JavaCallableWrappers-Tests.csproj
index 4d585ce8e..3af043685 100644
--- a/src/Java.Interop.Tools.JavaCallableWrappers/Test/Java.Interop.Tools.JavaCallableWrappers-Tests.csproj
+++ b/src/Java.Interop.Tools.JavaCallableWrappers/Test/Java.Interop.Tools.JavaCallableWrappers-Tests.csproj
@@ -64,7 +64,6 @@
-
diff --git a/src/Java.Interop.Tools.TypeNameMappings/Java.Interop.Tools.TypeNameMappings/JavaNativeTypeManager.cs b/src/Java.Interop.Tools.TypeNameMappings/Java.Interop.Tools.TypeNameMappings/JavaNativeTypeManager.cs
index 9ef1c74ed..b1b67a794 100644
--- a/src/Java.Interop.Tools.TypeNameMappings/Java.Interop.Tools.TypeNameMappings/JavaNativeTypeManager.cs
+++ b/src/Java.Interop.Tools.TypeNameMappings/Java.Interop.Tools.TypeNameMappings/JavaNativeTypeManager.cs
@@ -10,25 +10,33 @@
using Mono.Cecil;
using Java.Interop.Tools.Cecil;
using Android.Runtime;
-#if !GENERATOR
using Java.Interop.Tools.JavaCallableWrappers;
-#endif // !GENERATOR
#endif // HAVE_CECIL
-namespace Java.Interop.Tools.TypeNameMappings {
+namespace Java.Interop.Tools.TypeNameMappings
+{
+#if HAVE_CECIL
+ public
+#endif
enum PackageNamingPolicy {
LowercaseHash,
Lowercase,
LowercaseWithAssemblyName,
}
- public class JniTypeName
+#if HAVE_CECIL
+ public
+#endif
+ class JniTypeName
{
public string Type { get; internal set; }
public bool IsKeyword { get; internal set; }
}
+#if HAVE_CECIL
+ public
+#endif
static class JavaNativeTypeManager {
public static PackageNamingPolicy PackageNamingPolicy { get; set; }
@@ -143,7 +151,7 @@ public static string ToJniName (Type type)
"java/lang/Object";
}
- public static string ToJniName (Type type, ExportParameterKind exportKind)
+ static string ToJniName (Type type, ExportParameterKind exportKind)
{
if (type == null)
throw new ArgumentNullException ("type");
@@ -159,12 +167,8 @@ public static string ToJniName (Type type, ExportParameterKind exportKind)
return GetSpecialExportJniType (type.FullName, exportKind);
return ToJniName (type, t => t.DeclaringType, t => t.Name, GetPackageName, t => {
-#if !GEN_JAVA_STUBS && !GENERATOR && !JAVADOC_TO_MDOC
return ToJniNameFromAttributes (t);
-#else
- return null;
-#endif
- });
+ }, _ => false);
}
public static string ToJniName (string jniType, int rank)
@@ -255,7 +259,6 @@ static string GetSpecialExportJniType (string typeName, ExportParameterKind expo
return null;
}
-#if !GEN_JAVA_STUBS && !JAVADOC_TO_MDOC
// Keep in sync with ToJniNameFromAttributes(TypeDefinition)
public static string ToJniNameFromAttributes (Type type)
{
@@ -347,7 +350,7 @@ static string GetJniTypeName
(TR typeRef, ExportParameterKind exportKind,
return rank == 0 && pJniName.Length > 1 ? "L" + pJniName + ";" : ToJniName (pJniName, rank);
}
- public static ExportParameterKind GetExportKind (System.Reflection.ICustomAttributeProvider p)
+ static ExportParameterKind GetExportKind (System.Reflection.ICustomAttributeProvider p)
{
foreach (ExportParameterAttribute a in p.GetCustomAttributes (typeof (ExportParameterAttribute), false))
return a.Kind;
@@ -370,7 +373,7 @@ public static string GetJniTypeName (Type typeRef)
return GetJniTypeName (typeRef, ExportParameterKind.Unspecified);
}
- public static string GetJniTypeName (Type typeRef, ExportParameterKind exportKind)
+ internal static string GetJniTypeName (Type typeRef, ExportParameterKind exportKind)
{
return GetJniTypeName (typeRef, exportKind, t => t, t => {
Type etype;
@@ -385,7 +388,6 @@ static string ToJniNameWhichShouldReplaceExistingToJniName (Type type, ExportPar
var ret = ToJniNameFromAttributes (type);
return ret ?? ToJniName (type, exportKind);
}
-#endif
#if HAVE_CECIL
@@ -401,12 +403,12 @@ internal static ExportParameterAttribute ToExportParameterAttribute (CustomAttri
return new ExportParameterAttribute ((ExportParameterKind)attr.ConstructorArguments [0].Value);
}
- internal static bool IsApplication (TypeDefinition type)
+ public static bool IsApplication (TypeDefinition type)
{
return type.GetBaseTypes ().Any (b => b.FullName == "Android.App.Application");
}
- internal static bool IsInstrumentation (TypeDefinition type)
+ public static bool IsInstrumentation (TypeDefinition type)
{
return type.GetBaseTypes ().Any (b => b.FullName == "Android.App.Instrumentation");
}
@@ -430,7 +432,7 @@ public static string GetJniTypeName (TypeReference typeRef)
return GetJniTypeName (typeRef, ExportParameterKind.Unspecified);
}
- public static string GetJniTypeName (TypeReference typeRef, ExportParameterKind exportKind)
+ internal static string GetJniTypeName (TypeReference typeRef, ExportParameterKind exportKind)
{
return GetJniTypeName (typeRef, exportKind, t => t.Resolve (), t => {
TypeReference etype;
@@ -441,7 +443,7 @@ public static string GetJniTypeName (TypeReference typeRef, ExportParameterKind
public static string ToCompatJniName (Mono.Cecil.TypeDefinition type)
{
- return ToJniName (type, t => t.DeclaringType, t => t.Name, ToCompatPackageName, ToJniNameFromAttributes);
+ return ToJniName (type, t => t.DeclaringType, t => t.Name, ToCompatPackageName, ToJniNameFromAttributes, t => IsNonStaticInnerClass (t as TypeDefinition));
}
static string ToCompatPackageName (Mono.Cecil.TypeDefinition type)
@@ -456,7 +458,7 @@ public static string ToJniName (Mono.Cecil.TypeDefinition type)
"java/lang/Object";
}
- public static string ToJniName (TypeDefinition type, ExportParameterKind exportKind)
+ static string ToJniName (TypeDefinition type, ExportParameterKind exportKind)
{
if (type == null)
throw new ArgumentNullException ("type");
@@ -471,7 +473,7 @@ public static string ToJniName (TypeDefinition type, ExportParameterKind exportK
return GetSpecialExportJniType (type.FullName, exportKind);
}
- return ToJniName (type, t => t.DeclaringType, t => t.Name, GetPackageName, ToJniNameFromAttributes);
+ return ToJniName (type, t => t.DeclaringType, t => t.Name, GetPackageName, ToJniNameFromAttributes, t => IsNonStaticInnerClass (t as TypeDefinition));
}
static string ToJniNameFromAttributes (TypeDefinition type)
@@ -562,7 +564,7 @@ public static string GetPackageName (TypeDefinition type)
}
#endif
- static string ToJniName (T type, Func decl, Func name, Func ns, Func overrideName)
+ static string ToJniName (T type, Func decl, Func name, Func ns, Func overrideName, Func shouldUpdateName)
where T : class
{
var nameParts = new List ();
@@ -576,12 +578,9 @@ static string ToJniName (T type, Func decl, Func name, Func<
break;
}
var n = name (declType).Replace ('`', '_');
-#if HAVE_CECIL
- var td = declType as TypeDefinition;
- if (IsNonStaticInnerClass (td)) {
+ if (shouldUpdateName (declType)) {
n = "$" + name (decl (declType)) + "_" + n;
}
-#endif
nameParts.Add (n);
}
diff --git a/tools/generator/generator.csproj b/tools/generator/generator.csproj
index 957eb4009..5ab46b18f 100644
--- a/tools/generator/generator.csproj
+++ b/tools/generator/generator.csproj
@@ -112,8 +112,6 @@
-
-
@@ -136,6 +134,10 @@
{15945D4B-FF56-4BCC-B598-2718D199DD08}
Xamarin.Android.Cecil
+
+ {D18FCF91-8876-48A0-A693-2DC1E7D3D80A}
+ Java.Interop.Tools.JavaCallableWrappers
+