Example #1
0
        public void WriteStringField()
        {
            var @class = new TestClass("java.lang.Object", "com.mypackage.foo");
            var field  = new TestField("java.lang.String", "bar");

            Assert.IsTrue(field.Validate(options, new GenericParameterDefinitionList()), "field.Validate failed!");
            generator.WriteField(field, writer, string.Empty, options, @class);

            Assert.AreEqual(@"static IntPtr bar_jfieldId;

// Metadata.xml XPath field reference: path=""/api/package[@name='com.mypackage']/class[@name='foo']/field[@name='bar']""
[Register (""bar"")]
public string bar {
	get {
		if (bar_jfieldId == IntPtr.Zero)
			bar_jfieldId = JNIEnv.GetFieldID (class_ref, ""bar"", ""Ljava/lang/String;"");
		IntPtr __ret = JNIEnv.GetObjectField (((global::Java.Lang.Object) this).Handle, bar_jfieldId);
		return JNIEnv.GetString (__ret, JniHandleOwnership.TransferLocalRef);
	}
	set {
		if (bar_jfieldId == IntPtr.Zero)
			bar_jfieldId = JNIEnv.GetFieldID (class_ref, ""bar"", ""Ljava/lang/String;"");
		IntPtr native_value = JNIEnv.NewString (value);
		try {
			JNIEnv.SetField (((global::Java.Lang.Object) this).Handle, bar_jfieldId, native_value);
		} finally {
			JNIEnv.DeleteLocalRef (native_value);
		}
	}
}
", builder.ToString());
        }
        public void WriteStringField()
        {
            var @class = new TestClass("java.lang.Object", "com.mypackage.foo");
            var field  = new TestField("java.lang.String", "bar");

            Assert.IsTrue(field.Validate(options, new GenericParameterDefinitionList()), "field.Validate failed!");
            generator.WriteField(field, writer, string.Empty, options, @class);

            Assert.AreEqual(@"
// Metadata.xml XPath field reference: path=""/api/package[@name='com.mypackage']/class[@name='foo']/field[@name='bar']""
[Register (""bar"")]
public string bar {
	get {
		const string __id = ""bar.Ljava/lang/String;"";

		var __v = _members.InstanceFields.GetObjectValue (__id, this);
		return JNIEnv.GetString (__v.Handle, JniHandleOwnership.TransferLocalRef);
	}
	set {
		const string __id = ""bar.Ljava/lang/String;"";

		IntPtr native_value = JNIEnv.NewString (value);
		try {
			_members.InstanceFields.SetValue (__id, this, new JniObjectReference (native_value));
		} finally {
			JNIEnv.DeleteLocalRef (native_value);
		}
	}
}
", builder.ToString());
        }
Example #3
0
        public void WriteIntField()
        {
            var @class = new TestClass("java.lang.Object", "com.mypackage.foo");
            var field  = new TestField("int", "bar");

            Assert.IsTrue(field.Validate(options, new GenericParameterDefinitionList()), "field.Validate failed!");
            generator.WriteField(field, writer, string.Empty, options, @class);

            Assert.AreEqual(@"static IntPtr bar_jfieldId;

// Metadata.xml XPath field reference: path=""/api/package[@name='com.mypackage']/class[@name='foo']/field[@name='bar']""
[Register (""bar"")]
public int bar {
	get {
		if (bar_jfieldId == IntPtr.Zero)
			bar_jfieldId = JNIEnv.GetFieldID (class_ref, ""bar"", ""I"");
		return JNIEnv.GetIntField (((global::Java.Lang.Object) this).Handle, bar_jfieldId);
	}
	set {
		if (bar_jfieldId == IntPtr.Zero)
			bar_jfieldId = JNIEnv.GetFieldID (class_ref, ""bar"", ""I"");
		try {
			JNIEnv.SetField (((global::Java.Lang.Object) this).Handle, bar_jfieldId, value);
		} finally {
		}
	}
}
", builder.ToString());
        }
        public void WriteIntField()
        {
            var @class = new TestClass("java.lang.Object", "com.mypackage.foo");
            var field  = new TestField("int", "bar");

            Assert.IsTrue(field.Validate(options, new GenericParameterDefinitionList()), "field.Validate failed!");
            generator.WriteField(field, writer, string.Empty, options, @class);

            Assert.AreEqual(@"
// Metadata.xml XPath field reference: path=""/api/package[@name='com.mypackage']/class[@name='foo']/field[@name='bar']""
[Register (""bar"")]
public int bar {
	get {
		const string __id = ""bar.I"";

		var __v = _members.InstanceFields.GetInt32Value (__id, this);
		return __v;
	}
	set {
		const string __id = ""bar.I"";

		try {
			_members.InstanceFields.SetValue (__id, this, value);
		} finally {
		}
	}
}
", builder.ToString());
        }
Example #5
0
        public void WriteFieldIdField()
        {
            var field = new TestField("java.lang.String", "bar");

            generator.WriteFieldIdField(field, string.Empty);

            Assert.AreEqual(GetTargetedExpected(nameof(WriteFieldIdField)), writer.ToString().NormalizeLineEndings());
        }
Example #6
0
        public void WriteFieldIdField()
        {
            var field = new TestField("java.lang.String", "bar");

            generator.WriteFieldIdField(field, writer, string.Empty, options);

            Assert.AreEqual(@"static IntPtr bar_jfieldId;
", builder.ToString());
        }
        public void WriteFieldIdField()
        {
            var field = new TestField("java.lang.String", "bar");

            generator.WriteFieldIdField(field, writer, string.Empty, options);

            //NOTE: not needed for JavaInteropCodeGenerator
            Assert.AreEqual("", builder.ToString());
        }
Example #8
0
        public void WriteFieldString()
        {
            var @class = new TestClass("java.lang.Object", "com.mypackage.foo");
            var field  = new TestField("java.lang.String", "bar");

            Assert.IsTrue(field.Validate(options, new GenericParameterDefinitionList(), new CodeGeneratorContext()), "field.Validate failed!");
            generator.WriteField(field, string.Empty, @class);

            Assert.AreEqual(GetTargetedExpected(nameof(WriteFieldString)), writer.ToString().NormalizeLineEndings());
        }
Example #9
0
        public void WriteProtectedField()
        {
            var @class = new TestClass("java.lang.Object", "com.mypackage.foo");
            var field  = new TestField("int", "bar").SetVisibility("protected");

            Assert.IsTrue(field.Validate(options, new GenericParameterDefinitionList(), new CodeGeneratorContext()), "field.Validate failed!");
            generator.WriteField(field, string.Empty, @class);

            StringAssert.Contains("protected int bar {", builder.ToString(), "Property should be protected!");
        }
Example #10
0
        public void WriteEnumifiedField()
        {
            var @class = new TestClass("java.lang.Object", "com.mypackage.foo");
            var field  = new TestField("int", "bar").SetEnumified();

            Assert.IsTrue(field.Validate(options, new GenericParameterDefinitionList(), new CodeGeneratorContext()), "field.Validate failed!");
            generator.WriteField(field, string.Empty, @class);

            StringAssert.Contains("[global::Android.Runtime.GeneratedEnum]", builder.ToString(), "Should contain GeneratedEnumAttribute!");
        }
Example #11
0
        public void WriteDeprecatedField()
        {
            var comment = "Don't use this!";
            var @class  = new TestClass("java.lang.Object", "com.mypackage.foo");
            var field   = new TestField("int", "bar").SetConstant("1234").SetDeprecated(comment, true);

            Assert.IsTrue(field.Validate(options, new GenericParameterDefinitionList(), new CodeGeneratorContext()), "field.Validate failed!");
            generator.WriteField(field, string.Empty, @class);

            StringAssert.Contains($"[Obsolete (\"{comment}\", error: true)]", builder.ToString(), "Should contain ObsoleteAttribute!");
        }
Example #12
0
        public void WriteConstantFieldWithIntValue()
        {
            var @class = new TestClass("java.lang.Object", "com.mypackage.foo");
            var field  = new TestField("int", "bar").SetConstant("1234");

            Assert.IsTrue(field.Validate(options, new GenericParameterDefinitionList()), "field.Validate failed!");
            generator.WriteField(field, writer, string.Empty, options, @class);

            Assert.AreEqual(@"// Metadata.xml XPath field reference: path=""/api/package[@name='com.mypackage']/class[@name='foo']/field[@name='bar']""
[Register (""bar"")]
public const int bar = (int) 1234;
", builder.ToString());
        }
Example #13
0
        public void WriteFieldGetBody()
        {
            var @class = new TestClass("java.lang.Object", "com.mypackage.foo");
            var field  = new TestField("java.lang.String", "bar");

            Assert.IsTrue(field.Validate(options, new GenericParameterDefinitionList()), "field.Validate failed!");
            generator.WriteFieldGetBody(field, writer, string.Empty, options, @class);

            Assert.AreEqual(@"if (bar_jfieldId == IntPtr.Zero)
	bar_jfieldId = JNIEnv.GetFieldID (class_ref, ""bar"", ""Ljava/lang/String;"");
IntPtr __ret = JNIEnv.GetObjectField (((global::Java.Lang.Object) this).Handle, bar_jfieldId);
return JNIEnv.GetString (__ret, JniHandleOwnership.TransferLocalRef);
", builder.ToString());
        }
        public void WriteFieldGetBody()
        {
            var @class = new TestClass("java.lang.Object", "com.mypackage.foo");
            var field  = new TestField("java.lang.String", "bar");

            Assert.IsTrue(field.Validate(options, new GenericParameterDefinitionList()), "field.Validate failed!");
            generator.WriteFieldGetBody(field, writer, string.Empty, options, @class);

            Assert.AreEqual(@"const string __id = ""bar.Ljava/lang/String;"";

var __v = _members.InstanceFields.GetObjectValue (__id, this);
return JNIEnv.GetString (__v.Handle, JniHandleOwnership.TransferLocalRef);
", builder.ToString());
        }
Example #15
0
        public void WriteFieldSetBody()
        {
            var @class = new TestClass("java.lang.Object", "com.mypackage.foo");
            var field  = new TestField("java.lang.String", "bar");

            Assert.IsTrue(field.Validate(options, new GenericParameterDefinitionList()), "field.Validate failed!");
            generator.WriteFieldSetBody(field, writer, string.Empty, options, @class);

            Assert.AreEqual(@"if (bar_jfieldId == IntPtr.Zero)
	bar_jfieldId = JNIEnv.GetFieldID (class_ref, ""bar"", ""Ljava/lang/String;"");
IntPtr native_value = JNIEnv.NewString (value);
try {
	JNIEnv.SetField (((global::Java.Lang.Object) this).Handle, bar_jfieldId, native_value);
} finally {
	JNIEnv.DeleteLocalRef (native_value);
}
", builder.ToString());
        }
        public void WriteFieldSetBody()
        {
            var @class = new TestClass("java.lang.Object", "com.mypackage.foo");
            var field  = new TestField("java.lang.String", "bar");

            Assert.IsTrue(field.Validate(options, new GenericParameterDefinitionList()), "field.Validate failed!");
            generator.WriteFieldSetBody(field, writer, string.Empty, options, @class);

            Assert.AreEqual(@"const string __id = ""bar.Ljava/lang/String;"";

IntPtr native_value = JNIEnv.NewString (value);
try {
	_members.InstanceFields.SetValue (__id, this, new JniObjectReference (native_value));
} finally {
	JNIEnv.DeleteLocalRef (native_value);
}
", builder.ToString());
        }